1 from datetime import datetime
3 path = "/scratch/July-2018/experimental_result/smarthome/"
4 #path = "/scratch/July-2018/experimental_result/standalone/"
6 #device = "dlink-plug/self-test"
7 #fileExperiment = "dlink-plug-nov-7-2018.timestamps"
8 #fileDetection = "device-side-detection"
9 #fileDetection = "phone-side-detection"
10 #device = "dlink-plug/timestamps"
11 #fileExperiment = "dlink-plug-smarthome-nov-8-2018.timestamps"
12 #fileDetection = "dlink-plug-smarthome-nov-8-2018.phone.wlan1.detections"
13 #fileDetection = "dlink-plug-smarthome-nov-8-2018.phone.eth0.detections"
14 #fileDetection = "dlink-plug-smarthome-nov-8-2018.device.eth0.detections"
17 #device = "tplink-plug/self-test"
18 #fileExperiment = "tplink-plug-nov-8-2018.timestamps"
19 #fileDetection = "device-side-detection"
20 #fileDetection = "phone-side-detection"
21 #device = "tplink-plug/timestamps"
22 #fileExperiment = "tplink-plug-smarthome-nov-9-2018.timestamps"
23 #fileDetection = "tplink-plug-smarthome-nov-9-2018.eth0.device.detections"
24 #fileDetection = "tplink-plug-smarthome-nov-9-2018.wlan1.phone.detections"
27 #device = "dlink-siren/self-test"
28 #fileExperiment = "dlink-siren-nov-9-2018.timestamps"
29 #fileDetection = "phone-side-detection"
30 #device = "dlink-siren/timestamps"
31 #fileExperiment = "dlink-siren-smarthome-nov-10-2018.timestamps"
32 #fileDetection = "dlink-siren-smarthome-nov-10-2018.eth0.phone.detections"
35 #device = "kwikset-doorlock/self-test"
36 #fileExperiment = "kwikset-doorlock-nov-10-2018.timestamps"
37 #fileDetection = "phone-side-detection"
38 #device = "kwikset-doorlock/timestamps"
39 #fileExperiment = "kwikset-doorlock-smarthome-nov-10-2018.timestamps"
40 #fileDetection = "kwikset-doorlock-smarthome-nov-10-2018.eth0.phone.detections"
43 #device = "st-plug/self-test"
44 #fileExperiment = "st-plug-nov-13-2018.timestamps"
45 #fileDetection = "phone-side-detection"
46 device = "st-plug/timestamps"
47 fileExperiment = "st-plug-smarthome-nov-13-2018.timestamps"
48 fileDetection = "st-plug-smarthome-nov-13-2018.eth0.phone.detections"
52 #device = "arlo-camera/self-test"
53 #fileExperiment = "arlo-camera-aug-10-2018.timestamps"
54 #fileDetection = "detection-on-training-phone-side"
56 #device = "blossom-sprinkler/self-test"
57 #fileExperiment = "blossom-sprinkler-aug-13-2018.timestamps"
58 #fileDetection = "detection-on-training-device-side"
60 #device = "nest-thermostat/self-test"
61 #fileExperiment = "nest-aug-15-2018.timestamps"
62 #fileDetection = "detection-on-training-phone-side"
64 #device = "hue-bulb/self-test"
65 #fileExperiment = "hue-bulb-aug-7-2018.timestamps"
66 #fileDetection = "detection-on-training-phone-side"
68 #device = "tplink-bulb/self-test"
69 #fileExperiment = "tplink-bulb-aug-3-2018.timestamps"
70 #fileDetection = "detection-on-training-phone-side"
72 #device = "wemo-insight-plug/self-test"
73 #fileExperiment = "wemo-insight-july-31-2018.timestamps"
74 #fileDetection = "detection-on-training-device-side"
76 TIME_WINDOW = 15 # detection/signature window of 15 seconds
77 #NEG_TIME_WINDOW = -15 # detection/signature window of 15 seconds
79 # Open training timestamps file and store into a list
80 with open(path + device + "/" + fileExperiment, "r") as experiment:
82 for line in experiment:
83 # Format "%m/%d/%Y %I:%M:%S %p"
84 tsE = datetime.strptime(line, "%m/%d/%Y %I:%M:%S %p\n")
85 tsExperimentList.append(tsE)
87 # Open detection timestamps file and store into a list
88 with open(path + device + "/" + fileDetection, "r") as detection:
90 for line in detection:
91 # Format "%b %d, %Y %I:%M:%S %p"
92 tsD = datetime.strptime(line, "%b %d, %Y %I:%M:%S %p\n")
93 tsDetectionList.append(tsD)
95 if (len(tsExperimentList) > len(tsDetectionList)):
96 maxTimestamps = len(tsExperimentList)
98 maxTimestamps = len(tsDetectionList)
102 while i < maxTimestamps:
103 if(len(tsExperimentList) <= i or len(tsDetectionList) <= j):
106 tsE = tsExperimentList[i]
107 tsD = tsDetectionList[j]
108 # Detection is always a bit later than training trigger
111 #print("tsE: " + str(tsE) + " - tsD: " + str(tsD) + " - delta1: " + str(delta1.seconds) + " - delta2: " + str(delta2.seconds))
112 # The following happens when we could detect less triggers than the experiment
113 if (delta1.seconds > TIME_WINDOW and delta2.seconds > TIME_WINDOW):
114 print("Missing trigger at line: " + str(i) + ", t_experiment: " + str(tsE) + " and t_detection: " + str(tsD))
117 # The following should not happen (we have more detected triggers than the experiment)
118 #elif (delta.seconds < NEG_TIME_WINDOW):
119 # print("Mismatch at t_experiment: " + str(tsE) + " and t_detection: " + str(tsD))
124 print("Done parsing: " + str(i) + " lines")