it:camswitch
Különbségek
A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Következő változat | Előző változat | ||
it:camswitch [2017/03/22 13:12] – létrehozva rblst | it:camswitch [2017/03/22 23:06] (aktuális) – rblst | ||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | <code bash> | ||
+ | # | ||
+ | |||
+ | LOG_FILE=/ | ||
+ | AWAY_THRESHOLD=3 | ||
+ | CHECK_INTERVAL=50 | ||
+ | CHECK_DURATION=7 | ||
+ | CAMERA_IP=192.168.100.7 | ||
+ | PROGRAM_NAME=$(basename $0) | ||
+ | function log { | ||
+ | time=$(date " | ||
+ | echo " | ||
+ | } | ||
+ | |||
+ | function check_presence { | ||
+ | chipolo_id=C18002ABD9578 | ||
+ | check_result=$(timeout --preserve-status --signal=SIGINT --foreground ${CHECK_DURATION}s | ||
+ | if [ $? -ne 0 ]; then | ||
+ | log " | ||
+ | systemctl restart hciuart.service | ||
+ | sleep $CHECK_INTERVAL | ||
+ | continue | ||
+ | fi | ||
+ | if [ $(echo " | ||
+ | | ||
+ | else | ||
+ | | ||
+ | fi | ||
+ | |||
+ | log " | ||
+ | #log "away count: $away_count" | ||
+ | #log "last status: $last_presence_status" | ||
+ | } | ||
+ | |||
+ | function switch_camera_off { | ||
+ | log " | ||
+ | echo -en ' | ||
+ | sleep 3 | ||
+ | echo -en ' | ||
+ | } | ||
+ | |||
+ | function switch_camera_on { | ||
+ | log " | ||
+ | echo -en ' | ||
+ | sleep 3 | ||
+ | echo -en ' | ||
+ | } | ||
+ | |||
+ | function check_camera { | ||
+ | ping -c3 -q $CAMERA_IP | ||
+ | if [ $? -eq 0 ]; then | ||
+ | camera_status=" | ||
+ | else | ||
+ | camera_status=" | ||
+ | fi | ||
+ | log " | ||
+ | } | ||
+ | |||
+ | away_count=0 | ||
+ | last_presence_status=present | ||
+ | |||
+ | |||
+ | ######################### | ||
+ | |||
+ | log " | ||
+ | |||
+ | trap 'log " | ||
+ | while true; do | ||
+ | |||
+ | check_presence | ||
+ | | ||
+ | if [ " | ||
+ | if [ $away_count -ne $AWAY_THRESHOLD ]; then | ||
+ | away_count=$((away_count+1)) | ||
+ | else | ||
+ | check_camera | ||
+ | if [ " | ||
+ | switch_camera_on | ||
+ | fi | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | if [ " | ||
+ | #if [ $away_count -ge $AWAY_THRESHOLD ]; then | ||
+ | check_camera | ||
+ | if [ " | ||
+ | switch_camera_off | ||
+ | sleep 3 | ||
+ | check_camera | ||
+ | fi | ||
+ | if [ " | ||
+ | away_count=0 | ||
+ | fi | ||
+ | #fi | ||
+ | fi | ||
+ | |||
+ | sleep $CHECK_INTERVAL | ||
+ | last_presence_status=$presence_status | ||
+ | done | ||
+ | </ |