Прочитать COM порт

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
George
Активист
Сообщения: 113
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Прочитать COM порт

Сообщение George »

Пример:
PROGRAM
INCLUDE('VOYAGER.INC'),ONCE
MAP
END

GLO:Buffer STRING(200)
GLO:ReadData STRING(200)

Window WINDOW('Scanner'),AT(,,251,63),FONT('MS Sans Serif',8,,FONT:regular),CENTER,TIMER(10),GRAY,DOUBLE
PROMPT('Чтение данных из порта COM3'),AT(9,6),USE(?Prompt:ReadData)
ENTRY(@s32),AT(9,18,50,12),USE(ReadData")
ENTRY(@s200),AT(9,38,233,12),USE(GLO:ReadData)
END

SC Scanner
!===============================================================================================================================
CODE
OPEN(Window)
ACCEPT
CASE EVENT()
OF EVENT:OpenWindow
SC.Init('COM3',GLO:Buffer)
IF SC.OpenPort()
MESSAGE('Компорт используется другой программой!')
POST(EVENT:CloseWindow)
END
OF EVENT:Timer
IF CLIP(GLO:Buffer) <> ''
GLO:ReadData = GLO:Buffer
DISPLAY()
CLEAR(GLO:Buffer)
END
!IF CLIPBOARD() <> ''
! GLO:ReadData = CLIPBOARD()
! DISPLAY()
! SETCLIPBOARD('')
!END
END
END
SC.Kill
CLOSE(Window)
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Игорь Столяров писал(а): 10 Март 2026, 11:43
finsoftrz писал(а): 10 Март 2026, 10:30 то в специализированных POS системах работают только через com, клавиатурные сканеры там не используют
Есть такое. Но для POS систем, как правило, и свой софт. Там как бы идёт рабочее место кассира "всё включено".
Что касается остального ... Вы давно устройство с COM портом видели ? А сам COM порт на компьютере ?
Я реально уже лет 5 не видел точно, а может и больше. Ни в ремонте, ни у пользователей.

Был такой большой период, где-то между 2005 - 2015 г., когда все занимались своим делом и прикладной
торговый софт работал лет по 5 без изменений. Сейчас каждый год законодательство всё ставит с ног на голову.
И если уж прикручивается, например, тот же ТС ПИоТ, то заменить эмуляцию COM порта на нативный HID проблем не составляет.
Хотя бы для простоты настройки у пользователей. Потому что настройка эмуляции, да ещё и в терминале - это нужно уметь. 😎
У меня POS система на кларионе. :-) Она же может работать и в оконном режиме со стандартной клавиатурой и мышью, а также в режиме с сенсорным монитором, как задано в настройке.
Я на чужие компьютеры редко смотрю, для этого есть специально обученные люди. Знаю точно, что в магазинах использовались старые компьютеры с физическими com портами. Даже специальное устройство разветвитель есть, которое позволяет подключать через один com порт несколько на одном компьютере. Для некоторых моделей ккм (конкретно, пиритов) была рекомендация подключать по возможности на физический com порт, так как подключение через usb было гораздо чувствительнее к внешним наводкам, а подключения по ip не было тогда.
В основном, конечно, используются эмуляторы usb-com. А чего их бояться? Там все очень просто, инсталлируешь соответствующий драйвер, смотришь, на какой com он сел, прописываешь в настройке программы. Дальше все работает.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8571
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Прочитать COM порт

Сообщение Игорь Столяров »

Полностью согласен - всё это было. Просто всё это было давно.

Когда ещё АТОЛ содержал форум, где его в режиме On-Line материли пользователи (лет 7-8 назад) -
там был вопрос: зачем они используют в своей POS системе сканеры с COM портом, которые фиг найдёшь на замену ?
Ответ был простой: цена. Контроллер и раъёмы USB в Зеленграде не производили, а COM контроллер стоит копейки.

У нас выделенной POS системы нет, сканер EAN-13 был в разрыв клавиатуры (недавно выбросил), 2D в USB работает
сразу после подключения (если его 1С-ники не перепрограммировали), легко заменяется и не требует настройки. :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Именно сканеров с com портом я тоже давно не видел, те, что используются, имеют usb, а со стороны ПК могут подключаться в режиме работы com (эмуляция com-usb) или клавиатурном. Вообще, проблем с com портами на сканере тоже не должно быть, есть переходники usb-com. Наверно, это очень давно было или не знали про переходники.
Вопрос в обратной совместимости. Изначально все оборудование работало через com. Было сделано огромное количество всякого кассового софта. По этой причине, чтобы не переделывать все прикладные программы, придумали драйвера usb-com. То есть, подключаем устройство через более современный usb, а программы получают информацию в том же виде, как через com. С таким подходом все вроде как согласились.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8571
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Прочитать COM порт

Сообщение Игорь Столяров »

finsoftrz писал(а): 10 Март 2026, 15:37 Изначально все оборудование работало через com.
И LPT. Я спаял по книжке чудо-кабель, который позволял через 2 принтерных порта в Norton Commander с огромной скоростью
(по тем временам) переносить данные между компьютерами. Мне все завидовали. Я их потом под заказ продал штук 20. :D
finsoftrz писал(а): 10 Март 2026, 15:37 Вопрос в обратной совместимости.
Да, это было правильно и вполне логично. Но ведь всё уже давно закончилось. COM портов в компьютерах уже нет.
Оборудования для COM портов тоже нет. Ну может кроме каких-то готовых POS систем. И COM порты уже не вернуться.
И вряд ли кто-то сможет сейчас использовать торговую программу 20 летней давности, всё сильно изменилось. 🤷‍♀️
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Я бы не стал утверждать, что физических com портов совсем нет. Для pos систем делают различные специализированные блоки, точно не уверен, по моему, на одном таком достаточно свежем видел их. Потом речь не идет про торговые программы 20 летней давности. Все разработчики pos систем, которые я видел, поддерживают работу с com. Потому как это не сложно, это уже отлажено, это поддерживается разным торговым оборудованием, как старым, так и новым. Для нового интерфейса могут сделать настройку. Например, ккм штрих можно подключать через com, можно через ip. Последнее считается более стабильным и быстрым, хотя ip протокол на одном компьютере для работы с подключенным к нему девайсом выглядит несколько надуманным.
То есть, совсем хоронить работу через com порт, а какой в этом смысл, чтобы что в итоге получить?
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Работу через com порт сейчас надо рассматривать как разновидность транспорта между ПК и оборудованием, а не как реализацию в виде физического com разъема. Весь вопрос в распространенности. Огромный парк торгового оборудования поддерживает (что-то даже на ум не приходит, а кто не поддерживает), огромное количество pos систем тоже поддерживает, нужен какой-то очень весомый аргумент, чтобы выйти из этого круга. Даже "программа Игоря" на самом деле работает с com портами, только не напрямую, а через прослойку драйверов. Не для всех видов торгового оборудования такая прослойка есть, некоторые предполагают прямую работу. Если драйвер есть, нет обязательности его использования, где-то это упрощает жизнь, где-то не имеет особого смысла.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8571
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Прочитать COM порт

Сообщение Игорь Столяров »

finsoftrz писал(а): 10 Март 2026, 16:42 хотя ip протокол на одном компьютере для работы с подключенным к нему девайсом
У меня так подключен РР-Электро. И по USB тоже. Но это для тестовой отладки.
И у него есть 2 RJ-45 для подключения кабеля с COM портом и денежного ящика.
Только самого кабеля в комплекте нет. 🤷‍♀️

А без COM порта сейчас идут все АТОЛы. Такие модели были (без USB), но их уже сняли.
Эмуляция COM порта имеет смысл для сканера, если программа не поддерживает HID.
Что странно - т.к. это в разы проще, а нативных девайсов с COM подключением нет.
Ну и ещё специализированные девайсы со старым интерфейсом вроде весов.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Не совсем понял про атолы, как там нет работы по com интерфейсу? Или Вы опять имеете ввиду физический com разъем? Если есть usb, значит есть и com (эмуляция usb-com).
Для сканера как раз прямая работа с com портом, ибо смысла нет наворачивать драйвера (типа драйвер сканера от атола). У меня напрямую по com порту (через тот класс, который выложил здесь) работают сканеры, весы (кроме штриховских), дисплеи покупателя, модем для рассылки смс. Были еще ккм пирит и сп, но от них отказались из-за малой распространенности и проблем с обслуживанием. Для пиритов вначале была прямая работа через com, позже появилась библиотека на С, стали через нее.
Чтобы не было разночтений, прямая работа с com включает эмулятор usb-com, так как со стороны приложения это одно и то же, как если бы было подключение к физическому com разъему..
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Если есть обычная программа с полем ввода для штрих-кода, то можно использовать клавиатурный сканер (hid). Чтобы эта программа без переделок могла работать с com портом, можно запустить утилиту, которая запихивает символы с com порта в клавиатурный буфер (писал про такую выше). В pos я просто, в зависимости от настроек, либо работаю через com, либо через клавиатурный сканер (скрываю/показываю text поле). Через клавиатурный сканер удобно работать в режиме стандартного windows приложения на компьютере, где есть доступ к множеству разных программ. Через com работает в режиме pos системы (в том числе с кнопочным интерфейсом для кофейни и столовой), когда работа жестко ограничивается одним приложением.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8571
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Прочитать COM порт

Сообщение Игорь Столяров »

Мы как-то сразу выбрали направление работы со сканерами в разрыв клавиатуры.

Лет 15-20 назад, когда были сканеры с COM подключением - мы всегда говорили, что для работы с программой
нужен сканер подключаемый в разрыв клавиатуры и проверятся он считыванием кодов в Блокнот Windows. Всё.

И никого из пользователей это не напрягало. А собственно 2D сканеры уже были все с HID интерфейсом, поэтому и
делать нам ничего не надо. Старый сканер снимался с клавиатуры, новый включался в USB порт ... и всё сразу работает. :D
Можно работать с несколькими программами, переключать сканер в любой порт и нет никаких вопросов и настроек,
что конечно удобно для обычного пользователя.
finsoftrz писал(а): 10 Март 2026, 18:49 Если есть usb, значит есть и com
Во всех драйверах ККТ (не только АТОЛ) есть т.к называемые порты подключения VCOM (наверно VIRTUAL COM ?).
На них назначаются другие реальные порты подключения, в т.ч. и USB. Но это всё остаётся внутри драйвера.
Прикладная прогамма просто указывает номер порта и всё. Не требуются никакие эмуляторы и т.д.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Игорь, у Вас программа предназначена для работы на компьютерах совместно с другими программами. В этом случае нормальный подход это работа с клавиатурным сканером.
В pos системах ситуация несколько другая. Там работает только одна кассовая программа, пользователь не может выйти за ее пределы (только если есть специальные админские права). Также там используется не стандартная, а специальная pos клавиатура, в которой присутствуют цифры и функциональные клавиши, которые назначаются разным операциям (или с помощью программирования самой клавиатуры, или непосредственно в кассовой программе). Мышка не используется. Использование клавиатурного сканера в этой ситуации смысла не имеет, но может приводить к конфликтам и неудобству при работе. Не раз читал сообщения от тех, кто занимается обслуживанием pos систем, что подключать клавиатурный сканер это плохая практика, надо делать нормальное подключение через com, которое никому не мешает и ни с чем не конфликтует. Сам я в режиме pos системы не пробовал клавиатурный сканер, сразу видно, он там не нужен - лишнее поле ввода, лишний фокус и т.п.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8571
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Прочитать COM порт

Сообщение Игорь Столяров »

Я понимаю, что такое POS система. И собственно POS систем мы действительно не держим. 🤷‍♀️

Вы в любом случае сейчас используете USB / HID сканер, но установленный драйвер перенаправляет поток ввода
в эмулируемый буфер COM порта, откуда его уже забирает прикладная программа. А могла бы забирать напрямую.
Не знаю. У меня нет компетенций по работе с COM портом и я не понимаю всех его бонусов, кроме совместимости.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5885
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Прочитать COM порт

Сообщение finsoftrz »

Сканеры подключаются через usb в режиме работы через com интерфейс. То есть да, считанные символы перенаправляются в эмулируемый буфер com порта. При клавиатурном сканере символы перенаправляются в клавиатурный буфер. Может ли последнее привести к каким-то конфликтам с pos клавиатурой или глотать какие-то управляющие символы, не экспериментировал. На мое восприятие, клавиатурный сканер это лишние неудобства в работе при таком интерфейсе.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8571
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Прочитать COM порт

Сообщение Игорь Столяров »

finsoftrz писал(а): 10 Март 2026, 21:31 На мое восприятие, клавиатурный сканер это лишние неудобства в работе при таком интерфейсе.
Ну, это потому что Вы все прибамбасы устанавливаете и настраиваете самостоятельно. Или есть доверенный сисадмин.
А вот если бы Вам писали в тех. поддержку (как пишут мне) из Ханты-Мансийска, что после обновления программы сломался
принтер и бухгалтер ушла в декрет - то Вы бы изменили своё мнение ! :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Ответить