diff --git a/build/app_header_init.o b/build/app_header_init.o deleted file mode 100644 index 9177e71..0000000 Binary files a/build/app_header_init.o and /dev/null differ diff --git a/build/application_init.o b/build/application_init.o deleted file mode 100644 index b69e915..0000000 Binary files a/build/application_init.o and /dev/null differ diff --git a/build/bt_uart.o b/build/bt_uart.o deleted file mode 100644 index a3166d2..0000000 Binary files a/build/bt_uart.o and /dev/null differ diff --git a/build/demo_hdmi.sh b/build/demo_hdmi.sh deleted file mode 100644 index 75b1148..0000000 --- a/build/demo_hdmi.sh +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/sh -set -e - -BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin -FW=/mnt/flash/vienna/kp_firmware_host_stream -INI=$BIN_DIR/ini/host_stream.ini - -cd $BIN_DIR - -# Load hardware drivers if not already loaded (required for EDMC/NPU) -[ -e /dev/vpl_edmc ] || (cd /mnt/flash/vienna/drivers && sh driver.sh 2>/dev/null && sleep 1) - -killall -9 kp_firmware_host_stream 2>/dev/null || true -killall -9 rtsps 2>/dev/null || true -sleep 1 -rm -f /dev/shm/* - -# Optional override: PIXFMT=NV21 MODEL_PATH=nef/other.nef MODEL_ID=xxxxx JOB_ID=yyy ./demo_hdmi.sh -PIXFMT=${PIXFMT:-NV12} - -# Model settings — read from INI as default, env var overrides at runtime -_ini_val() { grep "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; } -MODEL_PATH=${MODEL_PATH:-$(_ini_val ModelPath)} -MODEL_ID=${MODEL_ID:-$(_ini_val ModelId)} -JOB_ID=${JOB_ID:-$(_ini_val JobId)} - -# HDMI demo profile: inference on stream1 (724x362) + HDMI output from stream0 (1920x1080). -# InferenceStream=1: NPU receives 724x362 frames (model native res) — ~8x faster than InferenceStream=0. -# StreamCount=2: creates both stream0 (1920x1080, draw_box+HDMI) and stream1 (724x362, inference) SSMs. -sed -i 's/^NnmSource.*/NnmSource = 0/' $INI -sed -i 's/^GetImageBufMode.*/GetImageBufMode = 0/' $INI -sed -i 's/^InferenceStream.*/InferenceStream = 1/' $INI -sed -i 's/^StreamCount.*/StreamCount = 2/' $INI -sed -i 's/^voc_enable.*/voc_enable = 1/' $INI -sed -i "s/^PixFmt.*/PixFmt = ${PIXFMT}/" $INI -# DrawBoxEnable: respect INI value set by web UI (do not override) - -echo "=== HDMI Demo INI ===" -grep -E "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt" $INI -echo "=== Model (runtime): MODEL_PATH=$MODEL_PATH MODEL_ID=$MODEL_ID JOB_ID=$JOB_ID ===" - -echo "=== Start Firmware (HDMI demo) ===" -LD_LIBRARY_PATH=/mnt/flash/vienna/lib $FW -m "$MODEL_PATH" -i "$MODEL_ID" -j "$JOB_ID" & -FW_PID=$! -echo "Firmware PID: $FW_PID" -wait $FW_PID diff --git a/build/demo_post_utils.o b/build/demo_post_utils.o deleted file mode 100644 index d4b3f16..0000000 Binary files a/build/demo_post_utils.o and /dev/null differ diff --git a/build/demo_rtsp.sh b/build/demo_rtsp.sh deleted file mode 100644 index 15b7ff1..0000000 --- a/build/demo_rtsp.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/bin/sh -set -e - -BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin -FW=/mnt/flash/vienna/kp_firmware_host_stream -INI=$BIN_DIR/ini/host_stream.ini - -cd $BIN_DIR - -# Load hardware drivers if not already loaded (required for EDMC/NPU) -[ -e /dev/vpl_edmc ] || (cd /mnt/flash/vienna/drivers && sh driver.sh 2>/dev/null && sleep 1) - -killall -9 kp_firmware_host_stream 2>/dev/null || true -killall -9 rtsps 2>/dev/null || true -sleep 1 -rm -f /dev/shm/* - -# Optional overrides: -# PIXFMT=NV21 INF_STREAM=0 MODEL_PATH=nef/other.nef MODEL_ID=xxxxx JOB_ID=yyy ./demo_rtsp.sh -PIXFMT=${PIXFMT:-NV12} -INF_STREAM=${INF_STREAM:-1} - -# Model settings — read from INI as default, env var overrides at runtime -_ini_val() { grep "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; } -MODEL_PATH=${MODEL_PATH:-$(_ini_val ModelPath)} -MODEL_ID=${MODEL_ID:-$(_ini_val ModelId)} -JOB_ID=${JOB_ID:-$(_ini_val JobId)} - -# RTSP demo profile: single-process source + one encoder stream + RTSP server. -sed -i 's/^NnmSource.*/NnmSource = 0/' $INI -sed -i 's/^GetImageBufMode.*/GetImageBufMode = 0/' $INI -sed -i "s/^InferenceStream.*/InferenceStream = ${INF_STREAM}/" $INI -sed -i 's/^StreamCount.*/StreamCount = 2/' $INI -sed -i "s/^PixFmt.*/PixFmt = ${PIXFMT}/" $INI -sed -i 's/^voc_enable.*/voc_enable = 0/' $INI -# DrawBoxEnable: respect INI value set by web UI (do not override) - -echo "=== RTSP Demo INI ===" -grep -E "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt|DrawBoxEnable" $INI -echo "=== Model (runtime): MODEL_PATH=$MODEL_PATH MODEL_ID=$MODEL_ID JOB_ID=$JOB_ID ===" - -echo "=== Start Firmware (RTSP demo) ===" -LD_LIBRARY_PATH=/mnt/flash/vienna/lib $FW -m "$MODEL_PATH" -i "$MODEL_ID" -j "$JOB_ID" & -FW_PID=$! - -sleep 4 - -# Start RTSP server that reads venc_srb_* output. -LD_LIBRARY_PATH=/mnt/flash/vienna/lib ./rtsps -c stream_server_config.ini & -RTSP_PID=$! - -echo "Firmware PID: $FW_PID" -echo "RTSP PID: $RTSP_PID" -echo "RTSP URL: rtsp://192.168.3.10/live1.sdp" - -wait $FW_PID diff --git a/build/demo_rtsp_hdmi.sh b/build/demo_rtsp_hdmi.sh deleted file mode 100644 index 7cf1b29..0000000 --- a/build/demo_rtsp_hdmi.sh +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -# by mars -set -e - -BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin -FW=/mnt/flash/vienna/kp_firmware_host_stream -INI=$BIN_DIR/ini/host_stream.ini - -cd $BIN_DIR - -# Load hardware drivers if not already loaded (required for EDMC/NPU) -[ -e /dev/vpl_edmc ] || (cd /mnt/flash/vienna/drivers && sh driver.sh 2>/dev/null && sleep 1) - -killall -9 kp_firmware_host_stream 2>/dev/null || true -killall -9 rtsps 2>/dev/null || true -sleep 1 -rm -f /dev/shm/* - -# Optional override: PIXFMT=NV21 MODEL_PATH=nef/other.nef MODEL_ID=xxxxx JOB_ID=yyy ./demo_rtsp_hdmi.sh -PIXFMT=${PIXFMT:-NV12} - -# Model settings — read from INI as default, env var overrides at runtime -_ini_val() { grep "^$1" "$INI" | sed 's/.*= *//' | tr -d '"' | awk '{print $1}'; } -MODEL_PATH=${MODEL_PATH:-$(_ini_val ModelPath)} -MODEL_ID=${MODEL_ID:-$(_ini_val ModelId)} -JOB_ID=${JOB_ID:-$(_ini_val JobId)} - -# Combined RTSP + HDMI profile. -# InferenceStream=1 uses stream1 (724x362) for inference. -# DrawOnResize=1 so segmentation overlay is drawn on resize streams (RTSP streams). -sed -i 's/^NnmSource.*/NnmSource = 0/' $INI -sed -i 's/^GetImageBufMode.*/GetImageBufMode = 0/' $INI -sed -i 's/^InferenceStream.*/InferenceStream = 1/' $INI -sed -i 's/^StreamCount.*/StreamCount = 2/' $INI -sed -i 's/^voc_enable.*/voc_enable = 1/' $INI -sed -i "s/^PixFmt.*/PixFmt = ${PIXFMT}/" $INI -# DrawBoxEnable: respect INI value set by web UI (do not override) -# DrawOnResize: not needed — firmware auto-disables it when InferenceStream != 0 - -echo "=== RTSP+HDMI Demo INI ===" -grep -E "ModelPath|ModelId|JobId|NnmSource|GetImageBufMode|InferenceStream|StreamCount|voc_enable|PixFmt|DrawBoxEnable|DrawOnResize" $INI -echo "=== Model (runtime): MODEL_PATH=$MODEL_PATH MODEL_ID=$MODEL_ID JOB_ID=$JOB_ID ===" - -echo "=== Start Firmware (RTSP+HDMI demo) ===" -LD_LIBRARY_PATH=/mnt/flash/vienna/lib $FW -m "$MODEL_PATH" -i "$MODEL_ID" -j "$JOB_ID" & -FW_PID=$! - -sleep 4 - -# Start RTSP server that reads venc_srb_* output. -LD_LIBRARY_PATH=/mnt/flash/vienna/lib ./rtsps -c stream_server_config.ini & -RTSP_PID=$! - -echo "Firmware PID: $FW_PID" -echo "RTSP PID: $RTSP_PID" -echo "RTSP URL: rtsp://192.168.3.10/live1.sdp" - -wait $FW_PID diff --git a/build/deploy.sh b/build/deploy.sh deleted file mode 100644 index 3812ade..0000000 --- a/build/deploy.sh +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -# deploy.sh — 部署新編譯的 firmware 到裝置並重啟 RTSP demo -# -# 使用方式(在裝置上執行): -# sh deploy.sh -# -# 前提:host 192.168.3.1:8080 在提供以下檔案: -# /kp_firmware_host_stream (compile.sh 的輸出) -# /host_stream.ini (kl630_build/ini/host_stream.ini) -# -# 一次性設定(只需在新機器上執行一次,之後重開機不需要再跑): -# sh deploy.sh --setup - -set -e - -HOST_URL="http://192.168.0.114:8080" -BIN_DIR=/mnt/flash/plus/kp_firmware/kp_firmware_0/kp_firmware/bin -FW=/mnt/flash/vienna/kp_firmware_host_stream -INI=$BIN_DIR/ini/host_stream.ini - -# ── 一次性 ISP 資源修正 ───────────────────────────────────────────────────── -# IMX662 DOL-HDR 需要 dwStatisticsSrcType=2 和 bGTREnable=1。 -# 這些寫入 flash,重開機後自動保留,只需要執行一次。 -one_time_setup() { - echo "=== 一次性 ISP resource 設定 ===" - sed -i 's/dwStatisticsSrcType = 0/dwStatisticsSrcType = 2/' \ - $BIN_DIR/Resource/AWB/AutoWhiteBalance.ini - sed -i 's/bGTREnable = 0/bGTREnable = 1/' \ - $BIN_DIR/Resource/ISP/0/pqtable_ispe_Config.cfg - sed -i 's/bGTREnable = 0/bGTREnable = 1/' \ - $BIN_DIR/Resource/ISP/1/pqtable_ispe_Config.cfg - echo " dwStatisticsSrcType=$(grep dwStatisticsSrcType $BIN_DIR/Resource/AWB/AutoWhiteBalance.ini | head -1)" - echo " bGTREnable=$(grep bGTREnable $BIN_DIR/Resource/ISP/0/pqtable_ispe_Config.cfg)" - echo "=== 完成,之後重開機不需要再執行 ===" -} - -if [ "$1" = "--setup" ]; then - one_time_setup - exit 0 -fi - -# ── 停止舊的 firmware ───────────────────────────────────────────────────────── -echo "=== 停止舊 firmware ===" -killall -9 kp_firmware_host_stream 2>/dev/null || true -killall -9 rtsps 2>/dev/null || true -sleep 1 -rm -f /dev/shm/* - -# ── 下載新 binary ───────────────────────────────────────────────────────────── -echo "=== 下載 firmware binary ===" -wget -q "$HOST_URL/kp_firmware_host_stream" -O $FW -chmod +x $FW -echo " $FW: $(ls -lh $FW | awk '{print $5, $6, $7, $8}')" - -# ── 下載新 INI(保留裝置端的 fusion_cfg / ISP 設定)───────────────────────── -echo "=== 下載 INI ===" -wget -q "$HOST_URL/host_stream.ini" -O $INI -echo " fusion_cfg: $(grep '^fusion_cfg' $INI || echo '(not set!)')" - -# ── 下載 demo_rtsp.sh(確保裝置上版本與 host 一致)──────────────────────────── -echo "=== 下載 demo_rtsp.sh ===" -wget -q "$HOST_URL/demo_rtsp.sh" -O $BIN_DIR/ini/demo_rtsp.sh -chmod +x $BIN_DIR/ini/demo_rtsp.sh - -# ── 啟動 RTSP demo ──────────────────────────────────────────────────────────── -echo "=== 啟動 RTSP demo ===" -cd $BIN_DIR -sh ./ini/demo_rtsp.sh diff --git a/build/event_recorder.o b/build/event_recorder.o deleted file mode 100644 index 0828c49..0000000 Binary files a/build/event_recorder.o and /dev/null differ diff --git a/build/fec_api.o b/build/fec_api.o deleted file mode 100644 index 41b6621..0000000 Binary files a/build/fec_api.o and /dev/null differ diff --git a/build/glibc_shim.o b/build/glibc_shim.o deleted file mode 100644 index fae6cba..0000000 Binary files a/build/glibc_shim.o and /dev/null differ diff --git a/build/host_stream.ini b/build/host_stream.ini deleted file mode 100644 index 88be5a6..0000000 --- a/build/host_stream.ini +++ /dev/null @@ -1,99 +0,0 @@ -[sensor] -sensor_cfg = "./Resource/VIC/0/imx662_1920x1080_ch0.cfg" -fusion_cfg = "./Resource/VIC/1/imx662_1920x1080_ch1.cfg" -autoscene_config = "./Resource/AutoScene/autoscene_conf.cfg" -fec_calibrate_path = "./ini/fec_calibrate.ini" -fec_conf_path = "./ini/fec_conf.ini" -fec_mode = 4 # 0: Original, 1: 1 Region, 2: 180 all direction, 3: 180 one Direction, 4: 180 two direction, 5: PT Mode -initial_fec_app_type = 0 # 0: ceiling, 1: table, 2: wall -eis_enable = 1 - -[nnm] -ModelPath = "nef/STDC04012026_models_630.nef" -ModelId = 32769 # KNERON_YOLOV5S_COCO80_640_640_3 (YOLO v5s) -JobId = 200 # KDP2_INF_ID_APP_YOLO -InferenceStream = 1 # Inference stream index (use stream1: 640x640) -Threshold = 0.5 # for yolo only(JobId = 11) -Fps = 25 # Image input fps for NPU inference -GetImageBufMode = 0 # 0: block mode 1: non-block mode -RoiEnable = 0 # Enable ROI for nnm detect -RoiX = 0 # ROI start x -RoiY = 0 # ROI start y -DrawBoxEnable = 1 # draw object bounding box on stream0 (also enables STDC seg overlay) -OnlyPerson = 1 # only draw person bounding box when DrawBoxEnable - #(so far for yolo only, JobId = 11) -DrawOnResize = 0; # If InferenceStream is 0. This setting needs to be enabled. The box will be drawn on all resize streams. -verbose_log = 0 # 0: quiet (warnings only, ~30B/s), 1: per-frame class ratios every 20 frames (~1KB/s). Toggle from web UI. - -NnmSource = 0 # 0: run host_stream independently, 1: run with streamer -ssm_name = "vsrc_ssm_ifp_0" # If NnmSource is 1. This setting needs to be set. The name is automaticlly create by streamer. - -[voc] -voc_enable = 1 #enable Video Output Component -VocWidth = 1920 #video output width -VocHeight = 1080 #video output height -PixFmt = NV12 # HDMI input format for VOC: NV12 / NV21 / YM12 - -[streamer] -StreamCount = 2 #Stream amount -MemType = 0 #Encode buffer type, 0(SRB mode)/1(SCM mode) - -#stream0 is the main stream which has the same resolution as the sensor. -[stream0] -Codec = 0 #VMF_VENC_CODEC_TYPE_H264 -Width = 1920 #The image width of stream0 -Height = 1080 #The image height of stream0 -FPS = 25 #The frame rate of stream0 -QP = 25 #The base value of the quantization parameter. Its range is from 0 to 51. -Bitrate = 2000000 #The average bitrate of the encoded stream. Its range is from 30,000 to 700,000,000 bps. -PIQ = 0 #PIQ setting. Reduce the difference of QP between intra and inter frame. Default: 0 (disable). -GOP = 50 #Group of pictures. It specifies the number of frames between two intra frames. The maximum GOP value is 600. -Virt_I_Interval = 0 #Virtual intra frame interval. 0:disable, range: 1 ~ (gop-1) -KeepFrameRatio = 0 # This option is valid only on resized stream. -EncodeBufferSize = 6291456 # 6M: 6*1024*1024 = 6291456 -EncodeBufferAmount = 3 # (SRB only) - -[stream1] -Codec = 0 #VMF_VENC_CODEC_TYPE_H264 -Width = 724 #The image width of stream1 (STDC model training resolution) -Height = 362 #The image height of stream1 (STDC model training resolution) -FPS = 25 #The frame rate of stream0 -QP = 25 #The base value of the quantization parameter. Its range is from 0 to 51. -Bitrate = 2000000 #The average bitrate of the encoded stream. Its range is from 30,000 to 700,000,000 bps. -PIQ = 0 #PIQ setting. Reduce the difference of QP between intra and inter frame. Default: 0 (disable). -GOP = 50 #Group of pictures. It specifies the number of frames between two intra frames. The maximum GOP value is 600. -Virt_I_Interval = 0 #Virtual intra frame interval. 0:disable, range: 1 ~ (gop-1) -KeepFrameRatio = 0 # This option is valid only on resized stream. -EncodeBufferSize = 2097152 # 2M: 2*1024*1024 = 2097152 -EncodeBufferAmount = 3 # (SRB only) - -[stream2] -Codec = 0 #VMF_VENC_CODEC_TYPE_H264 -Width = 640 #The image width of stream0 -Height = 480 #The image height of stream0 -FPS = 25 #The frame rate of stream0 -QP = 25 #The base value of the quantization parameter. Its range is from 0 to 51. -Bitrate = 2000000 #The average bitrate of the encoded stream. Its range is from 30,000 to 700,000,000 bps. -PIQ = 0 #PIQ setting. Reduce the difference of QP between intra and inter frame. Default: 0 (disable). -GOP = 50 #Group of pictures. It specifies the number of frames between two intra frames. The maximum GOP value is 600. -Virt_I_Interval = 0 #Virtual intra frame interval. 0:disable, range: 1 ~ (gop-1) -KeepFrameRatio = 0 # This option is valid only on resized stream. -EncodeBufferSize = 2097152 # 2M: 2*1024*1024 = 2097152 -EncodeBufferAmount = 3 # (SRB only) - -[capture] -# Legacy single-JPEG capture (kept for reference, not used by event_recorder) -enable = 0 -http_url = http://192.168.0.114:8081/api/upload -cooldown_ms = 1000 - -[event] -# Violation event recorder — two-channel: JSON (BT/iPad) + tar.gz (Allxon OOB) -enable = 1 -bt_uart_dev = /dev/ttyS1 # Channel A: UART device for DX-BT24 BLE module → iPad -bt_at_probe = 0 # 0: skip AT commands (normal); 1: one-time baud upgrade (factory/reset only) -upload_url = http://192.168.0.114:8081/api/golf.cgi # Channel B: tar.gz upload (OOB/cloud path) - # Production: http://192.168.0.99/api/golf.cgi -sd_path = /tmp/sdcard/events # SD card event archive path -sd_max_mb = 7168 # 7 GB — delete oldest when exceeded -upload_delay_ms = 0 # 0: upload immediately after tar.gz built (tar is built after event ends, no extra delay needed) diff --git a/build/kCurl b/build/kCurl deleted file mode 100755 index 4d3a503..0000000 Binary files a/build/kCurl and /dev/null differ diff --git a/build/kdp2_host_stream.o b/build/kdp2_host_stream.o deleted file mode 100644 index 9eb6f50..0000000 Binary files a/build/kdp2_host_stream.o and /dev/null differ diff --git a/build/kp_firmware.o b/build/kp_firmware.o deleted file mode 100644 index 2c41f76..0000000 Binary files a/build/kp_firmware.o and /dev/null differ diff --git a/build/kp_firmware_host_stream b/build/kp_firmware_host_stream deleted file mode 100755 index e63f111..0000000 Binary files a/build/kp_firmware_host_stream and /dev/null differ diff --git a/build/nef/STDC03302026_models_630.nef b/build/nef/STDC03302026_models_630.nef deleted file mode 100644 index 45f66c6..0000000 Binary files a/build/nef/STDC03302026_models_630.nef and /dev/null differ diff --git a/build/nef/STDC04012026_models_630.nef b/build/nef/STDC04012026_models_630.nef deleted file mode 100644 index ac77033..0000000 Binary files a/build/nef/STDC04012026_models_630.nef and /dev/null differ diff --git a/build/stat_shim.o b/build/stat_shim.o deleted file mode 100644 index b5069c7..0000000 Binary files a/build/stat_shim.o and /dev/null differ diff --git a/build/stdc_inf_single_model.o b/build/stdc_inf_single_model.o deleted file mode 100644 index d9512da..0000000 Binary files a/build/stdc_inf_single_model.o and /dev/null differ diff --git a/build/stdc_post_process.o b/build/stdc_post_process.o deleted file mode 100644 index 3625dbf..0000000 Binary files a/build/stdc_post_process.o and /dev/null differ diff --git a/compile.sh b/compile.sh index 28005d0..b262ff6 100644 --- a/compile.sh +++ b/compile.sh @@ -18,6 +18,7 @@ mkdir -p $BUILD_DIR CFLAGS="-DVATICS_PLATFORM -DKL630 -D_GNU_SOURCE -U_FORTIFY_SOURCE" CFLAGS="$CFLAGS -march=armv7-a -mfpu=neon -mfloat-abi=hard -Os" CFLAGS="$CFLAGS -Wall -Wno-unused-variable -Wno-unused-function" +#CFLAGS="$CFLAGS -DENABLE_DBG_LOG" INCLUDES="-I$WORKSPACE/include/host_stream" INCLUDES="$INCLUDES -I$WORKSPACE/include/app_flow" @@ -65,7 +66,7 @@ fi ALL_SRCS=$(ls \ $WORKSPACE/src/host_stream/*.c \ $WORKSPACE/src/app_flow/*.c \ - $WORKSPACE/src/pre_post_proc/*.c \ + $WORKSPACE/src/pre_post_proc/*.c \ 2>/dev/null) echo ""