luckfox-pico-sdk/project/app/ipcweb/ipcweb-backend
luckfox-eng29 8f34c2760d project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.
project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between
the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door
for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more
usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp:
Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for
compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem.
sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device
tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately.
sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick
boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades.
sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for
fastboot.

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
2024-10-14 09:47:04 +08:00
..
cmake creat: first commit 2023-08-08 20:36:47 +08:00
doc creat: first commit 2023-08-08 20:36:47 +08:00
ipcweb-env-arm project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches. 2024-10-14 09:47:04 +08:00
src project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches. 2024-10-14 09:47:04 +08:00
test creat: first commit 2023-08-08 20:36:47 +08:00
thirdparty project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches. 2024-10-14 09:47:04 +08:00
www-rkipc creat: first commit 2023-08-08 20:36:47 +08:00
.clang-format creat: first commit 2023-08-08 20:36:47 +08:00
.clang-tidy creat: first commit 2023-08-08 20:36:47 +08:00
.editorconfig creat: first commit 2023-08-08 20:36:47 +08:00
.gitignore creat: first commit 2023-08-08 20:36:47 +08:00
.gitmodules creat: first commit 2023-08-08 20:36:47 +08:00
AUTHORS creat: first commit 2023-08-08 20:36:47 +08:00
CMakeLists.txt creat: first commit 2023-08-08 20:36:47 +08:00
CODE_OF_CONDUCT.md creat: first commit 2023-08-08 20:36:47 +08:00
costdown-www-rkipc.sh creat: first commit 2023-08-08 20:36:47 +08:00
format.sh creat: first commit 2023-08-08 20:36:47 +08:00
LICENSE creat: first commit 2023-08-08 20:36:47 +08:00
mini-ipcweb-ng.rar project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches. 2024-10-14 09:47:04 +08:00
README.md creat: first commit 2023-08-08 20:36:47 +08:00
web-development-reference.pdf project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches. 2024-10-14 09:47:04 +08:00

ipcweb-backend

A IP Camera Web Backend Reference Implementation


[TOC]

1. Getting Started

1.1 Build Requirements

ipcweb-backend is designed to run on Linux platform, especially the Linux platform of Rockchip's SoCs. It is cross compiled with the following environments:

  • Build Host: Ubuntu

  • Host Web Server: Any web server that supports CGI application, like Lighttpd, Nginx, Apache, AppWeb etc.

  • Build System: CMake >= 3.8

  • Compiler: GCC >= 6 or Clang

  • PostMan

  • Host Libraries(To test APIs on host environments)

    sudo apt install libboost-all-dev
    
    sudo apt install libcgicc-dev
    
    sudo apt install nlohmann-json-dev
    
    • jwt-cpp This library is not provided by system, it is build from souce
  • Target Libraries The target libraries should be provided by the Buildroot SDK, if them are not found, the CMake build system build them from source.

    BR2_PACKAGE_BOOST=y
    BR2_PACKAGE_BOOST_LOG=y
    BR2_PACKAGE_BOOST_STACKTRACE=y
    BR2_PACKAGE_BOOST_SYSTEM=y
    BR2_PACKAGE_BOOST_THREAD=y
    
    BR2_PACKAGE_LIBCGICC
    
    BR2_PACKAGE_JSON_FOR_MODERN_CPP
    

1.2 Build Instructions

mkdir build
cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/linux-arm.cmake
make -j8

1.5 Unit Testing

This project use Google Test as test framework. Init the googletest submodule to use it.

git submodule init
git submodule update

Build and test

cmake .. -DIPCWEB_BUILD_TESTS
make
make test

The output is like:

Running tests...
Test project /work/www/ipcweb-backend/build
    Start 1: ObjectsTest.Tcpip.noArgs
1/1 Test #1: ObjectsTest.Tcpip.noArgs .........   Passed    0.00 sec

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.00 sec

1.4 CGI Testing

Start the web server to test CGI applications, suggest to use AppWeb.

appweb <path/of/web/root> <host>:<port>

Use tools like Postman to test the RESTful API

GET http://:/api/v1/hello.cgi?name=cody