onvif

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 18, 2023 License: MIT Imports: 0 Imported by: 0

README

Go OnVif Client

CircleCI CodeQL

Simple management IP-devices cameras that honor the ONVIF Protocol protocol.

The present repository is a fork of goonvif that quickly evolved. Because of the need for quickly merged changes, the link to the upstream has been cut.

CLI tools

For the convenience and testing purposes, a CLI tool ships with the repository to help discovering and fetching information from devices.

onvif-cli COMMAND [SUBCOMAND] [ARGUMENTS...]
COMMAND:
  discover                 perform a web-service discovery on the local networks and
                           reports one line (IP:PORT CRLF) per device that responded
  dump SUBCOMMAND IP:PORT  Prints a single JSON object with a configuration dump
                           for the given camera
  SUBCOMMAND: 
    all         Prints the full configuration dump, all sections included
    media       Prints only the media section
    event       ...
    ptz         ...
    device      ...

SDK

A High Level go package aims at fetching information from the devices:

Low-Level go packages implement the OnVIF unitary SOAP calls. For each call :

Helpers:

Beginner's Guide
params := networking.ClientParams{
    Xaddr:      "",
    Username:   os.Getenv("ONVIF_USERNAME"),
    Password:   os.Getenv("ONVIF_PASSWORD"),
    HttpClient: nil,
}
sdkDev, err := sdk.NewDevice(params)
if err != nil { /* Not a reachable OnVif device */ }
Auto-generated code instead of generics

The low level packages provide one function per OnVIF SOAP method. Their purpose is to ease the persing and unpacking of the replies. The problem was the requirement to name the reply field as the reply expected reply type. But Golang's generics do not provide any sophisticated way to generate the name of a type instead of a type, as the # modifier does with cpp. That's why they have all been generated instead of replying on templated functions.

References

Clients SDK

References

Go

Python

C

Rust

Swift

Javascript

PHP

Client Apps_

Documentation

Overview

Package onvif is developed to provide an ONVIF client implementation on Go programming language

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL