Обмен по COM порту — различия между версиями
Oleg.k (обсуждение | вклад) |
Hisava (обсуждение | вклад) м |
||
| (не показано 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) Закрытие порта | ||
| − | ''' | + | '''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
Нажимаем на кнопку Add
При этом в вашу систему добавляется два виртуальных COM порта, например, COM2 и COM3, которые соединены друг с другом
Создаем программу, которая открывает порты COM2 и COM3. Далее в порт COM2 отправляем сообщение. Порт COM3 получает это сообщение и выводит его на экран


