Hello, All! Чайниковский вопрос. Мне нужно связать РС и микропроцессорную плату через RS-232. Данные типа string передать легко. Как передать числовые данные (и с плавающей точкой тоже) ? Разбить их побайтно, а затем собрать на стороне приемника? А если их представление различно в РС и в плате? Как это обычно делают?
With best regards, Andrew Shelkovenko.
Didn't find your answer? Ask the community — no account required.
B
Basil Bourtakov
Здравствуйте.
В конце концов, числа можно тоже гнать как строки, прямо с точкой и нулем в конце. А на приемном конце разбирать при помощи scanf или строковыми функциями.
Например так. Часто еще упаковывают в пакеты и вставляют контрольную сумму для защиты от ошибок и поле команды. Чтобы знать, данные какого типа пришли. Ну и по мелочи всякие дела - вроде slip протокола для определения начала пакета. В пакет можно и строки укладывать.
Тогда надо преобразовать форматы. Лучше это делать в РС. Там это проще, так как инструментальное обеспечение богатое и производительность больше, чем в железке. Кстати, обычно представление плавучки одинаковое, по ИСО забыл какой номер (есть стандарт на хранение плав. чисел). А вот порядок байт может быть разным. Знаменитые big and little endian. Тогда преобразование форматов сводится к перестановке байт в числе.
Кому как Бог на душу положит. Но часто все кончается тем, что приходится реализовывать TCP/IP. На этом этапе программисты разбегаются и проект умирает. :-))
Спасибо Basil
E
Eugene Gavruk
Hello, Andrew! AS> Чайниковский вопрос. Да :-) AS> Мне нужно связать РС и микропроцессорную плату через RS-232.
Если плата уже сделана, то в том формате, который предусмотрен в интерфейсе этой платы. Если плата опять-же уже сделана, только надо прикрутить к ней интерфейс - imho, проще всего передавать во внутреннем представлении чисел в плавучке платы. Разбить байты числа потетрадно и передавать их как 16-ричные цифры.Впереди ставить стартовый символ (например, : ), в конце - контрольную сумму и <CR><LF> или один из них. WBR Eugene Gavruk.
A
Alexey Boyko
Hello Basil.
26 Nov 03 10:49, you wrote to Andrew Shelkovenko:
У-у-у, как все запущено. ;)
Alexey
A
Andrew Shelkovenko
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 -
formatting link
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required
Report Content
You are reporting this content to the moderators. They will look at it
ASAP.