Как програмно работать с ком-портом посредством протокола mod-bus?
Ос и язык какой?
Я с ком-портом работал на VC++6.
Немного гиморно, но всё реально.
Немного гиморно, но всё реально.
в чем проблема? читаешь и пишешь в /dev/cuuaa иличего-то там, не помню 

винды,
а язык - более менее пофиг (borland delphi, builder c++, visual c++ )
а язык - более менее пофиг (borland delphi, builder c++, visual c++ )
и как? =)
что что, простите?
хде я?
хде я?
что-то типа:
HANDLE h = OpenFile("COM1", ...); //открываем com-порт
SetCommState(h, ...); //настраиваем скорость и параметры com-порта
SetCommTimeouts (h, ..);//настраиваем тайм-ауты
ReadFile(h, ...); //читаем из com-порта
WriteFile(h, ...); //пишем в com-порт
CloseFile(h);// закрываем com-порт
А зачем тебе, вообще, это надо?
Вообще-то для работы с mod-bus-ом есть те же Opc-серверы, с которыми работать приятнее.
Вообще-то для работы с mod-bus-ом есть те же Opc-серверы, с которыми работать приятнее.
Только еще один notice: с COM-портом работать надо обязательно через асинхронные вызовы (Overlapped IO т.к. CommTimeouts при удачном стечении обстоятельств не срабатывают, и тред с ReadFile подвисает.
Я бы порекомендовал взять WFC и использовать CSerialFile, очень милый API под Win32/C++.
Я бы порекомендовал взять WFC и использовать CSerialFile, очень милый API под Win32/C++.
> т.к. CommTimeouts при удачном стечении обстоятельств не срабатывают
это - миф
это - миф
>> т.к. CommTimeouts при удачном стечении обстоятельств не срабатывают
> это - миф
Это не миф, это баги в реализации уж не знаю чего в системе. Проверено экспериментально, Windows 2000 Prof. При условии отключенного любого flow control (устройство на том конце иначе не умеет). Хочешь верь, хочешь не верь, дело твое.
> это - миф
Это не миф, это баги в реализации уж не знаю чего в системе. Проверено экспериментально, Windows 2000 Prof. При условии отключенного любого flow control (устройство на том конце иначе не умеет). Хочешь верь, хочешь не верь, дело твое.
без flow control хуйово при любых обстоятельствах, разве нет?
если target устройство, с которым нужно общаться, его не умеет, то ничего тут не поделаешь.
Оставить комментарий
markyzz
Если возможно, то дайте хоть советы на первые шаги в эту сторону. А-то меня, как лоха-прогера, слегка пугают слова "работа с ком-портом" =)Ну или ссылку на какую-нить страничку, где что-нить написано по первым шагам в эту сторону.
Заранее спасибо!