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

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
 
(не показано 16 промежуточных версий 2 участников)
Строка 1: Строка 1:
Функции чтения и записи информации в COM порт:
+
Функции чтения и записи информации в COM порт
  
 
1)  Инициализация Com порта:
 
1)  Инициализация Com порта:
 
     '''ComPortInit'''([Port][,BaudRate][,DataBits][,StopBits][,Parity][,FlowControl])
 
     '''ComPortInit'''([Port][,BaudRate][,DataBits][,StopBits][,Parity][,FlowControl])
 
     Возвращает объект Com-порта, который используется во всех остальных методах.
 
     Возвращает объект 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-порт.
 
     В случает отсутствия любых параметров, используются значения системных параметров из закладки Com-порт.
  
Строка 17: Строка 23:
  
 
4) Закрытие порта
 
4) Закрытие порта
   '''ComPortClos'''e(ComPort)
+
   '''ComPortClose'''(ComPort)
  
 
''Пример тестовой программы:''
 
''Пример тестовой программы:''
Строка 51: Строка 57:
 
  Parameters prm1,prm2
 
  Parameters prm1,prm2
 
  Message("Текст из com порта:"+Chr(13)+ComBuffer)
 
  Message("Текст из com порта:"+Chr(13)+ComBuffer)
 +
 +
== Создание и тестирование виртуального COM порта ==
 +
 +
Для создания виртуального COM порта воспользуемся программой "Advanced Virtual COM Port"
 +
 +
[http://www.advancedvirtualcomport.com/ 15 дней ей можно пользоваться '''бесплатно''']
 +
 +
Устанавливаем ее и переключаемся на закладку '''Local Ports'''
 +
 +
[[Файл:30-11-2015_9-02-05.png]]
 +
 +
Нажимаем на кнопку '''Add'''
 +
 +
[[Файл:30-11-2015_9-05-43.png]]
 +
 +
При этом в вашу систему добавляется два виртуальных COM порта, например, COM2 и COM3, которые соединены друг с другом
 +
 +
Создаем программу, которая открывает порты COM2 и COM3. Далее в порт COM2 отправляем сообщение. Порт COM3 получает это сообщение и выводит его на экран
 +
 +
[[Файл:30-11-2015_9-09-56.png]]
 +
= Смотрите также =
 +
[[Информация для разработчиков системы фабиус]]

Текущая версия на 11:54, 1 августа 2017

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

При этом в вашу систему добавляется два виртуальных COM порта, например, COM2 и COM3, которые соединены друг с другом

Создаем программу, которая открывает порты COM2 и COM3. Далее в порт COM2 отправляем сообщение. Порт COM3 получает это сообщение и выводит его на экран

30-11-2015 9-09-56.png

Смотрите также

Информация для разработчиков системы фабиус