|
Передача данных через компоненту Mscomm |
☑ |
0
pomkka
04.09.15
✎
09:02
|
Здравствуйте. Подскажите, пожалуйста. Ситуация следующая: передаю данные через COM порт на Arduino, код следующий:
ComPort = Новый COMОбъект("MsCommLib.MsComm");
Попытка
ComPort.InBufferCount = 0;
ComPort.Settings = "9600,n,8,1";
ComPort.CommPort = 3;
ComPort.Handshaking = 1;
ComPort.RThreshold = 1;
ComPort.SThreshold = 1;
ComPort.InputLen = 0;
ComPort.RTSEnable = 1;
ComPort.InputMode = 0 ;
ComPort.PortOpen = Истина;
ComPort.Output = Символ(ЭлементыФормы.Команда.Значение);
Исключение
Сообщить(ОписаниеОшибки());
Отказ = Истина;
КонецПопытки;
В целом, все работает, но есть одно большое НО. Данные передаются только если в режиме отладки некоторое время задержаться на строке ComPort.Output. Даже не знаю с чем это связано, может у кого-нибудь есть идеи как это можно исправить?
|
|
1
Zamestas
04.09.15
✎
09:04
|
(1) После открытия и перед началом передачи подождать чуток - не?
|
|
2
ProgAL
04.09.15
✎
09:43
|
|
|
3
pomkka
07.09.15
✎
12:50
|
(1) Не прокнуло, может я что не так делал, но задержку делал банально перебором значений цикла, результат нулевой
|
|
4
pomkka
07.09.15
✎
12:51
|
(2) Спасибо за ссылку, но вот значение функции ПодождатьПриемаСимволовСТаймаутом автор так и не написал(
|
|
5
Лефмихалыч
07.09.15
✎
13:01
|
(3) лучше ping'ом паузить - цикл твой поток на 100% грузит, такое ожидание может не принести результат
|
|
6
Garykom
гуру
07.09.15
✎
13:06
|
ComPort.PortOpen = 1;
ComPort.Output = Символ(ЭлементыФормы.Команда.Значение);
ComPort.PortOpen = 0;
|
|
7
spectre1978
07.09.15
✎
14:12
|
(0) после передачи данных поток должен подождать, пока устройство примет данные и ответит. Задержка может быть до десятков миллисекунд.
|
|
8
pomkka
07.09.15
✎
16:04
|
(6) а есть ли разница? На всякий случай попробовал, результат аналогичен.
|
|
9
pomkka
07.09.15
✎
16:08
|
(5) Спасибо большое, очень помогли. Вот работающий код:
Процедура глПауза(Сек)
scr = Новый COMОбъект("WScript.Shell");
scr.Run("ping 127.0.0.1 -n "+СокрЛП(Число(Сек)),0,1);
КонецПроцедуры;
|
|