last_send = float(conf.get('TWITTER', 'last_send')) periodicity = float(conf.get('TWITTER', 'periodicity'))*60 if (now-last_send) > periodicity: conf.set('TWITTER', 'last_send', str(now)) send_twitter(error) #end send mail and twitter #calculations if conf.get('STARTUP', 'nmea_mag_var')=='1' or conf.get('STARTUP', 'nmea_hdt')=='1' or conf.get('STARTUP', 'nmea_rot')=='1' or conf.get('STARTUP', 'tw_stw')=='1' or conf.get('STARTUP', 'tw_sog')=='1': time.sleep(float(conf.get('STARTUP', 'nmea_rate_cal'))) accuracy=float(conf.get('STARTUP', 'cal_accuracy')) now=time.time() # refresh values position =[a.validate('Lat',now,accuracy), a.Lat[3], a.validate('Lon',now,accuracy), a.Lon[3]] date = a.validate('Date',now,accuracy) if not date: date = datetime.date.today() heading_m = a.validate('HDM',now,accuracy) mag_var = [a.validate('Var',now,accuracy), a.Var[3]] if not mag_var[0]: mag_var = calculate_mag_var(position,date) heading_t = a.validate('HDT',now,accuracy) if not heading_t: if heading_m and mag_var[0]: var=mag_var[0] if mag_var[1]=='W':var=var*-1 heading_t=heading_m+var if heading_t>360: heading_t=heading_t-360 if heading_t<0: heading_t=360+heading_t STW = a.validate('STW',now,accuracy) AWS = a.validate('AWS',now,accuracy)
mag_var=[var*-1,'W'] except: mag_var=['',''] else: mag_var=['',''] return mag_var thread1=threading.Thread(target=parse_nmea) thread1.start() sent=time.time() # loop while True: #calculations time.sleep(0.01) now=time.time() # refresh values position =[a.validate('Lat',now,accuracy), a.DataList[a.getDataListIndex('Lat')][3], a.validate('Lon',now,accuracy), a.DataList[a.getDataListIndex('Lon')][3]] date = a.validate('Date',now,accuracy) if not date: date = datetime.date.today() heading_m = a.validate('HDM',now,accuracy) if a.DataList[a.getDataListIndex('Var')][5] == 'OC': mag_var=['',''] else: mag_var = [a.validate('Var',now,accuracy), a.DataList[a.getDataListIndex('Var')][3]] if not mag_var[0]: mag_var = calculate_mag_var(position,date) if a.DataList[a.getDataListIndex('HDT')][5] == 'OC': heading_t='' else: heading_t = a.validate('HDT',now,accuracy) if not heading_t: if heading_m and mag_var[0]: var=mag_var[0] if mag_var[1]=='W':var=var*-1 heading_t=heading_m+var if heading_t>360: heading_t=heading_t-360 if heading_t<0: heading_t=360+heading_t