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