Hello, All! Чайниковский вопрос. Мне нужно связать РС и микропроцессорную плату через RS-232. Данные типа string передать легко. Как передать числовые данные (и с плавающей точкой тоже) ? Разбить их побайтно, а затем собрать на стороне приемника? А если их представление различно в РС и в плате? Как это обычно делают?
В конце концов, числа можно тоже гнать как строки, прямо с точкой и нулем в конце. А на приемном конце разбирать при помощи scanf или строковыми функциями.
Например так. Часто еще упаковывают в пакеты и вставляют контрольную сумму для защиты от ошибок и поле команды. Чтобы знать, данные какого типа пришли. Ну и по мелочи всякие дела - вроде slip протокола для определения начала пакета. В пакет можно и строки укладывать.
Тогда надо преобразовать форматы. Лучше это делать в РС. Там это проще, так как инструментальное обеспечение богатое и производительность больше, чем в железке. Кстати, обычно представление плавучки одинаковое, по ИСО забыл какой номер (есть стандарт на хранение плав. чисел). А вот порядок байт может быть разным. Знаменитые big and little endian. Тогда преобразование форматов сводится к перестановке байт в числе.
Кому как Бог на душу положит. Но часто все кончается тем, что приходится реализовывать TCP/IP. На этом этапе программисты разбегаются и проект умирает. :-))
Hello, Andrew! AS> Чайниковский вопрос. Да :-) AS> Мне нужно связать РС и микропроцессорную плату через RS-232.
Если плата уже сделана, то в том формате, который предусмотрен в интерфейсе этой платы. Если плата опять-же уже сделана, только надо прикрутить к ней интерфейс - imho, проще всего передавать во внутреннем представлении чисел в плавучке платы. Разбить байты числа потетрадно и передавать их как 16-ричные цифры.Впереди ставить стартовый символ (например, : ), в конце - контрольную сумму и <CR><LF> или один из них. WBR Eugene Gavruk.
Hello, Eugene! You wrote to Andrew Shelkovenko on Wed, 26 Nov 2003 09:51:15 +0000 (UTC):
AS>> Чайниковский вопрос. EG> Да :-) ;-) AS>> Мне нужно связать РС и микропроцессорную плату через RS-232.
Спасибо всем ответившим. Я понял, что десяток параметров проще передать в плату как строковые, а там преобразовать через atoi(). Чтоб не заморачиваться. А как из платы передавать - посмотрим. Кстати плата - мотороловская DSP56F807.
With best regards, Andrew Shelkovenko. RQ Search and Replace -
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.