Как это не знаю? Если совсем не знаю, то задача вообще не решается. А если
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено dxp 02 сентября 2004 г. 11:05
В ответ на: Дак в том то и дело, что вы не знаете структуры принимаемого объекта... отправлено lamerok 02 сентября 2004 г. 10:53

все-таки формат кадра пересылаемого из МК мне известен, то проблем нет. Например:

struct TSlon
{
char a;
int b;
} Slon;

Маппим на массив и получаем дырку в один байт. Всего размер 4 байта.

1 - a
2 - дырка
3 - мл. байт b
4 - ст. байт b

На ПЦ принимаем эти четыре байта. На ПЦ тоже такая же структура.

Slon.a = ReadComm(...); // 1 байт
ReadComm(...); // 2 байт
Slon.b = ReadComm(...); // 3 байт
Slon.b += ReadComm(...)*256; // 4 байт

Писишная программа должна знать формат кадра. Если не хочется слать лишний байт, то тогда можно на стороне МК аналогично сформировать пакет. Если структура небольшая, как эта, то оверхеда почти нет - все равно ведь надо заголовок приделывать и трейлер (с контрольной суммой). Но подход намного прямее. Конечно, если структура здоровенная, то на копировании много потеряешь, поэтому имеет смысл маппить. Т.ч. в каждом случае надо решать индивидуально.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru