Суть программы состоит в собирании
данных приходящих на ком порт (RS232) распарсить эти данные и передавать в 1С,
Программа состоит из двух
частей сама внешняя компонента reader.dll и конфигуратор в внешнего компонента
то есть reader.dll-а
Интерфейс программы состоит из
одного окна
Группа COM PORTS
В
этой группе можно вы” ком порт с каким ком портом хотите работать, команда «Open
Com Port» открывает выбранный ком порт и при этом становится доступным две
команды «Close Com Port» и «Enable monitor Com Port» команда «Close Com Port»
закрывает открытий ком порт, команда «Enable monitor Com Port» включает
мониторинг ком порта то есть вся информация приходящая в ком порт будет выведено
соответствующих окнах.
Группа LIST OF COM PORTS
в
этой группе, командой «ADD COM port information to list» добавляем выбранный ком
порт в список а командой «REMOVE SELECTED COM port from list» удаляем выбранный
ком порт из списка.
В этой группе можно устанавливать
параметры ком порта.
Группа Reader Templates
В этой группе все команды и поля
ввода относятся к тому, как вы хотите преобразовать данные, приходящие на ком
порте.
Поле ввода «Input
template» здесь прописываем
то, что приходит на ком порте допустим на ком порте приходит
=02000000
это и записываем, можно командой
«Copy
value From
com», будет активна после
включение мониторинга ком порта, скопировать приходящие данные в это поле.
Поле ввода «Output
template» здесь прописываем
то что хотим брать от поле «Input
template» пример, если в «Input
template»
=02000000
и в поле «Output
template» запишем 011111111
то из
=02000000
будет пропущена символ = и будет взата
02000000
символы, значит цифра 0 говорит что соответственный номер символа не надо
брать
а цифра 1 говорит соответственный номер символа надо
брать.
Пример 1
Пример 2
Выпадавший список «After
action»
можно
вы” арифметические действие которое будет применятся к результату
преобразованную числу, то есть если на ком порт приходит данные
=02000000
и по шаблону мы взяли
02000000
и при этом «After
action» выбрана *
(умножение) и в поле «Action value» запишем число 2 на выходе мы получим число
4000000 то есть
2000000
умноженное на 2
Переключатель
«Reverse value»
если
включен данные, приходящие на ком порт будут реверсивными то есть если приходит
строка
=02000000
и по шаблону 011111111 мы
взяли
02000000
на выходе получим 00000020
Следующие
три
поля
ввода
«Line Start Character» «Line
Ende Character» и
«Characters count»
работают вместе, в поле ввода
«Line
Start Character»
пишется символ по которому программа будет считать началом строки данных
в поле ввода «Line
Ende Character»
пишется символ по которому программа будет считать концом строки данных то есть,
если на кои порте приходит данные непрерывно
=02000000#=02000000#=02000000#=02000000#=02000000#=02000000#=02000000#
в поле ввода «Line
Start Character»
запишем символ = а
в поле ввода «Line
Ende Character»
запишем
# на выходе получим уже распарсенную строку
02000000
второй пример, если на кои
порте приходит данные непрерывно
=02000000=02000000=02000000=02000000=02000000=02000000=02000000
=02000000=02000000
в поле ввода «Line
Start Character»
запишем символ = а
в поле ввода «Line
Ende Character»
оставим пустим а в поле
ввода «Characters
count» запишем число 8
на выходе получим уже распарсенную строку
02000000
Поле ввода «Line
end
hex
string»
и переключатели
С помощью поле ввода «Line
end
hex
string»
можно задавать конец строки в шестнадцатеричном формате пример 0D0A
соответствует совокупность Carriage Return +Line feed
Группа For 1C
В поле ввода «Event Name» пишется название например
datareader1
по которому 1С в процедуре ВнешнееСобытие(Источник, Событие, Данные) в Событие
будет отображено это называние, то есть по
этому названию 1С будет определят от которого ком порта приходят данные,
Команда
загружает ранее сохраненную конфигурацию
Команда сохраняет конфигурацию
Сохранить
на диске reader.dll
Приходящих на ком порт данных можно наблюдать здесь
в
поле «values
converted
from
template»
будет выводится уже распарсенная строка которая будет передаваться в 1С
Вызов из 1С
ПодключитьВнешнююКомпоненту("C:\dll\reader.dll","Ves");
Попытка
UNIVERSAL_READER=Новый
("AddIn.Ves.readerEx");
Исключение
Сообщить( ОписаниеОшибки())
КонецПопытки
Данные будут поступать
Процедура
ОбработкаВнешнегоСобытия(Источник,Событие, Данные)
Сообщить(Источник);
Сообщить(Событие);
Сообщить(Данные);
КонецПроцедуры
Инициализации
Процедура Команда1(Команда)
Попытка
UNIVERSAL_READER.иницКом();
Исключение
Сообщить( ОписаниеОшибки());
КонецПопытки
КонецПроцедуры