lws-minimal-ws-server这些例程在buildroot里面,更新的话只能整体编译,十分麻烦和耗时,在sdk外面建立项目,单独开发,会更合适。
创建程序文件夹和文件
mkdir ./ws_cam
cd ./ws_cam
cp ../luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/build/libwebsockets-4.3.2/minimal-examples/ws-server/minimal-ws-server/*.c ./
thouch ./CMakeLists.txt
编辑源代码
用vscode打开ws_cam目录,修改里面的源代码
CMakeLists.txt
project(ws_cam C)
cmake_minimum_required(VERSION 2.8.12)
include_directories(../luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include)
link_directories(../luckfox-pico/sysdrv/source/buildroot/buildroot-2023.02.6/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib)
set(CMAKE_C_COMPILER ../luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-gcc)
set(CMAKE_CXX_COMPILER ../luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-g++)
set(EXC ws_cam)
set(SRCS minimal-ws-server.c )
add_executable(${EXC} ${SRCS})
target_link_libraries(${EXC} websockets ssl crypto blkid z)
minimal-ws-server.c
static const struct lws_http_mount mount = {
/* .mount_next */ NULL, /* linked-list "next" */
/* .mountpoint */ "/", /* mountpoint URL */
/* .origin */ "/oem/usr/www", /* serve from dir */
/* .def */ "index.html", /* default filename */
/* .protocol */ NULL,
/* .cgienv */ NULL,
/* .extra_mimetypes */ NULL,
/* .interpret */ NULL,
/* .cgi_timeout */ 0,
/* .cache_max_age */ 0,
/* .auth_mask */ 0,
/* .cache_reusable */ 0,
/* .cache_revalidate */ 0,
/* .cache_intermediaries */ 0,
/* .origin_protocol */ LWSMPRO_FILE, /* files in a dir */
/* .mountpoint_len */ 1, /* char count */
/* .basic_auth_login_file */ NULL,
};
这里把前端的根目录文件夹指定为上次vue3前端的根目录/oem/usr/www
编译测试
cmake ./
make
scp ./ws_cam root@192.168.9.163:/oem/usr/bin
在rv1106摄像头上运行ws_cam
/oem/usr/bin/ws_cam
用浏览器打开网址
192.168.9.163:7681
可见vue3欢迎页面