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

Материал из Фабиус wiki
Перейти к: навигация, поиск
(Новая страница: «Функции чтения и записи информации в COM порт: 1) Инициализация Com порта: '''ComPortInit'''([Port][,Ba…»)
 
Строка 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)