Обмен по COM порту — различия между версиями
Материал из Фабиус wiki
Oleg.k (обсуждение | вклад) (Новая страница: «Функции чтения и записи информации в COM порт: 1) Инициализация Com порта: '''ComPortInit'''([Port][,Ba…») |
Oleg.k (обсуждение | вклад) |
||
Строка 28: | Строка 28: | ||
end | end | ||
− | // инициализация порта | + | // инициализация порта COM19 |
+ | // для инициализации используются значения системных параметров | ||
Global Glbcomport:=ComPortInit("COM19") | Global Glbcomport:=ComPortInit("COM19") | ||
Версия 16:31, 13 ноября 2015
Функции чтения и записи информации в COM порт:
1) Инициализация Com порта:
ComPortInit([Port][,BaudRate][,DataBits][,StopBits][,Parity][,FlowControl]) Возвращает объект Com-порта, который используется во всех остальных методах. В случает отсутствия любых параметров, используются значения системных параметров из закладки Com-порт.
2) Открытие порта и создание потока "слушателя" событий из Com порта:
ComPortOpen(ComPort[,SyncProgText][,Prms] При открытии порта можно через SyncProgText передать текст программы на интерпретаторе и параметры для этой программы. Вызов SyncProgText будет происходить из асинхронного потока при возникновении события чтения данных из Com порта. Повторно открывать порт нельзя, сначала надо его закрыть.
3) Отправка команды(строки) в Com-порт
ComPortSent(ComPort, str) Возвращает число посланных байтов
4) Закрытие порта
ComPortClose(ComPort)
Пример тестовой программы:
if Type("GlbComport")='O'
// Закрытие порта, если уже существует переменная // с объектом порта ComPortClose(Glbcomport) FreeAndNil(Glbcomport)
end
// инициализация порта COM19 // для инициализации используются значения системных параметров Global Glbcomport:=ComPortInit("COM19")
// чтение текста программы, для реакции на событие получения данных из Com порта var prg := GetProgText("Read")
try
// попытка открытия порта с передачей параметров if ComPortOpen(Glbcomport, prg, 'Параметр 1', 'Параметр 2') // отправка команды TEST ComPortSend(Glbcomport, "TEST") end
except
// Ошибка открытия порта Message(_ErrString) return
end
// программа обработки ответа на команду <Read> Parameters prm1,prm2 Message("Текст из com порта:"+Chr(13)+ComBuffer)