Вход | Регистрация


Информационные технологии ::

Метки: 

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

Я
   Sapiens_bru
 
30.10.17 - 19:04
Уже второй месяц приобщаюсь к программированию не только под 1С, начал с андроида. Прошу посмотреть, пользоваться если нужно и прокомментировать результаты.

https://yadi.sk/d/Sw_pHf8i3PEdXj
По ссылке архив. В нём 2 файла.
Barcode_server.exe запускаем на компе, он выводит список IP адресов компа. Нужный запоминаем
(Необязательно) В любом браузере проверяем http://ХХХ.ХХХ.ХХХ.ХХХ:4242 , где ХХХ.ХХХ.ХХХ.ХХХ - адрес компа на котором запущено ПО-сервер. Если не видим ответа "Barcode server ready", даем доступ к порту 4242 в брэндмауре.
Barcode_scanner.app запускаем на смартфоне. Вводим IP компа на котором запущен сервер. Жмем скан. Сканим

Результаты сканирования будут передаваться на комп в виде событий клавиатуры, аналогично работе беспроводного клавиатурного сканера. Понимает только цифры!
Можно подключать к типовым 1С с помощью типового обработчика Сканер 1С(Native-Api) и к любым программам поддерживающим работу с клавиатурными сканерами, а так же сканить в блокнот, ворд или куда угодно.

Оба приложения бесплатны и открыты, написаны с использованием открытых компонент. Можно брать себе, переписывать, продавать итд.
Ссылки на исходный код:
https://github.com/Sapiens-bru/WifiBarcodeScanner
https://github.com/Sapiens-bru/WifiBarcodeServer

Кто пожелает протестировать апп, пишите свои комментарии сюда или на почту Sapiens-bru@yandex.ru .
Если вам в работе нужно приложение подобного типа, также пишите. Попытаюсь реализовать пожелания в порядке самообучения.
 
 
   Woldemar177
 
1 - 30.10.17 - 19:14
(0) а можно сделать чтоб сканировало 2д из медицинских полисов?
   Sapiens_bru
 
2 - 30.10.17 - 19:18
(1)Можно. Нужно знать таблицу всех возможных символов в этом коде, или их Alt-Num варианты.
Например если зажать Alt и на нумпаде набрать 155 - получится буква "Ы"
   Woldemar177
 
3 - 30.10.17 - 19:23
Делай. Это реальная победа. Сотни программистов из медицины тебе будут благодарны. Я бы даже денег заплатил.
   Злопчинский
 
4 - 30.10.17 - 19:27
А аналогичное приложение от Serginio смотрел? Лежит на ИС
   Sapiens_bru
 
5 - 30.10.17 - 19:28
(3)Денег не надо.
Скинь на почту Sapiens-bru@yandex.ru несколько кодов из полисов. Можно сфотографировать на телефон. И результат их расшифровки. Добавлю этот функционал серверу.
Простые EAN 13 коды найти не проблема, а что за медицинские я понятия не имею.
   Sapiens_bru
 
6 - 30.10.17 - 19:34
(4) Нашел их с десяток разной степени крутости. Все безусловно рабочие и все лучше моего. Но все просили денег так или иначе, или рекламу показывали. Опенсорса не нашел в принципе, только буржуйский пример на C#.
На Инфостарте у Serginio не вижу подобного.
В любом случае я потратил с пользой 3 вечера. Может кому поможет сэкономить эти три вечера на разработке чего-то коммерчески применимого
   Cyberhawk
 
7 - 30.10.17 - 19:58
Без видео с демонстрацией лениво читать
   Злопчинский
 
8 - 30.10.17 - 20:03
(0) что будет если связь отвалилась? Будут ли буферизироваться  насканированные коды и будут ли сливаться на сервер при восстановлении связи?
   Злопчинский
 
9 - 30.10.17 - 20:04
(0) обратная связь от сервера на клиента есть? Что позволяет делать?
   Sapiens_bru
 
10 - 30.10.17 - 20:30
(0) буфера нет. Сама идея сканера штрихкодов не подразумевает буфер. Реализовать несложно, но как должно реагировать клиентское приложение на внезапно свалившиеся из буфера данные?
 
 Рекламное место пустует
   Sapiens_bru
 
11 - 30.10.17 - 20:33
(9) Обратная связь возможна, но конкретно в этом аппе ее нет. Вставлю обратную связь в виде ответа "штрихкод принят" в следующем обновлении.
Вообще можно сделать например апп-прайсчекер или апп-тсд. Их тоже немало написано.
   Злопчинский
 
12 - 30.10.17 - 22:13
(10) как реагировать - это вы уж разбирайтесь, обеспечьте чтобы реакция на свалившиеся из буфера данные была эквивалентна реакции последовательных данных обычной работы
   Злопчинский
 
13 - 30.10.17 - 22:17
(11) если приложение работает только при наличии постоянного канала связи - зачем это морочить отдельной прокладкоц вместо организации при постояннои канале связи прямого рдп в базу с использованием простенькой лёгкой родной формы для приемки и обработки штрих-кода? И при этом вдобавок ещё и обратную реакцию обеспечить с любой логикой?
   Sapiens_bru
 
14 - 31.10.17 - 02:05
(12)Вас куда-то не туда несёт
Возьмём простой пример:
Магазин одежды продает при помощи розницы 2.2 базовой мне кнопки. СканерШК, не сработал потому что перегружался роутер. Продавец нашла товар по артикулу и продала мне. Открывает второй чек и в это время прилетает штрихкод носок. Бред же.
СканШК это не письмо электронной почты. Не пришел сразу - не должен вообще прийти.
   Sapiens_bru
 
15 - 31.10.17 - 02:06
(14) Чертов т9.
   Sapiens_bru
 
16 - 31.10.17 - 02:11
(13) Чтобы обеспечить обратную связь нужно знать в какую базу идёт скан. 99.99% программ не дают сканеруШК обратной связи. Какую обратную связь должен дать Блокнот в который я сканирую ШК?
   Sapiens_bru
 
17 - 31.10.17 - 02:16
Ещё раз. Этот набор программ эмулирует поведение Сканера штрихкодов. Не ТСД, не прайсчекера, не РМК. А простого сканера. Как например honeywell 1202g и ему подобных.
   Злопчинский
 
18 - 31.10.17 - 10:26
(14) по крайней мере в таком случае приложение на дивайсе должно сигнализировать юзверю большие алярмы цветом и звуком что сканирование не прошло по каналу связи.
А то стоит сборщик, штук 40 товара отжмакал и тут оказывается что в самом начале канал связи отвалился
   Злопчинский
 
19 - 31.10.17 - 10:27
(16) ну так и напиши тогда что прога предназначена для сбора штрих-кодов и ничего более
   Злопчинский
 
20 - 31.10.17 - 10:28
(17) ага, это простой эмулятор сканирования штрих-кода...
   Sapiens_bru
 
21 - 31.10.17 - 10:44
(14) Об этом я написал в (11). Сегодня сделаю. Спасибо за наводку.
(16)(17) Об этом написано в (0)
   Tatitutu
 
22 - 31.10.17 - 10:45
(0) Barcode_server.exe запустил
выдал только одни IP адрес без указания портов
и этот "адрес" занят Апачем
что делать ?
   Tatitutu
 
23 - 31.10.17 - 10:46
(0) идея нравится - прикручу к MAGAZKA
готов к поддержке и тестам
   Tatitutu
 
24 - 31.10.17 - 10:55
в apk на первом окне
где вводишь IP - нужно добавить какую то проверку
подключился ты ли нет (непонятно)
и сообщение добавь чтобы WI-FI нужно включить

сканирование Штрихкода немного подвисает ("окошко" прилипает к штрихкоду)
тоже выводи сообщением (надпись - штрихкод 1234567890123 считан, передан или ошибка чтения)
   Tatitutu
 
25 - 31.10.17 - 10:56
+(24) Иконку приложению добавь в ПЕРВУЮ ОЧЕРЕДЬ - чтобы кравиво было и над названием подумай

WiFi Barcode
Scanner

а не

WiFiBarcodeSc
anner
   Sapiens_bru
 
26 - 31.10.17 - 11:13
(22) Апачем занят порт 80 или 443(если с ssl), б_сервер занимает 4242. Графические интерфейсы на яве я еще не умею. Научусь какому-нить свингу, сделаю приличное приложение на сервер. Чтобы порт выбирался, доступ от брендмауэра запрашивался, чтобы в трей сворачивался итд. Чтобы сетап был с выбором ставить как службу или как приложение. Мой опыт работы на яве меньше недели. позавчера узнал что такое jar :)
(24) ок, сегодня сделаю
(25) ок, сегодня сделаю
   Sapiens_bru
 
27 - 31.10.17 - 11:15
(24) Штрихкод "прилипает" из-за фриза камеры. Камеру подмораживаю специально, иначе она успевает штрихкод раз 10 за секунду считать, передавая его многократно. Подумаю как можно это ограничить без фриза
   Philix
 
28 - 31.10.17 - 11:24
(27) У Metrologic-ов в давности была следующая логика: блокировалась передача одинаковых ШК в интервале (если память не изменяет - примерно 1 сек). А разные ШК мы для тестов на лист распечатывали и сканировали за секунду штук 5-7.
Т.е. сканер помнит последний считанный ШК и не отдает его слишком часто.
   Sapiens_bru
 
29 - 31.10.17 - 11:32
(28)Отличная идея. Заодно научусь работать с часами в адроиде.
   Sapiens_bru
 
30 - 31.10.17 - 20:03
(0) https://yadi.sk/d/SW3MO0u_3PH3q8
* Переименовал приложение красиво
* Добавил иконку приложению, изменил иконку сервера
* Добавил кнопку проверки связи в приложение
* Изменил таймаут ожидания ответа от сервера с стандартных 10 секунд на 2
* Добавил стандартный звук сканирования (пик) при успешной передаче на сервер, звук ошибки (пиу-пиу-пиу) при неудачной передаче.
* Теперь один и тот же штрихкод можно сканировать не чаще чем раз в секунду, камера не фризится после скана
   ejikbeznojek
 
31 - 31.10.17 - 23:44
А у меня ни 1 шк не считался. мб камера слишком плохая завтра на работе стрельну к кого-нибудь нормальный телефон
   etc
 
32 - 01.11.17 - 00:09
Напомнило DataWedge для моторолловских ТСД с плагином IPWedge. Тот же принцип.
   Злопчинский
 
33 - 01.11.17 - 00:21
(31) угу, и обязательно расскажи как получится 2-3 скана штрихкодов в секунду сделать
 
 
   Sapiens_bru
 
34 - 01.11.17 - 04:09
(33) Подключал штук 50 разных сканеров шк , камера самого навороченного смартфона рядом не лежала с самым хреновым сканером. Но иногда бывает что сканера нет, а смартфон есть. Бывает, что штрихкод на экране, а image сканера нет. Бывает что штрихкод на большой коробке и в длину сантиметров 20, а глубина сканирования имеющегося сканера не позволяет видеть шк с расстояния в полметра. При всем при этом штрихкод не дублирован цифрами оказался. Вот тут бы и пригодился апп эмулирующий работу сканера шк, пускай не 2-3 в секунду а один в 5 секунд
   YuryVG
 
35 - 07.11.17 - 17:18
А попробовать внешний сканер смартфону подключить нет желания? Как в этом решении http://interestingsolutions.ru/BarCodeHarvester.aspx .
   Sapiens_bru
 
36 - 07.11.17 - 17:48
(35)Не увидел в том решении работы с внешним сканером ШК. Реализовать подобную работу можно элементарно, внешние BlueTooth сканеры андроидом опознаются как клавиатура. Поймать событие клавиатуры и передать его серверу даже проще чем поймать событие камеры.
В приведенном примере коммерческая разработка, автор которой потратил десятки, возможно сотни часов на каждую из 2х компонент.
Моя разработка не коммерческая, сделана в сумме часов за 20 абсолютным новичком в этой области. Весь код выложен в общий доступ. Может быть склонирован подходящей IDE и доработан, либо использован как пример для изучения. При этом приложение работает так как заявлено.

ЗЫ. Если Вы хотите использовать внешние сканеры для подобной задачи (например приложение на планшете ходящее по HTTP в вашу базу 1С за новостями о товаре и сразу к товару что-то дописывающее) пишите в почту, расскажу(бесплатно) как я бы это сделал, либо сделаю(в обмен на планшет и сканер... тестить то надо на чем-то)
   spydex
 
37 - 24.11.17 - 14:50
(36)  Харвестер прекрасно работает с внешним сканером, на сайте указано что с ним будет максимально быстро работать. Там даже срабатывает авто блокировка экрана, как когда телефон при разговоре к уху подносишь. Кстати, очень даже удобная программка.
   Адинэснег
 
38 - 24.11.17 - 15:20
https://its.1c.ru/db/v8311doc#bookmark:dev:TI000001452
// Обработчик команды формы ОткрытьИнтерфейсСканирования
&НаКлиенте
Процедура ОткрытьИнтерфейсСканирования(Команда)
    ОбработчикСканирования = Новый ОписаниеОповещения("ОбработкаСканирования", ЭтотОбъект);
    ОбработчикЗакрытия = Новый ОписаниеОповещения("ОбработкаЗакрытияИнтерфейса", ЭтотОбъект);
    СредстваМультимедиа.ПоказатьСканированиеШтрихКодов("Наведите камеру на штрихкод", ОбработчикСканирования, ОбработчикЗакрытия);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаСканирования(Штрихкод, Результат, Сообщение, ДополнительныеПараметры) Экспорт
    Если Результат Тогда
        Текст = "" + Штрихкод;
    Иначе
        Текст = "Ошибка: " + Сообщение;
    КонецЕсли;
    Если ЗакрытьИнтерфейс Тогда
        СредстваМультимедиа.ЗакрытьСканированиеШтрихКодов();
    КонецЕсли;
    Сообщить(Текст);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаЗакрытияИнтерфейса(ДополнительныеПараметры) Экспорт
    Сообщить("Закрывается интерфейс сканирования");
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    Если НЕ СредстваМультимедиа.ПоддерживаетсяСканированиеШтрихКодов() Тогда
        ВызватьИсключение "Сканирование штрихкодов не поддерживается";
    КонецЕсли;
    ЗакрытьИнтерфейс = Ложь;
КонецПроцедуры
   Kuzmich123
 
39 - 24.11.17 - 17:01
(0) Подскажи, с чего начинал изучать программирование под андройд. Какие книги, ресурсы?
   romix
 
40 - 24.11.17 - 18:28
(0) Здорово, спасибо - а RS-232 порт эмулировать тоже умеет? Я не уверен, но вроде бы с ним пользователю интерфейсно лучше (не надо позиционировать курсор в текстовое поле).

(39) Я вот думаю тоже что-нибудь поделать, закупил книжку, но там много букв. :-) Старею...
   Sapiens_bru
 
41 - 26.11.17 - 16:21
(39) Со скачивания андроид студии. Дальше на самом сайте гугла есть краткая инструкция по запуску среды разработки и первого приложения. Много и интересно на русском дает http://developer.alexanderklimov.ru/android/
на английском есть хороший объем видеокурсов на сайте https://www.udacity.com , но там совсем для новичков в программировании.
(40) Нет, не было такой цели. Вообще пользователю 1С и не нужно позиционировать курсор, достаточно в подключении оборудования указать, что сканер клавиатурный.



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует