Я хочу управлять несколькими роботами с помощью своего ноутбука. У роботов нет интеллекта, они отправляют значения датчиков на ПК, который вычисляет значения датчиков и отправляет результат роботам (централизованное управление роботами с помощью ПК).
Роботы взаимодействуют с ПК через последовательную связь с помощью модуля Zigbee.
Проблема: Как создать и отправить структуру (от робота) например, {sen1, sen2, sen3.., идентификатор робота, где sen1, sen2.. являются значениями датчиков и Идентификатор робота должен распознавать конкретного робота. После редактирования..... Код, который я использовал для отправки датчиков, был похож.
void TxData(unsigned char tx_data)
{ SBUF = tx_data; //Transmit data that is passed to this function
while(TI == 0); //wait while data is being transmitted
}
а затем отправка значений датчиков по одному
TxData(left_whiteline_sensor);
TI=0; // resetting transmit interrupt after each character
TxData(middle_whiteline_sensor);
TI=0;
TxData(right_whiteline_sensor);
TI=0;
TxData(front_sharp_sensor);
TI=0;
В конце ПК чтение этих значений в буфере
read(fd, buf1, sizeof(buf1));
.....
options.c_cc[VMIN]=4; // wait till not getting 4 values
Это отлично работало, когда был только один робот, теперь, когда у нас есть несколько роботов, и каждый робот отправляет данные, используя вышеуказанную функцию, я получение смешанных значений датчиков всех роботов на стороне ПК. Одним из решений является создание структуры, о которой я упоминал выше, и отправка ее на ПК. Это то, что я хочу спросить "Как сделать и отправить такую структуру" Извините, что не правильно сформулировал вопрос раньше.
Спасибо...