Я получаю пакет, такой как 0xFA5D0D01. Теперь я хочу PARCE это какАнализ входящего пакета
ФА Header1 5D является 0D Заголовок 2 является длина и 01 является контрольной суммой. const int data_availabe = Serial.available();
Я могу написать в последовательный порт, но не в состоянии PARCE это как , если я получил FA затем распечатать полученные HEADER1
const int data_availabe = Serial.available();
if (data_availabe <= 0)
{
return;
}
const int c = Serial.read();
Serial.print("Receive Status: ");
Serial.println(STATE_NAME[receiveState]);
Serial.print(c, HEX);
Serial.print(" ");
if (isprint(c)) //isprint checks whether it is printable character or not (e.g non printable char = \t)
{
Serial.write(c);
}
Serial.println();
Serial.println(receiveState);
switch (receiveState)
{
case WAITING_FOR_HEADER1:
if (c == HEADER1)
{
receiveState = WAITING_FOR_HEADER2;
}
break;
case WAITING_FOR_HEADER2:
if (c == HEADER2)
{
receiveState = WAITING_FOR_LENGTH;
}
break;
}
Где receiveState меняется перечисление, как мы получаем exptected данные ..
Это не касается USB, этот сериал RS-232, если вы не знаете ответа, то не отвечают. –
, пожалуйста, просмотрите обновленный вопрос ... я не могу разобрать его так, как ожидалось. Что-то пошло не так где-то ... –
@ChrisDesjardins Я могу быть совершенно глупым, но откуда вы это знаете? Я отредактировал свой ответ, скажите, если это то, что вы хотите сделать. – ladislas