This is an example that should work with an Arduino UNO:
byte Anemometer_request[] = {0x01, 0x03, 0x00, 0x16, 0x00, 0x01, 0x65, 0xCE}; // inquiry frame
RS485Serial.write(Anemometer_request, sizeof(Anemometer_request));
RS485Serial.flush();
byte Anemometer_buf[8];
RS485Serial.readBytes(Anemometer_buf, 8);
currentValue = (Anemometer_buf[4]);
However, since I don't have SoftwareSerial available (Z-UNO), I need to adapt the above code to work.
Z-Uno example code:
if(Serial0.available() > 0) {
char c = Serial0.read();
Serial.print(c,DEC);
currentValue = 9999; // Set here value from above
}
Unfortunately I don't know how to do this.
My approach seems to fail:
if(Serial0.available() > 0) {
byte Anemometer_request[] = {0x01, 0x03, 0x00, 0x16, 0x00, 0x01, 0x65, 0xCE}; // inquiry frame
Serial0.write(Anemometer_request, sizeof(Anemometer_request));
Serial0.flush();
byte Anemometer_buf[8];
Serial0.readBytes(Anemometer_buf, 8);
currentValue = (Anemometer_buf[4]);
Error:
uCxx returned error code:1
exit status 1
no matching member function for call to 'write'
Selected code line: Serial0.write(Anemometer_request, sizeof(Anemometer_request));