В последние годы очень остро встал вопрос фотографирования, даже cкорее фотофиксации (Фотофиксация - это фотографирование в невысоком качестве исключительно с техническими целями)
Наличие фотографий позволяет "отбиться" от большинства претензий и показать заказчикам культуру работы.
Потому в холдинге очень остро встал вопрос о системе для массового фотографирования и дальнейшей привязки фотографий в базы.
Первоначально мы использовали ручное фотографирование и ручную же сортировку, но разбор нескольких тысяч фотографий в день оказался крайне тяжел.
Потом мы перешли к "серийному" фотографированию фотоаппаратами (fuji XP80). Фотографировался QR код, и далее - необходимые объекты. Далее эти папки скидывали программе, где шло распознавание и выстраивание фотографий по кодам, с последующей загрузкой в базу. У хороших сотрудников 95% фотографий привязывалось верно.
Но все равно - работа по разбору огромных фотоархивов занимала у операторов все больше и больше времени.
Также многие линейные сотрудники не отличаются аккуратностью и у них процент распознавания был существенно меньше.
Было решено использовать Андроид устройства (водозащищенный самсунг можно купить немногим дороже 10 тыс. )
Фото с телефонов вполне удовлетворяли по качеству.
В итоге была разработана система для потоковой фотофиксации, также она применима и для второстепенных целей. (Фото сотрудников, номенклатуры, паспортов)
Логика работы пользователя с ПО
- Запустил, ввел код (или сосканировал ШК) , запустил фотографирование и делаешь ряд снимков.
Снимки идут в папку, названную по коду.
Снимки сами синхронизируются через сеть.
Цель программы - это фотографирование серий фотографий с последующей их передачей для обработки.
"Классическое" применение - массовое фотографирование изделий и привязка фотографий к штрих коду.
В нашем случае это используется для фиксации состояния изделия в процессе его передачи по разным участкам.
В нынешний цифровой век нет ничего дешевле цифрового снимка.
Наличие его, с привязкой к событию и поиске в базе, позволит взглянуть на многие процессы совершенно по-новому.
Помимо этого, данная система легко используется для фотографирования людей (с привязкой к коду), имущества, товаров.
Цель публикации - не столько предоставить готовое решение, сколько дать людям возможность сделать подобную систему для собственных производственных проектов. Именно поэтому в состав включен исходный код данного проекта для смартфона (Андрод, Эклипс).
При фотографировании в названии файла запоминается код и дополнительная информация. Фотографии складываются в папки, названные по названию "номера".
Номер можно прочитать через сканер штрихкодов или внести руками.
Фотографии в асинхронном режим закачиваются на FTP/Яндекс диск .
Также в работе активно используем SOAP (веб сервис) и HTTP POST, но данный код вырезан, так как требует серверной части.
Есть режим без закачки - тогда фотографии просто остаются на карте.
Цель асинхронности - это дать возможность работать эффективно в условиях неполного кусочного покрытия территории разными сетями (wi fi + 3G) .
В настойках предусмотрен выбор качества (размера) изображения.
В большинстве случаев для фиксации используем минимальное качество, при том с максимальным количеством фото.
При фотографирование предусмотрена возможность вкл/выкл вспышки, а также подсветки ее в режиме фонаря. Последний режим удобен при съемках в замкнутых просранствах (фуры, контейнера, вагоны)
При запуске программы отобразится главное окно.
1 - Индикатор закачки данных на сервер. Показывает сколько еще фотографий не передано на сервер.
2 - Кнопка сканирования штрихкода.
ПО кнопке вызывается связанная программа Barcode Scanner ZXing Team (При отсутствии ее предложат скачать).
Далее, после распознавания штрихкода, он будет проставлен в программе для фотографирования.
Такое решение выбрано, как оптимальное (Использование Intent внешнего приложения, специально заточенного под сканирование шк).
3 Кнопка очистки набранного поля
4 Кнопка начала фотографирования - при ее нажатию вы перейдете в режим камеры.
5 Поле с выбранным или набранным кодом
6 Выбор "режима". У нас это используется, чтобы связать код с происходящим событием (Например, указать участок, где фотографируется изделие)
Номер режима передается в названии файла на сервер и может использоваться там.
При отсутствии необходимости можно не использовать.
7 Меню вызова настроек
Начало работы
1 Вводим код, к которому будем привязывать серию фотографий
1.1 Либо запускаем сканер штрихкодов (нажимаем на кнопку)
Далее в нем указываем ШК. программа сама распознает его и вернет данные в систему фотографирования.
Разницы между ШК из распознавателя Barcode Scanner и вручную вбитым кодом нет
2 После указания кода запускаем режим фотографирования
на экране фотографирования есть 2 кнопки.
Кнопка управления режимом вспышки и собственно кнопка "спуска", фотографирования.
Также система показывает пользователю, на какой именно код будет навешена серия снимков.
Повторюсь, программа адаптирована для работе по схеме "отсканировал код - сделал 10 снимков - отсканировал код....".
В настоящий момент в программе нет управления зумом. Технически сделать его несложно, но в нашем случае образовательный уровень лиц, которым выдается подобный телефон оказался плохо совместим с зумом.
При фотографировании экран немного замирает - идет автофокусировка.
При удачной фокусировке качество фотографий более чем достаточное.
Единственная область, где смартфон проигрывает классическим фотоаппаратам - это съемки на открытой улице ночью, в условиях встречного освещения.
Тут ему банально не хватает светосилы.
3 Отснятые фотографии асинхронно, не мешая работе пользователя передаются на сервер.
Это может быть FTP (на мой взгляд оптимально по соотношению простота/надежность), ЯндексДиск ( простейший способ для маленьких).
В нашем основном проекте мы в итоге остановились на собственном веб-сервисе.
Плюс веб-сервиса - синхронность, то есть данные попадают в систему управления мгновенно.
Минус - нужно писать серверную часть. У нас это - небольшой проект на ASP.NET.
В исходники ветка с SOAP (использует kSOAP) не включена именно по причине неработоспособности ее без сервера.
Пользователь, смотря на надпись Ост видит количество файлов, которые не успели синзронизироваться.
4 Фотографии храняться в файловой системе смартфона до момента передачи на сервер.
После этого они удаляются с телефона.
В настойках есть режим (сейчас он поставлен по умолчанию), при котором программа не отправляет сделанные фотографии, а просто оставляет их на карте.
Важно : при изменении режима программа обработает и отправит все файлы фото на карте, расположенных в папке ПО
Фотографии хранятся следующим образом. Имя папки и окончание имени фотографии - это введенный код.
Средняя часть F1-F4 это указание на режим съемки.
Первая часть это время съемки (мес/день/время с секундами)
5 Настройки.
В программе реализовано сохранение настроек.
В целом вопрос необходимости настроек именно в рабочей версии спорный.
( В рабочей версии у нас используется контроль сохранения настроек через код.
Ибо - сотрудник может по ошибке сделать систему нерабочей. При работе 24/7 Главное, о чем надо думать - это стабильность)
Общее окно настроек - содержит в себе название четырех "режимов", режим записи и учетные данные.
Также внизу располагается выбор качества фотографирования.
Для 90% работы нам нравятся фото по 50-100 килобайт. Но система дает вохможность делать и средние и полные по качеству фото.
Важно
Для режима ЯндексДиск пишем
URL = webdav.yandex.ru (режим может работать и с другими вебдав серверами)
Логин и пароль - логин и пароль яндеса
После изменения типа закачки необходимо перезапустить ПО ( с убиением оного)
для ftp запись URL = Адрес ftp , например ftp23.xxxxx.ru
Логин и пароль - данные для доступа на этот ftp
префиксы ftp: и https: не нужны!
1C часть.
Написан и используется (для второстепенного направоения) простой код по закачке фотографий номеклатуры.
Работает с УТ 11.
Может работать с c ftp напрямую, либо с диском. (Установленный клиент ЯндексДиска прекрасно синхронизирует его с локальной папкой)
Код также может использоваться, как один из многих примеров закачки картинок и работы с сетью и файлами.
Идея выставить веб сервис 1С "наружу" повергла СБ в полный шок, потому даже не рассматривалась.
У некоторых людей вместо "чужого" Яндекс Диска используется "свой " ownCloud . Отличий в работе нет.