diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..ba648e1 --- /dev/null +++ b/Readme.md @@ -0,0 +1,221 @@ +项目编号:B061 + +摄像头焦距 2.8-12MM + +静态IP: 192.168.1.108 + +Danki UDP监听端口:6790,用于监听PHP UDP客户端发来的报文。 + + +数据抓拍上报: BusinessDankiV4ReportData + +服务器返回 BusinessReplyReportData,成功根据alarmId删除图片 + +ssh dj-tunnel.reconova.com -p 37626 + +## 问题 + +scene_image_queue_put scene_image是用来干啥的? + +HSDetectResult 是用来干啥的? + +头肩判断,人形判断。是怎么判断的?标志位在哪里? + +cross_type_t 这个数据结构是什么意思,我看进出店好像就是依据这个判断的。 + +cal_cross_type() + +cross_line_type() + +## 多照片抓拍 + +之前写了部分代码用OPEN_OTHER_BODY注释了。 + +通过BusinessDankiV4ReportData上传至平台。 + +CPictureManager::getPBdata()构造BusinessDankiV4ReportData数据。 + +CPictureManager::taskProc()线程做上传。 + +PersonInfo 作为数据结构。 + +captureImageResult()算法处理结果capture_image_cb()回调➡CAlgorithmManager::sendReportData()➡CPictureManager::sendPersonInfo()作为 PersonInfo 压入队列。 + +face_capture_thread()线程循环调用capture_image_handle() + +capture_image_put() + + + +update_best_body()更新最佳图片 + + + +## 平台地址、账号 + +### IOT服务平台: + +https://172.16.100.154:8443/#/login + +账号:13631516009 + +密码:123456@@ + +### 业务平台(瑞为安装助手app) + +设备填:http://172.16.100.154:8700 + +APP密码框输入:reconovatester,修改服务器地址。 + +http://172.16.100.154/#/login + +账号:13631516009 + +密码:123456rw + + + +编译: + +``` +svn checkout http://172.16.0.252/svn/DanKiV5/branches/B023_BJ_ALG B023_BJ_ALG +./genDankiMakefiles hi3516dv500 +``` + +最近构建:http://172.16.100.38:8080/jenkins/job/Danki_3516DV500_FSAN_BJ/78/ + +## h264裸流文件输入 + +### 录制h264裸流文件: + +``` +/system/bin/recordvideo 1 2592 1536 0 15000 1024 60 +ffmpeg -i input.mp4 -codec copy -bsf: h264_mp4toannexb -f h264 output.264 +``` + + + +### 调用路径 + + + +``` +camera_factory_t //对摄像头打开关闭 图像 的操作 + +fds_init() // 打开mpp + + +isp_ctrl_thread() 单纯控制sensor变焦变距 +monitor_thread() 单纯看门狗线程 +video_thread_func()视频输入编码线程->processImage()->cache_faces()->capture_faces()->handle_detect_capture()->face_queue_put() +detect_thread() -> face_queue_get() -> capture_image_put() +face_capture_thread() ->capture_image_get() -> capture_image_handle -> captureImageResult -> CAlgorithmManager::sendReportData() + +hi3516_hi3516dv500.cpp 取摄像头数据 +video_thread_func() +venc_thread_func0() +venc_thread_func1() +``` + + + +## U-Boot烧录 + +``` +setenv serverip 192.168.8.101 +setenv ipaddr 192.168.8.103 +setenv netmask 255.255.255.0 +setenv ethaddr 00:11:22:33:44:55 +setenv gatewayip 192.168.8.1 + +mw.b 0x50000000 0xff 0x80000 && tftp 0x50000000 boot_image.bin && mmc write 0 0x50000000 0 0x400 +mw.b 0x50000000 0xff 0x80000 && tftp 0x50000000 emmc_env.bin && mmc write 0 0x50000000 0x400 0x400 +mw.b 0x50000000 0xff 0x80000 && tftp 0x50000000 bl31.bin && mmc write 0 0x50000000 0x800 0x400 +mw.b 0x50000000 0xff 0xd800000 && tftp 0x50000000 uImage-fdt && mmc write 0 0x50000000 0xc00 0x6c00 +mw.b 0x50000000 0xff 0x3000000 && tftp 0x50000000 rootfs_hi3516dv500_48M.ext4 && mmc write 0 0x50000000 0x7800 0x18000 +mw.b 0x50000000 0xff 0x10000000 && tftp 0x50000000 appfs_hi3516dv500_256M.ext4 && mmc write 0 0x50000000 0x1f800 0x80000 +``` + + + +## ZeroCheck + +```json +{ + "cmd": "zero_check" +} +``` + + + +## 控制IRCUT + +```shell +bspmm 0x179f0014 0x1200 # gpio10_4 被复用过 +echo 84 > /sys/class/gpio/export +echo out > /sys/class/gpio/gpio84/direction + +echo 83 > /sys/class/gpio/export +echo out > /sys/class/gpio/gpio83/direction + +# day +echo 0 > /sys/class/gpio/gpio84/value +echo 1 > /sys/class/gpio/gpio83/value +sleep 1 +echo 0 > /sys/class/gpio/gpio84/value +echo 0 > /sys/class/gpio/gpio83/value + +# night +echo 1 > /sys/class/gpio/gpio84/value +echo 0 > /sys/class/gpio/gpio83/value +sleep 1 +echo 0 > /sys/class/gpio/gpio84/value +echo 0 > /sys/class/gpio/gpio83/value +``` + +```shell +echo 1 > /sys/class/gpio/gpio84/value;echo 0 > /sys/class/gpio/gpio83/value;sleep 1;echo 0 > /sys/class/gpio/gpio84/value;echo 0 > /sys/class/gpio/gpio83/value +``` + +## WebSocket + +端口:9996 + +```json +{ + "act": "guest_status", + "status": 1, + "time": 1702459643 +} +``` + +status:为方向:1为店外徘徊,2为进店,3为店内徘徊,4为出店,0为未划线 + +## MPP + +查看MPP使用内存: + +```shell +cat /proc/umap/media-mem +``` + +## 测试设备 + +rtsp://172.16.101.94/video + +rtsp://172.16.101.191/video + + + +## 解决问题 + +### 2023/12/21 + +1. 机器插上电源冷启动无法控制相机调焦调距 +2. 相机上电初始化时,将IRCUT切换至白天模式 +3. web网页的调距按钮行为反了 +4. 部分镜头用sdk在变焦到一端极限时(2.8或12mm),怎么聚焦也无法使成像清晰,需要拆开机壳手动调节一下。这个有没有办法软件做什么操作解决这个一端无法聚焦的问题? + +## 项目分配 + +姚炎丰:平台、Web前端 diff --git a/resources/build.sh b/resources/build.sh index 37b2c8b..c595dbf 100755 --- a/resources/build.sh +++ b/resources/build.sh @@ -99,6 +99,45 @@ function clean() { fi } +function deploy_old() { # svn代码用 + if [ -n "$1" ]; then + TARGET_IP=$1 + fi + + pushd source/2.Software/src + chmod +x ./genDankiMakefiles + # ./genDankiMakefiles hi3516dv500 + make -j6 + if [ $? -ne 0 ]; then + exit 1 + fi + make install-hi3516dv500 + popd + echo "deply to $TARGET_IP" + # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/system/lib + # while [ true ];do sleep 1;free; done + ssh -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} "mount -o remount rw /system/" + ssh -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} "killall start-app.sh; pgrep -f danki | xargs kill -s 9" + + echo "put $PWD/source/2.Software/libs/danki /system/bin" | sftp -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} + echo "put $PWD/source/2.Software/libs/librwfds.so /system/lib/" | sftp -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} + echo "put $PWD/source/2.Software/libs/librwp2p.so /system/lib/" | sftp -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} + echo "put $PWD/source/2.Software/prebuilt-hi3516dv500/rw_mpp/lib/librw_mpp.so /system/lib/" | sftp -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} + + ssh -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} "sync" + ssh -i ~/Projects/ssh_host_rsa_key_ok root@${TARGET_IP} "reboot" +} + +function clean_old() { + # svn status | grep "?" | awk '{print $2}' + pushd source/2.Software/src + make clean + popd + rm -fr source/2.Software/libs/* + rm -fr source/2.Software/pkg + svn status | grep "?" | awk '{print $2}' | grep -E 'make'\|'Makefile'\|'/build' | xargs rm -fr +} + function main() { local cmd=$1 shift 1 @@ -118,6 +157,12 @@ function main() { init) init $@ ;; + old) + deploy_old $@ + ;; + clean_old) + clean_old $@ + ;; *) build ;;