Обмен по COM порту

Материал из Фабиус wiki
Версия от 16:25, 13 ноября 2015; Oleg.k (обсуждение | вклад) (Новая страница: «Функции чтения и записи информации в COM порт: 1) Инициализация Com порта: '''ComPortInit'''([Port][,Ba…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Функции чтения и записи информации в 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

// инициализация порта
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)