Пожамкайте апп? Андроид-камера в сканер штрихкодов для 1С #807645


#0 by Sapiens_bru
Уже второй месяц приобщаюсь к программированию не только под 1С, начал с андроида. Прошу посмотреть, пользоваться если нужно и прокомментировать результаты. По ссылке архив. В нём 2 файла. Barcode_server.exe запускаем на компе, он выводит список IP адресов компа. Нужный запоминаем (Необязательно) В любом браузере проверяем , где ХХХ.ХХХ.ХХХ.ХХХ - адрес компа на котором запущено ПО-сервер. Если не видим ответа "Barcode server ready", даем доступ к порту 4242 в брэндмауре. Barcode_scanner.app запускаем на смартфоне. Вводим IP компа на котором запущен сервер. Жмем скан. Сканим Результаты сканирования будут передаваться на комп в виде событий клавиатуры, аналогично работе беспроводного клавиатурного сканера. Понимает только цифры! Можно подключать к типовым 1С с помощью типового обработчика Сканер 1С(Native-Api) и к любым программам поддерживающим работу с клавиатурными сканерами, а так же сканить в блокнот, ворд или куда угодно. Оба приложения бесплатны и открыты, написаны с использованием открытых компонент. Можно брать себе, переписывать, продавать итд. Ссылки на исходный код: Кто пожелает протестировать апп, пишите свои комментарии сюда или на почту Sapiens-bru@yandex.ru . Если вам в работе нужно приложение подобного типа, также пишите. Попытаюсь реализовать пожелания в порядке самообучения.
#1 by Woldemar177
а можно сделать чтоб сканировало 2д из медицинских полисов?
#2 by Sapiens_bru
Можно. Нужно знать таблицу всех возможных символов в этом коде, или их Alt-Num варианты. Например если зажать Alt и на нумпаде набрать 155 - получится буква "Ы"
#3 by Woldemar177
Делай. Это реальная победа. Сотни программистов из медицины тебе будут благодарны. Я бы даже денег заплатил.
#4 by Злопчинский
А аналогичное приложение от Serginio смотрел? Лежит на ИС
#5 by Sapiens_bru
Денег не надо. Скинь на почту Sapiens-bru@yandex.ru несколько кодов из полисов. Можно сфотографировать на телефон. И результат их расшифровки. Добавлю этот функционал серверу. Простые EAN 13 коды найти не проблема, а что за медицинские я понятия не имею.
#6 by Sapiens_bru
Нашел их с десяток разной степени крутости. Все безусловно рабочие и все лучше моего. Но все просили денег так или иначе, или рекламу показывали. Опенсорса не нашел в принципе, только буржуйский пример на C#. На Инфостарте у Serginio не вижу подобного. В любом случае я потратил с пользой 3 вечера. Может кому поможет сэкономить эти три вечера на разработке чего-то коммерчески применимого
#7 by Cyberhawk
Без видео с демонстрацией лениво читать
#8 by Злопчинский
что будет если связь отвалилась? Будут ли буферизироваться  насканированные коды и будут ли сливаться на сервер при восстановлении связи?
#9 by Злопчинский
обратная связь от сервера на клиента есть? Что позволяет делать?
#10 by Sapiens_bru
буфера нет. Сама идея сканера штрихкодов не подразумевает буфер. Реализовать несложно, но как должно реагировать клиентское приложение на внезапно свалившиеся из буфера данные?
#11 by Sapiens_bru
Обратная связь возможна, но конкретно в этом аппе ее нет. Вставлю обратную связь в виде ответа "штрихкод принят" в следующем обновлении. Вообще можно сделать например апп-прайсчекер или апп-тсд. Их тоже немало написано.
#12 by Злопчинский
как реагировать - это вы уж разбирайтесь, обеспечьте чтобы реакция на свалившиеся из буфера данные была эквивалентна реакции последовательных данных обычной работы
#13 by Злопчинский
если приложение работает только при наличии постоянного канала связи - зачем это морочить отдельной прокладкоц вместо организации при постояннои канале связи прямого рдп в базу с использованием простенькой лёгкой родной формы для приемки и обработки штрих-кода? И при этом вдобавок ещё и обратную реакцию обеспечить с любой логикой?
#14 by Sapiens_bru
Вас куда-то не туда несёт Возьмём простой пример: Магазин одежды продает при помощи розницы 2.2 базовой мне кнопки. СканерШК, не сработал потому что перегружался роутер. Продавец нашла товар по артикулу и продала мне. Открывает второй чек и в это время прилетает штрихкод носок. Бред же. СканШК это не письмо электронной почты. Не пришел сразу - не должен вообще прийти.
#15 by Sapiens_bru
Чертов т9.
#16 by Sapiens_bru
Чтобы обеспечить обратную связь нужно знать в какую базу идёт скан. 99.99% программ не дают сканеруШК обратной связи. Какую обратную связь должен дать Блокнот в который я сканирую ШК?
#17 by Sapiens_bru
Ещё раз. Этот набор программ эмулирует поведение Сканера штрихкодов. Не ТСД, не прайсчекера, не РМК. А простого сканера. Как например honeywell 1202g и ему подобных.
#18 by Злопчинский
по крайней мере в таком случае приложение на дивайсе должно сигнализировать юзверю большие алярмы цветом и звуком что сканирование не прошло по каналу связи.А то стоит сборщик, штук 40 товара отжмакал и тут оказывается что в самом начале канал связи отвалился
#19 by Злопчинский
ну так и напиши тогда что прога предназначена для сбора штрих-кодов и ничего более
#20 by Злопчинский
ага, это простой эмулятор сканирования штрих-кода...
#21 by Sapiens_bru
Об этом я написал в . Сегодня сделаю. Спасибо за наводку. Об этом написано в
#22 by Tatitutu
Barcode_server.exe запустил выдал только одни IP адрес без указания портов и этот "адрес" занят Апачем что делать ?
#23 by Tatitutu
идея нравится - прикручу к MAGAZKA готов к поддержке и тестам
#24 by Tatitutu
в apk на первом окне где вводишь IP - нужно добавить какую то проверку подключился ты ли нет (непонятно) и сообщение добавь чтобы WI-FI нужно включить сканирование Штрихкода немного подвисает ("окошко" прилипает к штрихкоду) тоже выводи сообщением (надпись - штрихкод 1234567890123 считан, передан или ошибка чтения)
#25 by Tatitutu
+ Иконку приложению добавь в ПЕРВУЮ ОЧЕРЕДЬ - чтобы кравиво было и над названием подумай WiFi Barcode Scanner а не WiFiBarcodeSc anner
#26 by Sapiens_bru
Апачем занят порт 80 или 443(если с ssl), б_сервер занимает 4242. Графические интерфейсы на яве я еще не умею. Научусь какому-нить свингу, сделаю приличное приложение на сервер. Чтобы порт выбирался, доступ от брендмауэра запрашивался, чтобы в трей сворачивался итд. Чтобы сетап был с выбором ставить как службу или как приложение. Мой опыт работы на яве меньше недели. позавчера узнал что такое jar :) ок, сегодня сделаю ок, сегодня сделаю
#27 by Sapiens_bru
Штрихкод "прилипает" из-за фриза камеры. Камеру подмораживаю специально, иначе она успевает штрихкод раз 10 за секунду считать, передавая его многократно. Подумаю как можно это ограничить без фриза
#28 by Philix
У Metrologic-ов в давности была следующая логика: блокировалась передача одинаковых ШК в интервале (если память не изменяет - примерно 1 сек). А разные ШК мы для тестов на лист распечатывали и сканировали за секунду штук 5-7. Т.е. сканер помнит последний считанный ШК и не отдает его слишком часто.
#29 by Sapiens_bru
Отличная идея. Заодно научусь работать с часами в адроиде.
#30 by Sapiens_bru
* Переименовал приложение красиво * Добавил иконку приложению, изменил иконку сервера * Добавил кнопку проверки связи в приложение * Изменил таймаут ожидания ответа от сервера с стандартных 10 секунд на 2 * Добавил стандартный звук сканирования (пик) при успешной передаче на сервер, звук ошибки (пиу-пиу-пиу) при неудачной передаче. * Теперь один и тот же штрихкод можно сканировать не чаще чем раз в секунду, камера не фризится после скана
#31 by ejikbeznojek
А у меня ни 1 шк не считался. мб камера слишком плохая завтра на работе стрельну к кого-нибудь нормальный телефон
#32 by etc
Напомнило DataWedge для моторолловских ТСД с плагином IPWedge. Тот же принцип.
#33 by Злопчинский
угу, и обязательно расскажи как получится 2-3 скана штрихкодов в секунду сделать
#34 by Sapiens_bru
Подключал штук 50 разных сканеров шк , камера самого навороченного смартфона рядом не лежала с самым хреновым сканером. Но иногда бывает что сканера нет, а смартфон есть. Бывает, что штрихкод на экране, а image сканера нет. Бывает что штрихкод на большой коробке и в длину сантиметров 20, а глубина сканирования имеющегося сканера не позволяет видеть шк с расстояния в полметра. При всем при этом штрихкод не дублирован цифрами оказался. Вот тут бы и пригодился апп эмулирующий работу сканера шк, пускай не 2-3 в секунду а один в 5 секунд
#35 by YuryVG
А попробовать внешний сканер смартфону подключить нет желания? Как в этом решении .
#36 by Sapiens_bru
Не увидел в том решении работы с внешним сканером ШК. Реализовать подобную работу можно элементарно, внешние BlueTooth сканеры андроидом опознаются как клавиатура. Поймать событие клавиатуры и передать его серверу даже проще чем поймать событие камеры. В приведенном примере коммерческая разработка, автор которой потратил десятки, возможно сотни часов на каждую из 2х компонент. Моя разработка не коммерческая, сделана в сумме часов за 20 абсолютным новичком в этой области. Весь код выложен в общий доступ. Может быть склонирован подходящей IDE и доработан, либо использован как пример для изучения. При этом приложение работает так как заявлено. ЗЫ. Если Вы хотите использовать внешние сканеры для подобной задачи (например приложение на планшете ходящее по HTTP в вашу базу 1С за новостями о товаре и сразу к товару что-то дописывающее) пишите в почту, расскажу(бесплатно) как я бы это сделал, либо сделаю(в обмен на планшет и сканер... тестить то надо на чем-то)
#37 by spydex
Харвестер прекрасно работает с внешним сканером, на сайте указано что с ним будет максимально быстро работать. Там даже срабатывает авто блокировка экрана, как когда телефон при разговоре к уху подносишь. Кстати, очень даже удобная программка.
#38 by Адинэснег
// Обработчик команды формы ОткрытьИнтерфейсСканирования &НаКлиенте Процедура ОткрытьИнтерфейсСканирования(Команда)     ОбработчикСканирования = Новый ОписаниеОповещения("ОбработкаСканирования", ЭтотОбъект);     ОбработчикЗакрытия = Новый ОписаниеОповещения("ОбработкаЗакрытияИнтерфейса", ЭтотОбъект);     СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Наведите камеру на штрихкод", ОбработчикСканирования, ОбработчикЗакрытия); КонецПроцедуры &НаКлиенте Процедура ОбработкаСканирования(Штрихкод, Результат, Сообщение, ДополнительныеПараметры) Экспорт     Если Результат Тогда         Текст = "" + Штрихкод;     Иначе         Текст = "Ошибка: " + Сообщение;     КонецЕсли;     Если ЗакрытьИнтерфейс Тогда         СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов;     КонецЕсли;     Сообщить(Текст); КонецПроцедуры &НаКлиенте Процедура ОбработкаЗакрытияИнтерфейса(ДополнительныеПараметры) Экспорт     Сообщить("Закрывается интерфейс сканирования"); КонецПроцедуры &НаКлиенте Процедура ПриОткрытии(Отказ)     Если НЕ СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов Тогда         ВызватьИсключение "Сканирование штрихкодов не поддерживается";     КонецЕсли;     ЗакрытьИнтерфейс = Ложь; КонецПроцедуры
#39 by Kuzmich123
Подскажи, с чего начинал изучать программирование под андройд. Какие книги, ресурсы?
#40 by romix
Здорово, спасибо - а RS-232 порт эмулировать тоже умеет? Я не уверен, но вроде бы с ним пользователю интерфейсно лучше (не надо позиционировать курсор в текстовое поле). Я вот думаю тоже что-нибудь поделать, закупил книжку, но там много букв. :-) Старею...
#41 by Sapiens_bru
Со скачивания андроид студии. Дальше на самом сайте гугла есть краткая инструкция по запуску среды разработки и первого приложения. Много и интересно на русском дает на английском есть хороший объем видеокурсов на сайте , но там совсем для новичков в программировании. Нет, не было такой цели. Вообще пользователю 1С и не нужно позиционировать курсор, достаточно в подключении оборудования указать, что сканер клавиатурный.
Тэги: Мобильный мир
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С