diff --git a/.github/workflows/linter-documentation-links.yml b/.github/workflows/linter-documentation-links.yml index 8a888ea..a63a94c 100644 --- a/.github/workflows/linter-documentation-links.yml +++ b/.github/workflows/linter-documentation-links.yml @@ -20,8 +20,8 @@ jobs: workflowfile=linter-documentation-links.yml # Version specific URL strings - acap3_type_urls="help.axis.com/acap-3-developer-guide \ - www.axis.com/techsup/developer_doc" + acap3_base_url="axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3" + acap3_type_urls="$acap3_base_url www.axis.com/techsup/developer_doc" acap4_type_urls="axiscommunications.github.io/acap-documentation" # Decide which SDK version this repo is @@ -32,26 +32,41 @@ jobs: *acap-native-sdk-examples*) search_urls=$acap3_type_urls incorrect_sdk_version=3 + + # Check for incorrect URLs + set +e + found_error=n + for doc_url in $search_urls + do + found_doc_url=$(grep -nir "$doc_url" --exclude $workflowfile) + [ -z "$found_doc_url" ] || { + printf "\nERROR: $doc_url is an ACAP $incorrect_sdk_version documentation URL found in:\n$found_doc_url\n" + found_error=y + } + done + set -e + ;; *acap3-examples*) search_urls=$acap4_type_urls incorrect_sdk_version=4 + + # Check for incorrect URLs + set +e + found_error=n + for doc_url in $search_urls + do + found_doc_url=$(grep -nir "$doc_url" --exclude $workflowfile | grep -v $acap3_base_url) + [ -z "$found_doc_url" ] || { + printf "\nERROR: $doc_url is an ACAP $incorrect_sdk_version documentation URL found in:\n$found_doc_url\n" + found_error=y + } + done + set -e + ;; esac - # Check for incorrect URLs - set +e - found_error=n - for doc_url in $search_urls - do - found_doc_url=$(grep -nir "$doc_url" --exclude $workflowfile) - [ -z "$found_doc_url" ] || { - printf "\nERROR: $doc_url is an ACAP $incorrect_sdk_version documentation URL found in:\n$found_doc_url\n" - found_error=y - } - done - set -e - if [ $found_error = n ]; then printf "\nNo ACAP $incorrect_sdk_version documentation URL was found -> PASS" else diff --git a/README.md b/README.md index ab86c58..06b58c6 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,16 @@ - Business intelligence applications that improve business efficiency. - Camera feature plug-ins that add value beyond the Axis product's core functionality -# Prerequisites for ACAP development +## ACAP SDK version 3 -ACAP is Axis own open platform for applications that run on-board an Axis product. If you are new to ACAP, start with learning more about the platform, [prerequisites](https://www.axis.com/developer-community/acap-fundamentals), [compatible architectures](https://www.axis.com/developer-community/acap-sdk) and [SDK user manual](https://help.axis.com/acap-3-developer-guide). +ACAP is Axis own open platform for applications that run on-board an Axis +product. If you are new to ACAP, start with learning more about the platform: -# Getting started with the repository +- [AXIS ACAP 3 SDK Documentation](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3) +- [Introduction](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/introduction) +- [Getting Started](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/get-started) + +## Getting started with the repository This repository contains a set of application examples which aims to enrich the developers analytics experience. All examples are using Docker framework and @@ -47,7 +52,7 @@ Below is the list of examples available in the repository. - [utility-libraries](./utility-libraries/) - These examples covers how to build, bundle and use external libraries with ACAP. - [vdo-larod](./vdo-larod/) - - The example code is written in C and loads a pretrained person-car classification model to the [Machine learning API (Larod)](https://help.axis.com/acap-3-developer-guide#machine-learning-api) and then uses the [Video capture API (VDO)](https://help.axis.com/acap-3-developer-guide#video-capture-api) to fetch video frames in YUV format and finally run inference. + - The example code is written in C and loads a pretrained person-car classification model to the [Machine learning API (Larod)](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api#machine-learning-api) and then uses the [Video capture API (VDO)](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api#video-capture-api) to fetch video frames in YUV format and finally run inference. - [vdo-opencl-filtering](./vdo-opencl-filtering/) - This example illustrates how to capture frames from the vdo service, access the received buffer, and finally perform a GPU accelerated Sobel filtering with OpenCL. - [vdostream](./vdostream/) diff --git a/axevent/send_event/README.md b/axevent/send_event/README.md index 2597610..adb4fe4 100644 --- a/axevent/send_event/README.md +++ b/axevent/send_event/README.md @@ -58,7 +58,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag . diff --git a/axevent/subscribe_to_event/README.md b/axevent/subscribe_to_event/README.md index f40a0aa..04dfd79 100644 --- a/axevent/subscribe_to_event/README.md +++ b/axevent/subscribe_to_event/README.md @@ -49,7 +49,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag . diff --git a/axevent/subscribe_to_events/README.md b/axevent/subscribe_to_events/README.md index fbcda19..c62b17e 100644 --- a/axevent/subscribe_to_events/README.md +++ b/axevent/subscribe_to_events/README.md @@ -49,7 +49,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag . diff --git a/axoverlay/README.md b/axoverlay/README.md index 06ac2ea..826687e 100644 --- a/axoverlay/README.md +++ b/axoverlay/README.md @@ -53,7 +53,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag --build-arg ARCH= . diff --git a/hello-world/README.md b/hello-world/README.md index f322340..31d24e9 100644 --- a/hello-world/README.md +++ b/hello-world/README.md @@ -41,7 +41,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag . diff --git a/licensekey/README.md b/licensekey/README.md index ffc9fc4..efd4fcf 100644 --- a/licensekey/README.md +++ b/licensekey/README.md @@ -6,8 +6,7 @@ This README file explains how to build an ACAP application that uses the license Together with this README file, you should be able to find a directory called app. That directory contains the application source code which can easily be compiled and run with the help of the tools and step by step below. -This example illustrates how to check the license key status. A license key is a signed file which has been generated for a specific device ID and application ID. The ACAP Service Portal is maintaining both license keys and application IDs, see [Online manual](https://help.axis.com/acap-3-developer-guide#acap-service-portal-for-administrators) - +This example illustrates how to check the license key status. A license key is a signed file which has been generated for a specific device ID and application ID. The ACAP Service Portal is maintaining both license keys and application IDs, see [Online manual](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/services-for-partners/acap-service-portal-for-administrators.html) License key status i.e. valid or invalid is logged in the Application log. ## Getting started @@ -49,7 +48,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag . @@ -134,7 +133,7 @@ or by clicking on the "**App log**" link in the device GUI. 10:31:43.058 [ INFO ] licensekey_handler[14660]: Licensekey is invalid ``` -A valid license key for a registered application ID is only accessible through ACAP Service Portal, see [Online manual](https://help.axis.com/acap-3-developer-guide#acap-service-portal-for-administrators). +A valid license key for a registered application ID is only accessible through ACAP Service Portal, see [Online manual](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/services-for-partners/acap-service-portal-for-administrators.html). Support for installing license key though device web page is available, if acapPackageConf.copyProtection.method is set to "axis" in the **manifest.json** file, by the following steps: diff --git a/reproducible-package/README.md b/reproducible-package/README.md index 361bef4..f2a3e54 100644 --- a/reproducible-package/README.md +++ b/reproducible-package/README.md @@ -57,7 +57,7 @@ Standing in your working directory follow the commands below: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. In all examples the option `--no-cache` is used to ensure that image is rebuilt. diff --git a/using-opencv/README.md b/using-opencv/README.md index d98f717..339e534 100644 --- a/using-opencv/README.md +++ b/using-opencv/README.md @@ -32,7 +32,7 @@ building-opencv > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. 1. Standing in your working directory run the following commands: diff --git a/utility-libraries/custom_lib_example/README.md b/utility-libraries/custom_lib_example/README.md index 87a2081..3d21e57 100644 --- a/utility-libraries/custom_lib_example/README.md +++ b/utility-libraries/custom_lib_example/README.md @@ -44,7 +44,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag . diff --git a/utility-libraries/openssl_curl_example/README.md b/utility-libraries/openssl_curl_example/README.md index aa9fdf2..fb7166d 100644 --- a/utility-libraries/openssl_curl_example/README.md +++ b/utility-libraries/openssl_curl_example/README.md @@ -44,7 +44,7 @@ building the ACAP application. That is because the older `libc` from the SDK can't find these newer symbols and functions. - **Don't depend on all available libraries in SDK** - It's recommended to only use `libc` and the documented [ACAP -API](https://help.axis.com/acap-3-developer-guide#api) +API](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api) libraries in the SDK. Don't use other libraries from the SDK in an ACAP application. Instead, download, compile and bundle libraries such as `libcrypto.so` and `libssl.so` (OpenSSL) and `libcurl.so` (curl) with the ACAP @@ -102,7 +102,7 @@ the application on a device. > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. Standing in your working directory run: @@ -200,7 +200,7 @@ device. > **Note** > Make sure -> [SSH is enabled](https://help.axis.com/acap-3-developer-guide#access-the-device-with-ssh) +> [SSH is enabled](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/get-started/set-up-the-device.html#access-the-device-with-ssh) > on the device to run the following commands. Compare the web page source code to the content of file `www.example.com.txt`. @@ -225,7 +225,7 @@ extracting the logs using the following commands in the terminal. > **Note** > Make sure -> [SSH is enabled](https://help.axis.com/acap-3-developer-guide#access-the-device-with-ssh) +> [SSH is enabled](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/get-started/set-up-the-device.html#access-the-device-with-ssh) > on the device to run the following commands. ```sh @@ -253,7 +253,7 @@ which are also available in the SDK, by accident. To achieve this, we recommend removing any OpenSSL or curl libraries in the SDK library path. Why not remove these libraries from the SDK? The [Licensekey -API](https://help.axis.com/acap-3-developer-guide#license-api) +API](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api#license-api) has a dependency on `libcrypto`. 2. **Build OpenSSL libraries** - The SDK environment is sourced to compile with @@ -334,7 +334,7 @@ objdump -p openssl_curl_example | grep -E "NEEDED|RUNPATH|RPATH" > **Note** > Make sure -> [SSH is enabled](https://help.axis.com/acap-3-developer-guide#access-the-device-with-ssh) +> [SSH is enabled](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/get-started/set-up-the-device.html#access-the-device-with-ssh) > on the device to run the following commands. For even better information on where the application binary will search for diff --git a/vdo-larod/README.md b/vdo-larod/README.md index 0bdfb15..2312874 100644 --- a/vdo-larod/README.md +++ b/vdo-larod/README.md @@ -4,8 +4,8 @@ This README file explains how to build an ACAP application that uses: -- the [Video capture API (VDO)](https://help.axis.com/acap-3-developer-guide#video-capture-api) to fetch frames from e.g. a camera -- the [Machine learning API (Larod)](https://help.axis.com/acap-3-developer-guide#machine-learning-api) to load a graph model and run preprocessing and classification inferences +- the [Video capture API (VDO)](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api#video-capture-api) to fetch frames from e.g. a camera +- the [Machine learning API (Larod)](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api#machine-learning-api) to load a graph model and run preprocessing and classification inferences It is achieved by using the containerized API and toolchain images. @@ -84,7 +84,7 @@ Below is the step by step instructions on how to execute the program. So basical > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. Depending on selected chip, different models are trained and are used for running laord. In this example, model files are downloaded from an AWS S3 bucket, diff --git a/vdo-opencl-filtering/README.md b/vdo-opencl-filtering/README.md index 8e9659f..b02694f 100644 --- a/vdo-opencl-filtering/README.md +++ b/vdo-opencl-filtering/README.md @@ -37,7 +37,7 @@ vdo-opencl-filtering The example is done for a captured video stream in YUV NV12 format. For different stream formats the OpenCL program must be altered. -This example requires OpenCL 1.2 with GPU accelleration, see [SDK user manual](https://help.axis.com/acap-3-developer-guide#open-standard-apis). +This example requires OpenCL 1.2 with GPU accelleration, see [SDK user manual](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/api#open-standard-apis). ### How to run the code @@ -52,7 +52,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag --build-arg ARCH= . diff --git a/vdostream/README.md b/vdostream/README.md index 5580387..fe9ab8e 100644 --- a/vdostream/README.md +++ b/vdostream/README.md @@ -49,7 +49,7 @@ Standing in your working directory run the following commands: > Depending on the network you are connected to, you may need to add proxy settings. > The file that needs these settings is: `~/.docker/config.json`. For reference please see > https://docs.docker.com/network/proxy and a -> [script for Axis devices](https://help.axis.com/acap-3-developer-guide#configure-network-proxy-settings) in the ACAP documentation. +> [script for Axis devices](https://axiscommunications.github.io/acap-documentation/docs/acap-sdk-version-3/develop-applications/build-install-and-run-the-application.html#configure-network-proxy-settings) in the ACAP documentation. ```sh docker build --tag .