#define SSerialTxControl 12 //RS485 Direction control
#define RS485Transmit HIGH
#define RS485Receive LOW
#define Pin13LED 13
String senixX = "";
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial1.begin(115200);
Serial.println("BOOTING!");
pinMode(Pin13LED, OUTPUT);
pinMode(SSerialTxControl, OUTPUT);
//Serial1.transmitterEnable(12);
digitalWrite(SSerialTxControl, RS485Receive);
delay(10);
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("Start loop");
qSenix();
Serial.println(senixX);
delay(3000);
}
void qSenix() {
senixX = "";
byte data[] {0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01};
unsigned long maxserialdly=300; // the time we need to wait
unsigned long previousMillis=millis(); // millis() returns an unsigned long.
Serial1.flush();
digitalWrite(SSerialTxControl, RS485Transmit); // Enable RS485 Transmit
// Serial1.flush();
//byte message1[] = {0x01, 0x03, 0x02, 0x08, 0x00, 0x01, 0x04, 0x70};
//Serial1.write(message1, sizeof(message1));
//byte message3[] = {0x03, 0x03, 0x02, 0x08, 0x00, 0x01, 0x05, 0x92};
byte message2[] = {0x02, 0x03, 0x02, 0x08, 0x00, 0x01, 0x04, 0x43};
Serial1.flush();
Serial1.write(message2, sizeof(message2));
Serial1.flush();
delay(15); // small delay to make sure all data sent before togling RS485 Transmit to recieve
digitalWrite(SSerialTxControl, RS485Receive); // Disable RS485 Transmit
//byte temp = Serial1.read();
delay(15); // Small delay to make sure all data sent from senix sensor have been sent before trying to read all. at 115200baud this way more then enough time.
//while(!Serial1.available() && (unsigned long)(millis() - previousMillis) < maxserialdly) ;
//while(!Serial1.available() && (unsigned long)(millis() - previousMillis) < maxserialdly) ;
int i = 0;
Serial.print("Serial1.available()=");
Serial.println(Serial1.available());
while (Serial1.available()) {
// get the new byte:
//char inChar = (char)Serial1.read();
//Serial.println(inChar);
//senixX += inChar;
//Serial.println(i);
data[i] = Serial1.read();
i++;
}
Serial.println("-");
Serial.println(data[0], BYTE);
Serial.println(data[1], BYTE);
Serial.println(data[2], BYTE);
Serial.println(data[3], BYTE);
Serial.println(data[4], BYTE);
Serial.println(data[5], BYTE);
Serial.println(data[6], BYTE);
Serial.println(data[7], BYTE);
Serial.println("-");
/*
byte message2[] = {0x02, 0x03, 0x02, 0x08, 0x00, 0x01, 0x04, 0x43};
Serial1.write(message2, sizeof(message2));
delay(10);
byte message3[] = {0x03, 0x03, 0x02, 0x08, 0x00, 0x01, 0x05, 0x92};
Serial1.write(message3, sizeof(message3));
*/
}