Обмен по COM порту — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м (Создание и тестирование виртуального COM порта)
м (Создание и тестирование виртуального COM порта)
Строка 67: Строка 67:
  
 
[[Файл:30-11-2015_9-02-05.png]]
 
[[Файл:30-11-2015_9-02-05.png]]
 +
 +
Нажимаем на кнопку '''Add'''
 +
 +
[[Файл:30-11-2015_9-05-43.png]]

Версия 09:06, 30 ноября 2015

Функции чтения и записи информации в COM порт:

1) Инициализация Com порта:

   ComPortInit([Port][,BaudRate][,DataBits][,StopBits][,Parity][,FlowControl])
   Возвращает объект Com-порта, который используется во всех остальных методах.
   Параметры:
   BaudRate - Стандартная скорость, бит/сек: 50,75,110,150,300,600,1200,1800,2000,2400,3600,4800,7200,9600,14400,19200,28800,38400,57600,115200
   DataBits - Количество бит данных в переданном символе: 5,6,7,8
   StopBits - Длина стопового бита: 1, 1.5, 2
   Parity -   Режимы контрольного бита: None, Even, Mark, Odd, Space
   FlowControl - Режимы управления потоком: Hardware,Software,None,Custom
   В случает отсутствия любых параметров, используются значения системных параметров из закладки 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)

Создание и тестирование виртуального COM порта

Для создания виртуального COM порта воспользуемся программой "Advanced Virtual COM Port"

15 дней ей можно пользоваться бесплатно

Устанавливаем ее и переключаемся на закладку Local Ports

30-11-2015 9-02-05.png

Нажимаем на кнопку Add

30-11-2015 9-05-43.png