Показать сообщение отдельно
  #4  
Старый 16.03.2011, 17:55
odysseysh odysseysh вне форума
Прохожий
 
Регистрация: 16.03.2011
Сообщения: 1
Репутация: 10
По умолчанию

Чтобы не создавать новую тему решил добавить свой вопрос.

Подскажите если кто знает решение проблемы. Пишу в Delphi програму для опроса "железки" по com порту. Сначала попытался через CreateFile, WriteFile и ReadFile, со всеми сопутствующими. Но отправляют они в ASCII, а запрос имеет форму 0x0E1234560000000F12345678ABCD, попытка преобразовать в ASCII побайтно и затем послать никчему не привела. Причина в байтах с 5 по 7 которые обязательно должны быть 0x00 то бишь null, также могут быть 0x00 и на других позициях. Стандартными средствами преобразовать в PChar не получается, стопорится на первом же 0x00. Также есть проблема при получении ответа, который имеет аналогичный вид. Приходит все кроме 0x00. Как я понимаю последнее связано с флагом dcb NullStrip но я не нашел нигде как его изменить, а также и с вышеизложеной проблемой.

Попытался использовать компоненты CPort BCPort, но или там нет, или я не нашел как отправить/принять в шестнадцатиричной форме запрос. А готовые примеры также "съедают" 0x00 а то и все что после.

Может кто подскажет как обойти эту проблему, или компонент который коректно будет работать?
Ответить с цитированием