-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmonitor_speed.py
More file actions
57 lines (49 loc) · 2.1 KB
/
monitor_speed.py
File metadata and controls
57 lines (49 loc) · 2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
from datetime import datetime as dt
import req_osm
import record as rec
import global_params as gp
import time
def check_spd(now, max):
if now > max:
# print('nowSpeed = ' + str(now) + ' > ' + 'maxSpeed = ' +str(max))
return True
else:
# print('nowSpeed = ' + str(now) + ' <= ' + 'maxSpeed = ' +str(max))
return False
def monitor_speeding():
# spdFlag = False # initially not speeding
spdSttTime = 0
spdRoute = []
spdEntryName = ''
while True:
if gp.allReady:
break
while not gp.arriveDest:
[name, max] = req_osm.get_maxspeed(gp.lat, gp.lon)
if max != -1:
gp.maxSpeed = max
if name is not '':
gp.road_name = name
if (gp.spdFlag is not check_spd(gp.nowSpeed, gp.maxSpeed)):
if(gp.spdFlag == False): # speeding on
gp.spdFlag = True
spdSttTime = dt.now() # speeding start time
gp.rec_num += 1
spdEntryName = "{0}__{1}_speed".format(gp.fname, gp.rec_num)
spdRoute.append([spdSttTime.strftime('%Y-%m-%d %H:%M:%S.%f'), gp.lat, gp.lon, gp.road_name, gp.nowSpeed, gp.maxSpeed])
else: # speeding off
spdEndTime = dt.now()
spdDurTime = spdEndTime - spdSttTime
spdSttStr = spdSttTime.strftime('%Y-%m-%d %H:%M:%S')
spdEndStr = spdEndTime.strftime('%Y-%m-%d %H:%M:%S')
spdRoute.append([spdEndTime.strftime('%Y-%m-%d %H:%M:%S.%f'), gp.lat, gp.lon, gp.road_name, gp.nowSpeed, gp.maxSpeed])
rec.write_record(spdEntryName, behavior_type="speed", startTime=spdSttStr, endTime=spdEndStr, duration=str(spdDurTime), route=spdRoute)
spdRoute = []
gp.spdFlag = False
else:
if(gp.spdFlag == True):
spdRoute.append([dt.now().strftime('%Y-%m-%d %H:%M:%S.%f'), gp.lat, gp.lon, gp.road_name, gp.nowSpeed, gp.maxSpeed])
time.sleep(gp.DELTA)
if __name__=="__main__":
rec.create_record()
monitor_speeding()