Найти в Дзене
EdgeBrowser в Delphi, и чем он может быть полезен.
Собственно, что такое EdgeBrowser так или иначе знают все. Логично, что и Delphi содержит необходимый визуальный компонент, для работы с ним (пусть и с некоторыми нюансами, в отличие от привычного "старичкам" TWebBrowser), но... Итак, предыстория. Возникла у компании необходимость проверки оборудования, а именно IP-камер, на предмет соответствия их характеристик и возможностей. Получается, что надо взять выборку из партии, дать обученным людям и пусть проверяют. Так? Ну в малых масштабах так и делается...
2 месяца назад
И вновь тема Speech API и Delphi 12.1... Асинхронный вывод.
Собственно, речь пойдет о том, как добиться того, чтобы наше приложение не "подвисало" в процессе воспроизведения речевым синтезатором фразы. На самом деле раньше (когда мы использовали импорт библиотеки типов) все было просто и понятно. Импортируемая функция имела флаги, на все случаи жизни... Поэтому мы легко и непринужденно ставили SVSFlagsAsync и радовались жизни... Но когда мы работаем с чистым OLE, нас такой возможности нет...
10 месяцев назад
Всемогущий CMD.EXE и использование консольных комманд Windows в Delphi 12.1
Сказать по правде, в планах было написание статьи совсем на другую тему, а именно анонс обновления софта для 5D/7D/VR, но занимаясь этим самым обновлением обнаружил интересный момент в работе с командами консоли, с которым прежде не сталкивался... Кто-то может сказать, мол, ну а что ж тут сложного? Юзай winexec и будет тебе счастье! Да, но это годится только для простых задач, когда надо выполнить действие, не контролируя его исполнение и без намерений получить какой-либо результат... И тут уж нам никак не обойтись без нашего любимого CreateProcess и WaitForSingleObject...
11 месяцев назад
"Умная швабра" или контроль инструмента... Пару лет назад один немаленький клининговый холдинг обратился к нам с просьбой решить каким либо образом вопрос с контролем исполнения работ младшим персоналом (уборщиками, уборщицами и т.п.). Казалось бы, что сложного? Установили видеонаблюдение и пусть куратор мониторит.... Но! Помещения, где работает персонал, чаще всего "чужие" и потому ни установить свое наблюдение, ни установить какие-либо датчики или метки, да даже приклеить наклейку с QR-кодом и то НЕЛЬЗЯ! А контролировать надо... Скачала мы думали, что бы такого повесить на самого сотрудника... Но, если раскинуть мозгами, то активность сотрудников не всегда рабочая! Потому было принято решение контролировать рабочий инструмент! Без которого, хоть убейся, работу не сделать... С колесной техникой (полотеры, пылесосы и др.) все решилось просто. Их оснастили одометрическими датчиками и получили не только контроль активности, но и одометрическую навигацию. Т.д. куратор видел в реальном времени не только факт работы, например, полотера, но и его местоположение на объекте и траекторию движения. Довольно простая задача и, по своему, скучная. Может быть расскажу как-нибудь позже... А вот с мелким ручным инструментом получилось гораздо интереснее... Во-первых, устройство должно быть автономным, т.д. питаться от какого-то аккумулятора. Во-вторых, оно должно иметь свое средство связи с выходом в Интернет для передачи информации. В третьих, устройство должно было быть минимальным по размеру. В четвертых, крепиться к инструменту. В пятых, быть легко обслуживаемым. Ну и, уже позже, появилось еще одно требование - локальное сохранение данных на карте памяти и уже потом с синхронизация с сервером. Собственно, такое устройство мы и разработали: гироскоп-акселерометр в качестве датчика движений, связь через GSM-модем, Arduino в качестве микроконтроллера. Для реализации последнего требования пришлось еще и модуль времени и слот для карты памяти добавить. Не с первого, не со второго, а только с третьего раза получился рабочий прототип. Online устройство отправляло данные на сервер по REST протоколу, лог выгружало по FTP. Имело самодиагностику со светодиодной индикацией. Аккумуляторы использовали 18650 в отдельном неопломбированном отсеке, чтобы легко менялись, т.к. по задумке ответственный человек должен выдать инструмент исполнителю с заранее заряженным аккумулятором. Для сбора информации и показа результатов заказчику сделали портал, примитивный, но функциональный. Собственно фото и видео по теме, как всегда прикреплю к посту. Напомню, что сначала нас интересовал только online-режим. Однако, заказчика не устроили цифры, которые показала опытная эксплуатация. Получилось, что конкретно шваброй работают от 40 минут, до полутора часов за смену. "Это неправильно!" - сказал заказчик, - "Ищите, где ваши алгоритмы дают сбой!" Как ни искали, единственным здравой причиной, которую мы смогли для себя определить, это то, что не на всех точках объекта есть доступ к сети. Потому и пришлось добавлять модуль времени и слот для карты памяти. Хочу отметить, что основной сложностью оказалось как раз контроль аккумуляторов. Ни менять, ни заряжать их никто не хотел. А на индикаторы никто не обращал внимания. Еще тогда мне в голову пришла мысль: а не может ли быть такого, что весь тестовый объект в коврах или ковролине, а моют они только туалеты! Так же хочу отметить, что путем неимоверных усилий по оптимизации расхода энергии, удалось добиться работы устройства более 12 часов. Каков итог, спросите Вы? Оказалось, что действительно весь объект закатан в ковролин, а моют они только туалеты. Т.к. локальные записи на карте памяти полностью совпали с полученными онлайн. К этому времени "инвестор утратил интерес к проекту" и наработки легли на полку с надеждой, что когда-нибудь разработка окажется примененной, пусть даже и в другой сфере, ну или полученный опыт найдет применение в другом проекте.
1 год назад
5D+VR. Важное обновление для TrackPlayer'а!!! Практика показала, что часто при открытии новой точки с развлекательным оборудование случаются, скажем так, нюансы... Оборудование завезено, установлено, настроено и обкатано. Но контент еще находится на стадии доработки. И вот, в час Х нужно установить контент, а с доступом в интернет вопрос не решен вовсе или решен не до конца. Ну как-то не придали этому значения. Рядом с оборудованием только студенты-операторы. Технический персонал хорошо если в этом же городе где-то... Но чаще... В общем, после очередной такой ситуации и многочасовых консультаций по whatsApp с поисками решения, в голову мне пришла мысль автоматизировать процесс установки контента таким же образом, что и установку обновлений - через USB-накопитель. К тому же, исключается вероятность невнимательного копирования "не тех файлов" в "не те папки". Думаю, что для художников или менеджеров, как людей "в теме", не составит труда сделать папочку UpdateContent и вложить туда папки треками, саундтреков и т.п. Ну и маленькое видео для пояснения и демонстрации.
1 год назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала