Есть необходимость использовать com. Нигде не могу найти код программы, для того чтобы, грубо говоря, при нажатии на кнопку, на соответствующий вывод сом порта выводился либо 0 либо 1. В инете много исходников, но они чисто для передачи информации. Есть в принципе статья http://www.pcports.ru/articles/com_1.php Но у меня с visual c неособо и проект не компилируеться. Вот если бы на delphi было. Помогите пожалуйста.
У СОМ лишь три линии, которыми можно управлять. Делается это так: EscapeCommFunction(hCom,setRTS); EscapeCommFunction(hCom,clrRTS); предварительно нужно получить доступ к порту hCom:=CreateFile('COM1',GENERIC_WRITE or GENERIC_READ,0,nil,OPEN_EXISTING,0,0); и проверить его состояние GetCommState(hCom,dcb); //без этого имеем липу Переменные такие: private { Private declarations } hCom: THandle; //хендлер порта dcb:TDCB; //структура параметров порта
DiNoZawR Да СОМ порт это не LPT где можно просто ножки дергать. Его правильно использовать в связке с контроллером и MAX232, полноценно используя линии RxD (чтение данных) и TxD (отправка данных).
На чем софтину будешь писать? Если на делфи есть специальная утилита для работы с СОМ-портом.
Про MAX232 я знаю. Но думал что в случае простого выставления в порт 1 и 0 она не нужна.
Софт хочу на дельфи делать. Вообще софт хочу свой. Чтобы по этим 3м ножкам передавать инфу и команды. Ибо робот пока примитивный. Пара датчиков всего. Я понимаю что это далеко не лучший метод использования сом порта для соединения, но для меня это будет своего рода Hello world
Я не про софтину говорил, а про библиотеку для Делфи BComPort называется. Но она для полноценной работы с портом, т. е. последовательно передает данные, а не выставляет высокий или низкий уровень на ножке.
Спасибо. Поищу. Надо будет наверно уже сразу разобраться с передачей данных.
Добавлено спустя 25 минут 8 секунд: Ой. Скачал BComPort. Теперь тупо не могу установить. Делаю все как в ридми. Открываю BComPortD3.dpk Сразу просит его конвертнуть. Жму да. Потом инсталл. Выдает ошибку: Cannot load package BComPortD3 it contains unit 'BCport', which is also contained in package dclusr70. Если сразу не конвертирую то вроде чтото ставит а потом опять требует конвертнуть если отказываюсь, ошибка та же если соглашаюсь то пишет Update complite и та же ошибка потом.
Подскажите, как же его поставить?
Добавлено спустя 41 секунду: [Fatal Error] BComPortD3.dpk(31): Required package 'vcl30' not found Вот такая ошибка
Добавлено спустя 52 секунды: Скачал отдельно vcl30. Тоже не ставиться. ошибка наподобии этой Cannot load package BComPortD3 it contains unit 'BCport', which is also contained in package dclusr70.
Наконец то установил этот компонент. Насчет LPT это верно. Но неудобный он. и не на всех компах есть. Тем более насколько я слышал, если работать через COM порт, то можно использовать переходник USB - COM. Поэтому лучше сразу COM
ты же ставишь задачу упровлять состоянием каждого пина(проводка/контакта).... так лучше тогда использовать LPT, по твоей задаче удобнее. COM, USB - последовательные!!! LPT -парралельные!!!
У Com можно конечно использовать 3 выхода, как у параллельного.... 2 в третьей степени будет = 8 , 8-комманд всего. Тем более напряжения у него на выходах не от 0 до 5В, а от -10 до 10В ..... а на LPT - 0..5B
Если хочешь делать на Com, тогда уж делай чтобы он работал как должен работать- ПОСЛЕОВАТЕЛЬНО.
А USB - COM , COM-USB(такой вообще незнай есть..) - эт лажа... - либо USB, либо COM....
Я не отговариваю....я только советую, хочу на путь истинный направить, решать вам...