|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2013, 15:35 | #1 |
Регистрация: 19.08.2013
Сообщений: 8
|
Обмен данными с устройством через Com port
Добрый день.
Впервые столкнулся с задачкой программирования устройства и не могу до конца понять пару вещей. Скачал компонент BComPort, разобрался как идет отправка и получение простых данных (строковой переменной, числовой). Вопрос в следующем: Как сформировать пакет данных и анализировать ответный пакет от устройства по смещениям Формат пакета для отправки Смещение Тип 00 byte 01 byte 02 byte 03 byte 04 byte 05 byte 06 word 08 word 0A word 0C word 0E word 80 word FE word Формат пакета приема Смещение Тип 00 word 02 word 04 word 7E word |
07.09.2013, 16:04 | #2 | |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Цитата:
|
|
07.09.2013, 16:31 | #3 |
Регистрация: 19.08.2013
Сообщений: 8
|
устройство самодельное,
забыл написать, размер пакета 256 байт |
07.09.2013, 16:35 | #4 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
...ну, почему же, описанием нахождения данных по смещению относительно базового адреса страдает, к примеру, Fastwell и многие другие производители. К тому же, это удобно.
OFFTOP > ...для UNIOxx-5, дабы не быть голословным. TC, в вашем случае тип данных указывает на их размерность. Если данные следуют друг за другом в пакете, то зная размерность каждой позиции можно узнать конкретное значение (byte - 1 байт, word - два байта). Если указано смещение $7e после $4, это значит что с $6 по $7e следует поле соответствующей размерности. Однако, Человек_Борща верно отметил. Мы тут не гадалки, если задаете вопрос по железу и протоколам - наименование прибора и ссылку на мануалы в тему. Цитата:
Пример побайтного анализа: Код:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 07.09.2013 в 16:38. |
|
07.09.2013, 17:07 | #5 |
Регистрация: 19.08.2013
Сообщений: 8
|
все что дали это формат обмена пакетами, микроконтроллер напишу попозже
Последний раз редактировалось qwertyui123; 07.09.2013 в 17:11. |
07.09.2013, 17:28 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Замечу, что вы уже можете приступить к формированию и разбору пакетов.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
07.09.2013, 18:14 | #7 |
Регистрация: 19.08.2013
Сообщений: 8
|
я так и не могу понять, как из моих 15 переменных сформировать в пакет данных
и затем полученный ответный пакет раскидать по переменным исходя из этих смещений |
07.09.2013, 19:03 | #8 | |||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Рассмотрим для передачи: Цитата:
Код:
Код:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|||
07.09.2013, 19:44 | #9 | |
Регистрация: 19.08.2013
Сообщений: 8
|
Цитата:
еще один небольшой вопросик Я так понимаю в моем случае значит перевести цифру 2 в двоичную систему (строка) и изменять соответствующие биты, затем полученную строку преобразовать в число и отправить в контроллер Смещение Тип Описание 01 byte Управление 2^0 – Постоянная K1 = 1 или 2 (0/1) 2^1 – Постоянная K2 выкл./вкл. (0/1) 2^2 – Постоянная K3 выкл./вкл. (0/1) 2^3 – 0 2^4 – 0 2^5 – 0 2^6 – 0 2^7 – 0 К примеру получается 2 это 00000010 меняем на 11100000 и конвертируем в число получая 224. Я не ошибаюсь ? Последний раз редактировалось Stilet; 08.09.2013 в 14:33. |
|
08.09.2013, 10:54 | #10 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
К сожалению, не могу ответить на ваш вопрос, поскольку вы продолжаете вываливать куски протокола вашего обмена по вашему усмотрению (теперь описание появилось и загадочным образом 00000010 меняется на 11100000). Это называется партизанщина, а я привык видеть проблему в целом, особенно в бесплатных разделах. В любом случае, извините, но помочь более не имею возможности.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обмен данными! | Romowski | Visual C++ | 6 | 12.12.2012 07:50 |
Прямой обмен данными между компьютерами через интернет | mishanama | Работа с сетью в Delphi | 0 | 22.04.2012 14:59 |
Обмен данными через LPT | Vovan91 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 5 | 17.02.2011 03:30 |
Обмен данными | saggy | Работа с сетью в Delphi | 1 | 14.02.2010 13:10 |
Обмен данными между формами через переменную типа boolean | Человек_Борща | Общие вопросы Delphi | 3 | 22.01.2010 20:17 |