1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/EdgexFoundry-device-camera-go

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
Readme.md

Услуга сервиса камеры

Статус сборки Объем тестирования Отчет Go Report Card GitHub Latest Dev Tag) GitHub Latest Stable Tag) GitHub License GitHub go.mod Go version GitHub Pull Requests GitHub Contributors GitHub Committers GitHub Commit Activity

Архивирован

Этот сервис устарел с августа 2022 года с выпуском Kamakura и теперь архивирован.

Обратите внимание, что этот сервис больше не будет обновляться или поддерживаться. Созданы две новые службы устройств для удовлетворения потребностей в камерах:- ONVIF Камера DS

Пожалуйста, обновитесь до одной из этих служб устройств в зависимости от ваших потребностей.

О проекте

Сервис устройства EdgeX Camera Device Service разработан для управления/коммуникации с камерами, соответствующими стандарту ONVIF, доступными по протоколу HTTP в развертывании EdgeX.

Тестированные устройства

Следующие устройства были протестированы в среде разработки с EdgeX. Только те камеры, которые поддерживают метод "onvif_snapshot" и соответствуют стандарту ONVIF, полностью соответствуют сервису устройства EdgeX Camera:

  • Wisenet XND-6080RV
  • Bosch NBN-832V-IP
  • Hikvision DS-2CD2342WD-I
  • SV3C Wireless WiFi Security Camera

Следующие камеры не соответствуют требованиям:

  • TP-Link Tapo C110

Упаковка

Этот компонент упакован в виде образа Docker и snap.

Для Docker обратитесь к файлу Dockerfile и скриптам Docker Compose Builder.

Для snap обратитесь к каталогу snap.

Зависимости

Этот сервис устройства разработан с использованием библиотеки onvif4go. Она предоставляет удобный для разработчиков клиент ONVIF для использования с камерами, соответствующими стандарту ONVIF.

Инструкции по сборке

  1. Клонируйте репозиторий device-camera-go с помощью следующей команды:

     git clone https://github.com/edgexfoundry/device-camera-go.git
  2. Соберите образ Docker с помощью следующей команды: docker build . -t device-camera-go

  3. В качестве альтернативы сервис устройства можно запустить нативно с помощью make build и скрипта ./run.sh.

По умолчанию конфигурационные и профильные файлы, используемые сервисом, доступны в папке 'cmd/res'. В частности, файл конфигурации cmd/res/configuration.toml должен быть изменен для отражения правильного профиля устройства и IP-адреса камеры. Файл cmd/res/configuration-drive.toml в той же директории должен быть обновлен с учетом учетных данных доступа к камере.

Примечания

Параметры для команд PUT

Команды PUT EdgeX (на момент написания) принимают один параметр. Для команд, таких как "создание пользователя" или "установка времени устройства", это является проблемой. Чтобы обойти это ограничение, сервис устройства ожидает, что параметры для нескольких команд PUT будут представлены в виде одной строкового значения, содержащего строково-экранированный JSON. Примеры:

{"OnvifDateTime": 
    "{
        \"Hour\":21,
        \"Minute\":35,
        \"Second\":6,
        \"Year\":2019,
        \"Month\":10,
        \"Day\":4
    }"
}
{"OnvifUser":
    "{
        \"Username\":\"newadmin2\", 
        \"Password\":\"newadmin234\", 
        \"UserLevel\":\"Operator\"
    }"
}

Удаление устройства из EdgeX

Во время тестирования или развертывания вы можете получить устройства в системе EdgeX, которые хотите удалить. Поскольку этот сервис устройств может запускать слушатели для своих устройств, это становится более актуальным.Чтобы удалить устройства из EdgeX:

  1. Выполните запрос к службе метаданных EdgeX core для получения имен всех устройств.

     GET http://edgex-core-metadata:59881/api/v2/device/all
  2. Выполните запрос к службе метаданных EdgeX core для удаления устройства по его ID.

     DELETE http://edgex-core-metadata:59881/api/v2/device/name/{{device_name_here}}

Это удалит устройство из EdgeX и, если оно не останется в списке устройств внутри файла конфигурации configuration.toml этого сервиса устройств, предотвратит попытки этого сервиса устройств инициализировать устройство при запуске.

Пример использования

Существует множество способов взаимодействия с этим сервисом устройств. Этот пример показывает, как отправлять снимок из вашей камеры на регулярной основе, используя автоматические события EdgeX device service.

  1. Для этого примера мы будем запускать его в контейнере Docker, поэтому измените предопределенные устройства, найденные здесь, чтобы добавить ваш IP-камеру. Обратите внимание, что по меньшей мере вы должны заполнить значение Address правильным IP-адресом для вашего устройства. ```

    Предопределенные устройства камеры

    [[DeviceList]]

    Уникальное имя устройства

    Name = "CasualWatcher001"

    Использование стандартного профиля ONVIF камеры

    Profile = "camera"

    Человеко-дружественное описание

    Description = "Камера на восточной стене, смотрящая на погрузочную площадку." [DeviceList.Protocols] [DeviceList.Protocols.HTTP] Address = "10.22.34.144"

    Отправка CBOR-кодированного изображения из этой камеры как события EdgeX каждые 30 секунд

    [[DeviceList.AutoEvents]] Interval = "30s" OnChange = false SourceName = "OnvifSnapshot"

    
    

    make docker

  2. Сгенерируйте файл compose с добавлением device-camera, запустив следующие команды:

    git clone https://github.com/edgexfoundry/edgex-compose.git
    git checkout <release-branch> # Например, hanoi
    cd compose-builder/
    make gen no-secty ds-camera
  3. Запустите сервис с помощью docker-compose up device-camera. Вы должны увидеть информационные записи журнала CBOR-событий, которые будут отправлены через cq 30 секунд, и каждые 30 секунд после этого.

    device-camera     | level=INFO msg="Device Service device-camera-go exists"
    device-camera     | level=INFO msg="*Service Start() called, name=device-camera-go, version=1.0.0"
    device-camera     | level=INFO msg="Listening on port: 59985"
    device-camera     | level=INFO msg="Service started in: 65.358268ms"
    device-camera     | level=INFO Content-Type=application/cbor correlation-id=a452e6b5-75b0-46c5-8558-a1c07269bf42 msg="SendEvent: Pushed event to core data"
    device-camera     | level=INFO Content-Type=application/cbor correlation-id=45e53484-6a7e-41e6-9fd5-794f8a002819 msg="SendEvent: Pushed event to core data"

Интеграция в приложения

См. simple-cbor-filter, обновите ValueDescriptors в res/configuration.toml и запустите пример:

[ApplicationSettings]
ValueDescriptors = "onvif_snapshot"

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Go и 4 других языков
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/EdgexFoundry-device-camera-go.git
git@api.gitlife.ru:oschina-mirror/EdgexFoundry-device-camera-go.git
oschina-mirror
EdgexFoundry-device-camera-go
EdgexFoundry-device-camera-go
main