This commit is contained in:
2025-09-04 22:48:15 -04:00
commit 4cbdb00e14
51 changed files with 1709 additions and 0 deletions

103
distanceTracker.py Executable file
View File

@@ -0,0 +1,103 @@
import sys
import serial
import time
import math
import traceback
from subprocess import check_output, call
import syslog
from db_conn import connect
import dateutil.parser
from datetime import timedelta, datetime
sys.path.append('/home/thebears/Nextcloud/Designs/NuggetTracker/CommonCode/')
from track import Temperature, VerticalWheel, ActivityLogger, Weight, BaseSensorPost, HorizontalWheel
import os
from sqlalchemy import func
import syslog
import redis
do_break = False
while True:
try:
sq = connect()
do_break = True;
except:
syslog.syslog("Failed to connect, waiting 1 second and trying again")
time.sleep(1)
if do_break:
break
curr_time = datetime.now()
last_date = datetime(curr_time.year, curr_time.month, curr_time.day, 18, 0, 0)
if last_date > curr_time:
curr_time = datetime.now() - timedelta(days=1)
last_date = datetime(curr_time.year, curr_time.month, curr_time.day, 18, 0, 0)
r = redis.StrictRedis(host='192.168.1.242', port=6379, db=1)
os.makedirs('/dev/shm/winslow/', exist_ok=True)
call(['chmod','777','/dev/shm/winslow/'])
res = sq['s'].query(func.count(sq['t']['horizontalwheel'].c.transittime)).filter(sq['t']['horizontalwheel'].c.timestamp > last_date).all()
total_counts = res[0][0]
r.set('nugget_run_counts', total_counts)
#1500 turns is 1/4 mile
threshold_for_next_mealie = 1500
flipped_stuff = list()
bins_per_day = 18
last_iter = min([int(math.floor(total_counts / threshold_for_next_mealie)),bins_per_day])
while True:
do_rotate = False
next_date = last_date + timedelta(days = 1)
if datetime.now() > next_date:
if next_date not in flipped_stuff:
do_rotate = True
if do_rotate is True:
curr_time = datetime.now()
last_date = datetime(curr_time.year, curr_time.month, curr_time.day, 18, 0, 0)
flipped_stuff.append(last_date)
syslog.syslog('Resetting time to '+str(last_date))
last_iter = 0
r.set('nugget_run_counts', 0)
# res = sq['s'].query(func.count(sq['t']['horizontalwheel'].c.transittime)).filter(sq['t']['horizontalwheel'].c.timestamp > last_date).all()
# total_counts = res[0][0]
total_counts = int(r.get('nugget_run_counts'))
curr_iter = min([int(math.floor(total_counts / threshold_for_next_mealie)),bins_per_day])
syslog.syslog('Total: '+str(total_counts)+' Current bin: '+str(curr_iter)+ ' Redis Count:' + str(total_counts))
if curr_iter != last_iter:
last_iter = curr_iter
open('/dev/shm/winslow/mealies2_open.txt','w').close()
call(['chmod','777','/dev/shm/winslow'])
syslog.syslog("OPENING MEALIES")
time.sleep(5)