A possible implementation of the protocol using serial read/write of binary data (command and response).
void send(Stream& ios, uint8_t cmd[6])
{
uint8_t sum = 0;
for (int i = 0; i < 6; i++) {
uint8_t c = cmd[i];
sum += c;
ios.print((char) c);
}
ios.print((char) sum);
}
bool recv(Stream& ios, uint8_t res[6])
{
uint8_t sum = 0;
uint8_t c;
for (int i = 0; i < 6; i++) {
while (!Serialios.available());
c = Serialios.read();
sum += c;
res[i] = c;
}
while (!Serialios.available());
c = Serialios.read();
return (sum == c);
}
void setup()
{
Serial.begin(57600);
while (!Serial);
uint8_t cmd[] = { 0xB4, 0xC0, 0xA8, 0x01, 0x01, 0x00 };
uint8_t res[6];
send(Serial, cmd);
recv(Serial, res);
}
void loop()
{
}
Cheers!