From aacaa068b054b3ed8e806a60a7736c3bde15d999 Mon Sep 17 00:00:00 2001 From: Skylar Grant Date: Tue, 25 Jun 2024 10:00:32 -0400 Subject: [PATCH] Added variables, moved setup to tl-control --- timelapse/tl-capture | 65 ++++++++++++++++---------------------------- timelapse/tl-control | 19 ++++++++++--- 2 files changed, 39 insertions(+), 45 deletions(-) diff --git a/timelapse/tl-capture b/timelapse/tl-capture index 136393a..7ba4fdf 100644 --- a/timelapse/tl-capture +++ b/timelapse/tl-capture @@ -1,13 +1,15 @@ #!/bin/bash + # Customizable variables -# Device -DEVICE="/dev/video0" -# Temporary output directory -TO_SYNC_DIR="/tmp/TL/to-sync" -SYNCED_DIR="/tmp/TL/synced" -# NAS Info +# Paths +IMG_DIR="/tmp/TL" NAS_MOUNT_DIR="/mnt/media" -NAS_SYNC_DIR="/TL/synced" +SYNC_DES_PATH="/TL/synced" +# Command variables +RESOLUTION="1920x1080" +DEVICE="/dev/video0" +FRAMES="1" +SKIPS="5" # Pre-script configurations # Generate the date for the filename @@ -16,43 +18,24 @@ DATE=$(date +"%Y-%m-%d_%H-%M") FILENAME="TL-$DATE.jpg" # Functions - -setup_dirs() { - # Check if To-Sync Directory exists and create it if not - if [[ ! -d $TO_SYNC_DIR ]]; then - echo "To-Sync directory doesn't exist, creating it now..." - mkdir -p $TO_SYNC_DIR - if [[ $? -eq 0 ]]; then - echo "Success!" - else - echo "Unable to create directory, exiting!" - exit 1 - fi - fi - - # Check of Synced Directory exists and create it if not - if [[ ! -d $SYNCED_DIR ]]; then - echo "Synced directory doesn't exist, creating it now..." - mkdir -p $SYNCED_DIR - if [[ $? -eq 0 ]]; then - echo "Success!" - else - echo "Unable to create directory, exiting!" - exit 1 - fi - fi -} - +# Capture an image and save it locally capture() { # Capture an image for the timelapse and save it to /tmp/TL-YYYY-MM-DD_HH-MM.jpg - fswebcam -r 1920x1080 -d /dev/video0 $TO_SYNC_DIR/$FILENAME.jpg -F 1 -S 5 + echo "Capturing image and saving it to $IMG_DIR/$FILENAME" + fswebcam -r "$RESOLUTION" -d "#DEVICE" "$IMG_DIR/$FILENAME" -F 1 -S 5 } - +# Sync images from local to a remote mounted storage device sync() { - local src="$TO_SYNC_DIR/" - # Sync TL images from Pi to NAS - rsync -avz + echo "Syncing $IMG_DIR to $SYNC_DES_PATH..." + rsync -av --progress --remove-source-files "$IMG_DIR/" "$NAS_MOUNT_DIR$SYNC_DES_PATH/" $1 + if [[ $? -eq 0 ]]; then + echo "Success" + else + echo "Unable to complete sync. Exiting" + exit 1 + fi } -setup_dirs -capture \ No newline at end of file +# Actually run everything +capture +sync \ No newline at end of file diff --git a/timelapse/tl-control b/timelapse/tl-control index 2a0bdaa..583c8a1 100644 --- a/timelapse/tl-control +++ b/timelapse/tl-control @@ -4,12 +4,12 @@ # Configuration Variables INSTALL_DIR="/usr/local/bin" FILE_LIST=("tl-capture" "tl-clean" "tl-control") -SYNC_SRC_PATH="/tmp/TL/to-sync" +IMG_DIR="/tmp/TL" SYNC_DES_PATH="/mnt/media/TL/to-process" # Cron CRON_DIR="/etc/cron.d" CRON_FILE="$CRON_DIR/timelapse" -CRON_FREQUENCY="*/15 * * * *" # Set by prompt +CRON_FREQUENCY="" # Set by prompt CRON_LOG_PATH="/var/log/${FILE_LIST[0]}.log" CRON_JOB="root $INSTALL_DIR/${FILE_LIST[0]} >> $CRON_LOG_PATH 2>&1" @@ -25,6 +25,17 @@ fi # Start Time Lapse start_tl() { + # Check if image directory exists and create if not + if [[ ! -d $IMG_DIR ]]; then + echo "Image directory doesn't exist, creating it now..." + mkdir -p $IMG_DIR + if [[ $? -eq 0 ]]; then + echo "Success!" + else + echo "Unable to create directory, exiting!" + exit 1 + fi + fi read -p "Image interval in minutes (1-59): " interval # Make sure the interval is valid 1-59 if [[ "$interval" =~ ^[1-9]$|^[1-5][0-9]$ ]]; then @@ -68,8 +79,8 @@ stop_tl() { # NAS Sync sync_nas() { - echo "Syncing $SYNC_SRC_PATH to $SYNC_DES_PATH..." - rsync -av --progress --remove-source-files "$SYNC_SRC_PATH" "$SYNC_DES_PATH" $1 + echo "Syncing $IMG_DIR to $SYNC_DES_PATH..." + rsync -av --progress --remove-source-files "$IMG_DIR" "$SYNC_DES_PATH" $1 if [[ $? -eq 0 ]]; then echo "Success" else