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 "
$K=$VB
" + eval POST_$K=\"$VB\" + done + + + #switch back to going through the config file + output="$cam_config.new" + + #name our output file + while IFS= read -r \ARGUMENT; do + #cycle through each line of the current config + #copy through all comments + if [ -z "$ARGUMENT" ]; then + echo -ne "\n" >> $output + elif [[ ${ARGUMENT:0:1} == "#" ]] ; then + #echo $ARGUMENT $'\n' + echo -ne $ARGUMENT"\n" >> $output + else + #for non-comments check to see if we have an entry in the POST data by deciphering the key from the ini file and using eval for our fake array + KEY=$(echo $ARGUMENT | cut -f1 -d=) + test=$(eval echo \$POST_$KEY) + #echo "key was $KEY test was ... $test
" + if [[ "$test" ]]; then + #if in the fake array then we use the new value + #echo "
matched
" + echo -ne $KEY=\"$test\""\n" >> $output + else + #if not in the fake array we use the current value + #echo "
key not found
" + echo -ne $ARGUMENT"\n" >> $output + fi + + fi + done < $cam_config + + shft $cam_config + mv $output $cam_config + updated=true + +fi + + + + +function documentation_to_html +{ + fname="$www_dir"'cam-'"$1.md" + if [[ -f "$fname" ]]; then + printf '
'
+                cat "$fname"
+                printf '
' + fi +} + + +function ini_to_html_free +{ + classes="" + if [ "$1" = "USB_DIRECT_MAC_ADDR" ]; then + classes=" mac_addr" + fi + if grep -q -wi "$1" cam-numerics.txt; then + classes=" numeric" + fi + printf '
%s
' $1 $1 $2 + documentation_to_html $1 + printf '
' +} + +function ini_to_html_tf +{ + printf '
%s
' $1 + printf '
' + if [[ "$2" == "true" ]]; then + printf ' True  ' $1 + printf ' False  ' $1 + else + printf ' True  ' $1 + printf ' False  ' $1 + + fi + printf '
' + documentation_to_html $1 + printf '
' +} + +#function to handle camera feed +function html_cam_feed +{ + printf '' +} + + + + +echo -ne "$title" +handle_css config.css + +echo '' +echo -ne "" + + +echo -ne '' +echo -ne "

$title

"; + + +if [ "$updated" = true ]; +then + echo '
configuration file updated. Reboot to use changes. Or Revert to a prior configuration
'; + +fi + +html_cam_feed + + +echo -ne '
' + + +CONFIG_BLOCK=0 + +while IFS= read -r ARGUMENT; do + if [ -z "$ARGUMENT" ] ; then + echo -ne "" + elif [[ ${ARGUMENT:0:1} == "[" ]] ; then + if [ "$CONFIG_BLOCK" -gt 0 ]; then + echo '' + fi + CONFIG_BLOCK=$((CONFIG_BLOCK + 1)) + BTITLE=${ARGUMENT//#/ } + BN=$ARGUMENT + echo '
' + echo -ne '
'$BTITLE'
' + else + KEY=$(echo $ARGUMENT | cut -f1 -d=) + VAL=$(echo $ARGUMENT | cut -f2 -d=) + VALUE=${VAL//\"/} + case "$VALUE" in + "true") ini_to_html_tf $KEY $VALUE ;; + "false") ini_to_html_tf $KEY $VALUE ;; + *) ini_to_html_free $KEY $VALUE + esac + fi +done < $cam_config + if [ "$CONFIG_BLOCK" -gt 0 ]; then + echo '
' + fi + + + +echo -ne '' +echo -ne '
' +echo -ne ''; + + +version_info "display_BAR" + +echo -ne '' diff --git a/SD_ROOT/wz_mini/www/cgi-bin/config.css b/SD_ROOT/wz_mini/www/cgi-bin/config.css index 21b1318..fe53991 100644 --- a/SD_ROOT/wz_mini/www/cgi-bin/config.css +++ b/SD_ROOT/wz_mini/www/cgi-bin/config.css @@ -144,3 +144,13 @@ H1 { .fail_val { background-color:#fcc; } +.error_title { + width:200px; + order:0; +} + +.error_message { + display:flex; + color:red; + font-family: monospace; +} diff --git a/SD_ROOT/wz_mini/www/cgi-bin/diagnostics.cgi b/SD_ROOT/wz_mini/www/cgi-bin/diagnostics.cgi index b84a365..3bfbfbe 100644 --- a/SD_ROOT/wz_mini/www/cgi-bin/diagnostics.cgi +++ b/SD_ROOT/wz_mini/www/cgi-bin/diagnostics.cgi @@ -17,7 +17,7 @@ dmesg_test() { x=$(dmesg | grep "$1") if [ -n "$x" ]; then - echo "
$2 error found
" + echo "
$2 error found
$x
" else echo "
no $2 error
" fi @@ -29,7 +29,7 @@ logread_test() x=$(logread | grep "$1") if [ -n "$x" ]; then - echo "
$2 error found
" + echo "
$2 error found
$x
" else echo "
no $2 error
" fi diff --git a/SD_ROOT/wz_mini/www/cgi-bin/shared.cgi b/SD_ROOT/wz_mini/www/cgi-bin/shared.cgi index 93b9a38..91fcac0 100644 --- a/SD_ROOT/wz_mini/www/cgi-bin/shared.cgi +++ b/SD_ROOT/wz_mini/www/cgi-bin/shared.cgi @@ -8,9 +8,11 @@ www_dir=/opt/wz_mini/www/cgi-bin/ if [ -f /opt/wz_mini/tmp/.T31 ]; then camtype=T31 camfirmware=$(tail -n1 /configs/app.ver | cut -f2 -d= ) + cam_config="/configs/.user_config" elif [ -f /opt/wz_mini/tmp/.T20 ]; then camtype=T20 camfirmware=$(tail -n1 /system/bin/app.ver | cut -f2 -d= ) + cam_config="/configs//parameters" fi cammodel=$(/opt/wz_mini/etc/init.d/s04model start | grep detected | cut -f1 -d ' ' ) @@ -38,6 +40,7 @@ function version_info echo "
$camfirmware
" echo "
$hackver
" echo "
$HOSTNAME
" + echo ''; echo "" } diff --git a/SD_ROOT/wz_mini/www/config.js b/SD_ROOT/wz_mini/www/config.js index f5cd541..2f7e4b6 100644 --- a/SD_ROOT/wz_mini/www/config.js +++ b/SD_ROOT/wz_mini/www/config.js @@ -56,6 +56,13 @@ function compose_rtsp_block(stype) vb.appendChild(url_block); } +function enable_submit() +{ + alert("no guarantees at all on this one. Change values at your own risk"); + document.getElementById("update").disabled = false; + +} + window.onload = function() { var feed = document.getElementById("current_feed"); diff --git a/SD_ROOT/wz_mini/www/index.html b/SD_ROOT/wz_mini/www/index.html index 063759e..5d23e01 100644 --- a/SD_ROOT/wz_mini/www/index.html +++ b/SD_ROOT/wz_mini/www/index.html @@ -1,10 +1,14 @@ - WZ Mini + WZ Mini Web Tools

wz_mini web server

-

Configuration Editor

+ wz_mini GitHub + +

Wz Mini Configuration Editor

+

Camera Configuration

Car Interface

Current Screen

+

Multi-Cam Viewer

Diagnostics

diff --git a/SD_ROOT/wz_mini/www/multicam.html b/SD_ROOT/wz_mini/www/multicam.html new file mode 100644 index 0000000..20f90af --- /dev/null +++ b/SD_ROOT/wz_mini/www/multicam.html @@ -0,0 +1,164 @@ + + +Multicam + + + + + +
+
+ + + +
+ + + + +