goxis

module
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: GPL-3.0

README

About

Goxis is a library designed to facilitate the development of ACAP (Axis Camera Application Platform) applications for AXIS cameras.

This library includes user-friendly wrappers for most APIs provided by the native SDK.

Discord

GoDocs

C-API Wrappers

Goxis organizes its functionality around several key areas of the native SDK, each encapsulated within its own package for ease of use:

GoDocs

  • axevent - Event API for managing camera events.
  • axoverlay - Overlay API, including support for Cairo, for drawing over video feeds.
  • axparameter - Parameter API for managing camera parameters.
  • axstorage - Edge Storage API for accessing and managing on-camera storage.
  • axvdo - Video Capture API for handling video streams.
  • axlarod - Larod API
  • axlicense - License Key API for managing application licenses.
  • axsyslog - Syslog for logging and diagnostics.

Additional Packages

Beyond the core API wrappers, Goxis also provides several additional packages designed to speed up the development process and enhance application capabilities:

  • acapapp - Offers a high-level abstraction for quick and efficient ACAP application development.
  • axmanifest - Aids in loading and parsing manifest files, simplifying application configuration and setup.
  • dbus - Provides helpers for interacting with the D-Bus interface, including retrieving VAPIX credentials.
  • vapix - Facilitates the use of the VAPIX API for interacting with camera functionalities.
  • glib - Includes helpers for working with GLib, such as managing the main event loop.

Prerequisites

Quickstart

go install github.com/Cacsjep/goxisbuilder@latest
goxisbuilder.exe -newapp

Examples

Located at this repo Examples

Module Installation

go get github.com/Cacsjep/goxis
Whats the purpose of goxis AcapApplication?

The AcapApplication acts as a foundational abstraction layer designed to streamline the handling of common tasks such as syslog logging, managing the GObject main loop, and the manipulation of parameters and events.

Upon instantiation, AcapApplication undertakes several crucial steps::

  • Manifest Parsing: It reads the manifest file to extract the application's name.
  • Parameter Management: Initializes an axparameter instance, enabling the application to get, set, and remove parameters efficiently.
  • Event Handling: Sets up an axevent handler to facilitate event processing.
  • GMain Loop Preparation: Configures a GMain loop complete with signal handlers, ensuring robust event management.

AcapApplication offers access to a variety of powerful functionalities, such as::

  • FrameProvider: Facilitates easy interaction with axvdo, streamlining video-related operations.
  • OverlayProvide: Facilitates easy interaction with axoverlay related operations.
  • StorageProvider: Offers straightforward access to the camera's storage, enhancing data management capabilities.
  • app.IsLicenseValid(major_version int, minor_version int): Verifies the validity of the application's license for the specified version.
  • app.Run(): Activates the GMain loop within the application, allowing for continuous operation.
  • app.GetSnapshot(video_channel int): Captures and retrieves a JPEG snapshot from a given video channel.

and more ....

Create a new goxis application

Just use goxisbuilder tool for streamlined builds.

.\goxisbuilder.exe -newapp

Useful ACAP Informations

ACAP Native SDK hardware compatibility

Last Modified: 08.03.2024

Chip Architecture
ARTPEC-6 armv7hf
ARTPEC-7 armv7hf
ARTPEC-8 aarch64
CV25 aarch64
i.MX 6SoloX armv7hf
i.MX 6ULL armv7hf
S5 aarch64
S5L aarch64
Manifest schema version mapping

Mapping table for schema, firmware and SDK version.

It’s recommended to use the latest manifest version available for the minimum firmware version targeted.

Schema Firmware SDK Description
1.0 10.7 1.0 Initial basic version
1.1 10.7 1.0 Additional fields, mainly for technical reasons
1.2 10.7 1.0 Enables uninstall functionality which is required by e.g. docker-compose-acap
1.3 10.9 1.1 Architecture will be automatically generated and added to manifest at packaging step
1.3.1 11.0 1.4 Bugfixes; Allow = in runOptions and maxLength of appName should be 26
1.4.0 11.7 1.11 Allow new characters ( ) , . ! ? & ' for vendor field
1.5.0 11.8 1.12 - Add support for reverse proxy configuration.
- Add access policy for ACAP application web content.
- Allow - character in secondary groups of linux resources.
- Allow strings in requiredMethods and conditionalMethods under dbus to end with .* to match all methods of a D-Bus interface.
1.6.0 11.9 1.13 - Add support for characters $ and \ in apiPath of the reverse proxy configuration.
- Add optional field $schema that can point out a manifest schema to use for manifest validation and auto-completion.
- Allow strings in requiredMethods and conditionalMethods under dbus to contain -.
SDK for software compatibility

Choose the appropriate SDK version based on what firmware version you want supporting your ACAP application.

SDK version Compatible with firmware version
SDK 3.0 9.70 and later
SDK 3.1 9.80 (LTS) and later
SDK 3.2 10.2 and later
SDK 3.3 10.5 and later
SDK 3.4 10.6 and later
SDK 3.5 10.9 and later
ACAP Native SDK

ACAP Release vs ACAP Native SDK Image version vs. Compatible with AXIS OS version

ACAP Release ACAP Native SDK Image version Compatible with AXIS OS version
4.0 1.0 10.7 and later until LTS
4.1 1.1 10.9 and later until LTS
4.2 1.2 10.10 and later until LTS
4.3 1.3 10.12 (LTS)
4.4 1.4 11.0 and later until LTS
4.5 1.5 11.1 and later until LTS
4.6 1.6 11.2 and later until LTS
4.7 1.7 11.3 and later until LTS
4.8 1.8 11.4 and later until LTS
4.9 1.9 11.5 and later until LTS
4.10 1.10 11.6 and later until LTS
4.11 1.11 11.7 and later until LTS
4.12 1.12 11.8 and later until LTS
4.13 1.13 11.9 and later until LTS

Directories

Path Synopsis
pkg
acapapp
Package acapapp provides a high-level abstraction for an Axis Communications Application Platform (ACAP) application.
Package acapapp provides a high-level abstraction for an Axis Communications Application Platform (ACAP) application.
axevent
Package axeventwrapper provides a Go wrapper around the axevent C library, facilitating the integration and manipulation of event systems within Axis devices.
Package axeventwrapper provides a Go wrapper around the axevent C library, facilitating the integration and manipulation of event systems within Axis devices.
axlarod
Package axlarod provides a Go wrapper for interacting with the Larod API, facilitating the management and execution of deep learning models on Axis devices.
Package axlarod provides a Go wrapper for interacting with the Larod API, facilitating the management and execution of deep learning models on Axis devices.
axlicense
Package axlicense provides a Go wrapper around the Axis License Key library, facilitating license verification and management for ACAP applications.
Package axlicense provides a Go wrapper around the Axis License Key library, facilitating license verification and management for ACAP applications.
axmanifest
Package axmanifest provides a Go implementation of the Application Manifest Schema for Axis Camera Application Platform (ACAP) applications.
Package axmanifest provides a Go implementation of the Application Manifest Schema for Axis Camera Application Platform (ACAP) applications.
axoverlay
Package axoverlay provides a Go interface to the Axis Overlay Library (axoverlay)
Package axoverlay provides a Go interface to the Axis Overlay Library (axoverlay)
axparameter
Package axparameter provides a Go interface to the AXParameter library, enabling the management of application-specific parameters on Axis devices.
Package axparameter provides a Go interface to the AXParameter library, enabling the management of application-specific parameters on Axis devices.
axstorage
Package axstorage provides a Go wrapper around the Axis ACAP SDK library, specifically the axstorage API.
Package axstorage provides a Go wrapper around the Axis ACAP SDK library, specifically the axstorage API.
axsyslog
Package syslog provides a wrapper for system log functionality, allowing for logging messages with various priorities and optional console output.
Package syslog provides a wrapper for system log functionality, allowing for logging messages with various priorities and optional console output.
axvdo
Package axvdo provides a Go wrapper around the libvdo C library.
Package axvdo provides a Go wrapper around the libvdo C library.
dbus
Package dbus provides functions like retrieve VAPIX credentials from an Axis camera using D-Bus.
Package dbus provides functions like retrieve VAPIX credentials from an Axis camera using D-Bus.
glib
Package glib provides Go bindings for GLib, only imlementing the necessary functions for the goxis project.
Package glib provides Go bindings for GLib, only imlementing the necessary functions for the goxis project.
utils
Package utils provides utility functions for the goxis project.
Package utils provides utility functions for the goxis project.
vapix
Package vapix provides functions to interact with Axis camera VAPIX API.
Package vapix provides functions to interact with Axis camera VAPIX API.

Jump to

Keyboard shortcuts

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