From e74a9f8d135ee6bff733132aff0aa2b5ac2aba26 Mon Sep 17 00:00:00 2001 From: virmaior <70625876+virmaior@users.noreply.github.com> Date: Sun, 2 Oct 2022 12:55:07 +0900 Subject: [PATCH] updates to web (#321) * add basic support cam configuration file * multiple cams at 1 frame/sec can switch which is big. * Update cam.cgi --- .../wz_mini/www/cgi-bin/cam-NIGHT_LED_flag.md | 1 + SD_ROOT/wz_mini/www/cgi-bin/cam-bitRate.md | 1 + .../wz_mini/www/cgi-bin/cam-drawBoxSwitch.md | 1 + SD_ROOT/wz_mini/www/cgi-bin/cam-fps.md | 1 + SD_ROOT/wz_mini/www/cgi-bin/cam-indicator.md | 1 + .../wz_mini/www/cgi-bin/cam-nightVision.md | 1 + .../wz_mini/www/cgi-bin/cam-night_cut_thr.md | 1 + SD_ROOT/wz_mini/www/cgi-bin/cam-res.md | 1 + SD_ROOT/wz_mini/www/cgi-bin/cam-timezone.md | 1 + .../wz_mini/www/cgi-bin/cam-watermark_flag.md | 1 + SD_ROOT/wz_mini/www/cgi-bin/cam.cgi | 256 ++++++++++++++++++ SD_ROOT/wz_mini/www/cgi-bin/config.css | 10 + SD_ROOT/wz_mini/www/cgi-bin/diagnostics.cgi | 4 +- SD_ROOT/wz_mini/www/cgi-bin/shared.cgi | 3 + SD_ROOT/wz_mini/www/config.js | 7 + SD_ROOT/wz_mini/www/index.html | 8 +- SD_ROOT/wz_mini/www/multicam.html | 164 +++++++++++ 17 files changed, 458 insertions(+), 4 deletions(-) create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-NIGHT_LED_flag.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-bitRate.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-drawBoxSwitch.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-fps.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-indicator.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-nightVision.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-night_cut_thr.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-res.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-timezone.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam-watermark_flag.md create mode 100644 SD_ROOT/wz_mini/www/cgi-bin/cam.cgi create mode 100644 SD_ROOT/wz_mini/www/multicam.html diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-NIGHT_LED_flag.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-NIGHT_LED_flag.md new file mode 100644 index 0000000..3c672f4 --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-NIGHT_LED_flag.md @@ -0,0 +1 @@ +Night Vision IR Lights Far (1=Far, 2=Off or Near) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-bitRate.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-bitRate.md new file mode 100644 index 0000000..4039d80 --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-bitRate.md @@ -0,0 +1 @@ +(60=360p or SD, 120=HD) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-drawBoxSwitch.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-drawBoxSwitch.md new file mode 100644 index 0000000..515a47a --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-drawBoxSwitch.md @@ -0,0 +1 @@ +Motion Box (1=Enabled, 2=Disabled) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-fps.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-fps.md new file mode 100644 index 0000000..678b2b7 --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-fps.md @@ -0,0 +1 @@ +Frames Per Second diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-indicator.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-indicator.md new file mode 100644 index 0000000..8f59d7c --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-indicator.md @@ -0,0 +1 @@ +Camera Status Light (1=Enabled, 2=Disabled) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-nightVision.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-nightVision.md new file mode 100644 index 0000000..1856366 --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-nightVision.md @@ -0,0 +1 @@ +Night Vision Mode (1=On, 2=Off, 3=Auto) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-night_cut_thr.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-night_cut_thr.md new file mode 100644 index 0000000..cffab5b --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-night_cut_thr.md @@ -0,0 +1 @@ +Nightvision Conditions (1=Dusk, 2=Dark) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-res.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-res.md new file mode 100644 index 0000000..c195509 --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-res.md @@ -0,0 +1 @@ +(1=SD or HD, 2=360p) diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-timezone.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-timezone.md new file mode 100644 index 0000000..93a93bf --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-timezone.md @@ -0,0 +1 @@ +Timezone offset from GMT diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam-watermark_flag.md b/SD_ROOT/wz_mini/www/cgi-bin/cam-watermark_flag.md new file mode 100644 index 0000000..6c9cae9 --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam-watermark_flag.md @@ -0,0 +1 @@ +watermark_flag diff --git a/SD_ROOT/wz_mini/www/cgi-bin/cam.cgi b/SD_ROOT/wz_mini/www/cgi-bin/cam.cgi new file mode 100644 index 0000000..2cf27ae --- /dev/null +++ b/SD_ROOT/wz_mini/www/cgi-bin/cam.cgi @@ -0,0 +1,256 @@ +#!/bin/sh +# This serves a rudimentary webpage based on wz_mini.conf +. /opt/wz_mini/www/cgi-bin/shared.cgi + +title="$camver on $camfirmware running wz_mini $hackver as $HOSTNAME" +updated=false + + + + +echo "HTTP/1.1 200" +echo -e "Content-type: text/html\n\n" +echo "" + + +die_no_config() +{ +if [ -f ${cam_config} ] +then + if [ -s ${cam_config} ] + then + echo "$cam_config exists and not empty" + else + echo "$cam_config exists but empty" + echo "if you reboot then the camera will revert to defaults or possibly fail " + exit + fi +else + echo "$cam_config file does not exist" + echo "Maybe they moved the file? or your camera type stores it somewhere else ?" + exit +fi + +} + + +reboot_camera() { + die_no_config + reboot_wait=90 + echo "rebooting camera (refreshing screen in $reboot_wait seconds)" + echo '' + handle_css config.css + version_info "display_BAR" + reboot + exit +} + +shft() { + # SE loop did not work -- thanks ash! + suff=8 + while [ "$suff" -gt 0 ] ; + do + if [[ -f "$1.$suff" ]] ; then + nxt=$((suff + 1)) + mv -f "$1.$suff" "$1.$nxt" + fi + suff=$((suff-1)) + done + mv -f "$1" "$1.1" +} + + + + + + +if [[ $REQUEST_METHOD = 'GET' ]]; then + + #since ash does not handle arrays we create variables using eval + IFS='&' + for PAIR in $QUERY_STRING + do + K=$(echo $PAIR | cut -f1 -d=) + VA=$(echo $PAIR | cut -f2 -d=) + eval GET_$K=$VA + done + + if [[ "$GET_action" = "reboot" ]]; then + reboot_camera + fi +fi + + +#test for post +if [[ $REQUEST_METHOD = 'POST' ]]; then + if [ "$CONTENT_LENGTH" -gt 0 ]; then + read -n $CONTENT_LENGTH POST_DATA <&0 + while read line + do eval "echo ${line}" + done + fi + + #since ash does not handle arrays we create variables using eval + IFS='&' + for PAIR in $POST_DATA + do + K=$(echo $PAIR | cut -f1 -d=) + VA=$(echo $PAIR | cut -f2 -d=) + VB=\"${VA//%3A/:}\" + #echo "
' + cat "$fname" + printf '