X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Extractor%2FExtractorScript.py;h=53ba8b2f769dda648223d937591ab900749f05d3;hb=edbe95f550e8d70ffc92f9afaf79b80ed9243c53;hp=350bdee428c2cef4d233986bf28575a3b490a427;hpb=6918d9fc27dcd56ee0e1a77702238b8f2b470b82;p=smartthings-infrastructure.git diff --git a/Extractor/ExtractorScript.py b/Extractor/ExtractorScript.py index 350bdee..53ba8b2 100644 --- a/Extractor/ExtractorScript.py +++ b/Extractor/ExtractorScript.py @@ -15,7 +15,6 @@ app2Subscribe = False # Mapping for event type and number of events # e.g., switch has 2 events: on and off eventTypeCounterMap = {'lock': 2, - 'unlock' : 1, 'nfcTouch' : 1, 'app' : 1, 'button' : 2, @@ -40,16 +39,16 @@ eventTypeCounterMap = {'lock': 2, 'sunriseTime' : 1, 'acceleration' : 2, 'sleeping' : 2, - 'goal' : 1, - 'steps' : 1, + 'goal' : 2, + 'steps' : 2, 'color' : 1, 'colorTemperature' : 1, 'hue' : 1, 'saturation' : 1, 'energy' : 1, - 'power' : 1, + 'power' : 2, 'illuminance' : 1, - 'humidity' : 1, + 'humidity' : 2, 'alarm' : 4, 'contact' : 2, 'status' : 3, @@ -57,10 +56,11 @@ eventTypeCounterMap = {'lock': 2, 'trackDescription' : 1, 'trackData' : 1, 'mute' : 2, - 'temperature' : 1, + 'temperature' : 2, 'heatingSetpoint' : 1, 'coolingSetpoint' : 1, - 'thermostatSetpoint' : 1} + 'thermostatSetpoint' : 1, + 'threeAxis' : 1} # Mapping for specific event types eventTypesMap = {'alarm.both': 'alarm', @@ -213,7 +213,10 @@ def ExtractFunctions(F, appName): #print "DEBUG: %s - %s" % (variable, Temp) #print capabilityMap #print "DEBUG: location variable: %s" % Temp - + + #This is a bogus event, just skip it... + if Temp == "unlock": + continue #Translate and reduce through mapping if Temp in eventTypesMap.keys(): Temp = eventTypesMap[Temp] @@ -304,6 +307,7 @@ def CountEvents(): global eventList numOfActualEvents = 0 #print "DEBUG: eventlist: %d" % len(eventList) + #print "DEBUG: eventlist: %s" % eventList for event in eventList: #print "DEBUG: Event: %s %d" % (event, eventTypeCounterMap[event]) numOfActualEvents = numOfActualEvents + eventTypeCounterMap[event] @@ -330,7 +334,12 @@ def ExtractEvents(extractedEvents): #print "DEBUG: App1: %d" % indexApp1 #print "DEBUG: App2: %d" % indexApp2 #print "DEBUG: eventList: %d" % len(eventList) - isApp1 = True + #print eventAppList + #print eventList + if indexApp2Start > 0: + isApp1 = True + else: + isApp1 = False while counter < numOfActualEvents: # Interleave events from App1 and App2 if isApp1 is True: @@ -358,9 +367,6 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "unlock": - #Don't do anything for this case - counter = counter - 1 elif eventList[i] == "nfcTouch": event = open("eventSimulator/nfcTouchEvent.groovy", "r") for line in event: @@ -654,6 +660,8 @@ def ExtractEvents(extractedEvents): eventVarCounterMap[eventList[i]] = eventVarCount + 1 capability = capabilityMap[variable[eventVarCount]] #Write two events subsequently + print("//////////////////////") + print(capability) if capability == "capability.switch": event = open("eventSimulator/switchOnEvent.groovy", "r") elif capability == "capability.switchLevel": @@ -736,36 +744,42 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "acceleration.active": - event = open("eventSimulator/accelerationDefaultActiveEvent.groovy", "r") + elif eventList[i] == "sleeping": + #Write two events subsequently + event = open("eventSimulator/sleepSleepingEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "acceleration.inactive": - event = open("eventSimulator/accelerationDefaultInactiveEvent.groovy", "r") + extractedEvents.write("\n\t\t\tbreak\n") + counter = counter + 1 + extractedEvents.write("\t\tcase %d:\n" % counter) + event = open("eventSimulator/sleepNotSleepingEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "sleeping": + elif eventList[i] == "goal": #Write two events subsequently - event = open("eventSimulator/sleepSleepingEvent.groovy", "r") + event = open("eventSimulator/stepGoalHighEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() extractedEvents.write("\n\t\t\tbreak\n") counter = counter + 1 extractedEvents.write("\t\tcase %d:\n" % counter) - event = open("eventSimulator/sleepNotSleepingEvent.groovy", "r") + event = open("eventSimulator/stepGoalLowEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "goal": - event = open("eventSimulator/stepGoalEvent.groovy", "r") + elif eventList[i] == "steps": + #Write two events subsequently + event = open("eventSimulator/stepStepsHighEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() - elif eventList[i] == "steps": - event = open("eventSimulator/stepStepsEvent.groovy", "r") + extractedEvents.write("\n\t\t\tbreak\n") + counter = counter + 1 + extractedEvents.write("\t\tcase %d:\n" % counter) + event = open("eventSimulator/stepStepsLowEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() @@ -795,7 +809,15 @@ def ExtractEvents(extractedEvents): extractedEvents.write(line) event.close() elif eventList[i] == "power": - event = open("eventSimulator/powerMeterEvent.groovy", "r") + #Write two events subsequently + event = open("eventSimulator/powerMeterHighPowerEvent.groovy", "r") + for line in event: + extractedEvents.write(line) + event.close() + extractedEvents.write("\n\t\t\tbreak\n") + counter = counter + 1 + extractedEvents.write("\t\tcase %d:\n" % counter) + event = open("eventSimulator/powerMeterLowPowerEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() @@ -805,7 +827,14 @@ def ExtractEvents(extractedEvents): extractedEvents.write(line) event.close() elif eventList[i] == "humidity": - event = open("eventSimulator/humidityMeasurementEvent.groovy", "r") + event = open("eventSimulator/humidityHighMeasurementEvent.groovy", "r") + for line in event: + extractedEvents.write(line) + event.close() + extractedEvents.write("\n\t\t\tbreak\n") + counter = counter + 1 + extractedEvents.write("\t\tcase %d:\n" % counter) + event = open("eventSimulator/humidityLowMeasurementEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() @@ -900,6 +929,8 @@ def ExtractEvents(extractedEvents): event = open("eventSimulator/switchLevelEvent.groovy", "r") elif capability == "capability.colorControl": event = open("eventSimulator/colorLevelChangeEvent.groovy", "r") + elif capability == "capability.switch": + event = open("eventSimulator/switchLevelChangeEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() @@ -936,10 +967,21 @@ def ExtractEvents(extractedEvents): eventVarCount = eventVarCounterMap[eventList[i]] eventVarCounterMap[eventList[i]] = eventVarCount + 1 capability = capabilityMap[variable[eventVarCount]] + #Write two events subsequently + if capability == "capability.thermostat": + event = open("eventSimulator/temperatureHighEvent.groovy", "r") + elif capability == "capability.temperatureMeasurement": + event = open("eventSimulator/temperatureHighMeasurementEvent.groovy", "r") + for line in event: + extractedEvents.write(line) + event.close() + extractedEvents.write("\n\t\t\tbreak\n") + counter = counter + 1 + extractedEvents.write("\t\tcase %d:\n" % counter) if capability == "capability.thermostat": - event = open("eventSimulator/temperatureEvent.groovy", "r") + event = open("eventSimulator/temperatureLowEvent.groovy", "r") elif capability == "capability.temperatureMeasurement": - event = open("eventSimulator/temperatureMeasurementEvent.groovy", "r") + event = open("eventSimulator/temperatureLowMeasurementEvent.groovy", "r") for line in event: extractedEvents.write(line) event.close() @@ -958,6 +1000,11 @@ def ExtractEvents(extractedEvents): for line in event: extractedEvents.write(line) event.close() + elif eventList[i] == "threeAxis": + event = open("eventSimulator/threeAxisChangeEvent.groovy", "r") + for line in event: + extractedEvents.write(line) + event.close() ###TODO: Add more events later extractedEvents.write("\n\t\t\tbreak\n")