From 1d4ae602f79b46b3104ecbbd362c257fd2862831 Mon Sep 17 00:00:00 2001 From: Michal Fratczak Date: Fri, 17 Apr 2020 15:04:38 +0200 Subject: [PATCH] Camera WIP. camera.service. Always send SSDV. --- camera/camera.py | 6 ++++-- camera/camera.service | 20 ++++++++++++++++++++ tracker/code/main/dynamics_t.h | 1 + tracker/code/main/main.cpp | 5 +++-- tracker/code/system_d/tracker.service | 2 +- 5 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 camera/camera.service diff --git a/camera/camera.py b/camera/camera.py index 6e9d12f..fba5b3f 100644 --- a/camera/camera.py +++ b/camera/camera.py @@ -66,6 +66,7 @@ def prog_opts(): parser.add_argument('--cam_flip_v', dest='cam_flip_v', action='store', type=int) parser.add_argument('--cam_ssdv_res', dest='cam_ssdv_res', action='store', type=int) parser.add_argument('--cam_video_dur', dest='cam_video_dur', action='store', type=int) + parser.add_argument('--cam_snapshot_interval', dest='cam_snapshot_interval', action='store', type=int) args = parser.parse_args() ret = { @@ -88,6 +89,7 @@ def prog_opts(): if args.cam_flip_v: ret['cam_flip_v'] = args.cam_flip_v if args.cam_ssdv_res: ret['cam_ssdv_res'] = args.cam_ssdv_res if args.cam_video_dur: ret['cam_video_dur'] = args.cam_video_dur + if args.cam_snapshot_interval: ret['cam_snapshot_interval'] = args.cam_snapshot_interval # pprint(ret) @@ -241,10 +243,10 @@ def SSDV_DeliverLoop(callsign, out_ssdv_path, res): continue if os.path.isfile(out_ssdv_path): - print("SSDV_DeliverLoop: Output SSDV still exists.") continue ssdv_in = PHOTO_ARR.pop() + print("Exporting new SSDV image:", ssdv_in) ConvertToSSDV( ssdv_in, out_ssdv_path, res, callsign, image_id) image_id += 1 @@ -322,7 +324,7 @@ def CameraLoop(session_dir, opts): # video clip print("Video") video_duration_secs = int( opts['cam_video_dur'] ) - snapshot_interval_secs = 3 + snapshot_interval_secs = int( opts['cam_snapshot_interval'] ) CAMERA.resolution = (1280, 720) CAMERA.start_recording( next_path(video_dir, 'h264')) diff --git a/camera/camera.service b/camera/camera.service new file mode 100644 index 0000000..8a2ff39 --- /dev/null +++ b/camera/camera.service @@ -0,0 +1,20 @@ + +# cp ./camera.service /etc/systemd/system/ +# systemctl enable camera.service +# systemctl start camera.service +# journalctl -u camera + +[Unit] +Description=piZero tracker camera +After=network.target +StartLimitIntervalSec=0 + +[Service] +Type=simple +Restart=always +RestartSec=1 +User=root +ExecStart=python /boot/camera.py --config /boot/tracker.cfg + +[Install] +WantedBy=multi-user.target diff --git a/tracker/code/main/dynamics_t.h b/tracker/code/main/dynamics_t.h index 6400cb3..fc269e3 100644 --- a/tracker/code/main/dynamics_t.h +++ b/tracker/code/main/dynamics_t.h @@ -3,6 +3,7 @@ #include #include #include +#include // record value, min, max, dV/dT, averaged dV/dT // diff --git a/tracker/code/main/main.cpp b/tracker/code/main/main.cpp index cf9b928..c6e5afb 100644 --- a/tracker/code/main/main.cpp +++ b/tracker/code/main/main.cpp @@ -303,8 +303,9 @@ int main1(int argc, char** argv) // send SSDV image next packet // - if( G.gps_fix_age() < 20 - && G.dynamics_get("alt").dVdT() > -5 // not falling + if( true + // && G.gps_fix_age() < 20 + // && G.dynamics_get("alt").dVdT_avg() > -5 // not falling ) { if( !ssdv_tiles.size() && G.cli.ssdv_image.size() ) diff --git a/tracker/code/system_d/tracker.service b/tracker/code/system_d/tracker.service index 9fda1e9..6485ce8 100644 --- a/tracker/code/system_d/tracker.service +++ b/tracker/code/system_d/tracker.service @@ -14,7 +14,7 @@ Type=simple Restart=always RestartSec=1 User=root -ExecStart=/boot/tracker --config /boot/config.txt +ExecStart=/boot/tracker --config /boot/tracker.cfg [Install] WantedBy=multi-user.target