Последовательная связь с Arduino не удалась только при первом сообщении после перезапуска.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Последовательная связь с Arduino не удалась только при первом сообщении после перезапуска.

Сообщение Anonymous »

У меня есть устройство Arduino и компьютер. Я попробовал на плате следующий код:

Код: Выделить всё

gpsdata data;

char needtosend;

void setup() {
Serial.begin(9600);
Serial.flush();
data.id = 0;
data.src= 500;
data.lat= 1;
data.lon= 2;
data.alt= 3;
strcpy(data.date, "test date format");

}

void loop() {

if(Serial.available() > 0)
{
needtosend = Serial.read();
if ( needtosend == '2')
{
data.id = ++data.id % 10;
}

byte* buff = (byte*)&data;
Serial.write(buff, sizeof(data));

}
delay (200);

}
Приложение для ПК написано на C++ и использует библиотеку boost для связи с устройством Arduino. Это код ПК:

Код: Выделить всё

Serial serial("/dev/ttyUSB0",9600);
gpsdata *data;
char *values = new char[sizeof(gpsdata)];
while(true)
{
try {

serial.writeString("2",1);
serial.read(values,sizeof(gpsdata));
data = (gpsdata *)values;
cout

Подробнее здесь: [url]https://stackoverflow.com/questions/13312869/serial-communication-with-arduino-fails-only-on-the-first-message-after-restart[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»