# Mapping for event type and number of events
# e.g., switch has 2 events: on and off
eventTypeCounterMap = {'lock': 2,
- 'unlock' : 1,
- 'contact.open' : 1,
- 'contact.closed' : 1,
- 'tamper.tampered' : 1,
'nfcTouch' : 1,
'app' : 1,
'button' : 2,
'water.dry' : 1,
'water.wet' : 1,
'presence' : 2,
- 'presence.present' : 1,
'doorState' : 2,
'motion' : 2,
- 'motion.active' : 1,
- 'motion.inactive' : 1,
'smoke' : 3,
- 'smoke.clear' : 1,
- 'smoke.detected' : 1,
- 'smoke.tested' : 1,
'carbonMonoxide' : 3,
- 'carbonMonoxide.clear' : 1,
- 'carbonMonoxide.detected' : 1,
- 'carbonMonoxide.tested' : 1,
'battery' : 1,
'thermostatMode' : 5,
'thermostatFanMode' : 5,
'switch' : 2,
'location' : 3,
'mode' : 3,
+ 'sunset' : 1,
+ 'sunsetTime' : 1,
+ 'sunrise' : 1,
+ 'sunriseTime' : 1,
'acceleration' : 2,
- 'acceleration.active' : 1,
- 'acceleration.inactive' : 1,
'sleeping' : 2,
- 'goal' : 1,
- 'steps' : 1,
+ 'goal' : 2,
+ 'steps' : 2,
'color' : 1,
'colorTemperature' : 1,
'hue' : 1,
'saturation' : 1,
'energy' : 1,
- 'power' : 1,
- 'illuminance' : 1,
- 'humidity' : 1,
+ 'power' : 2,
+ 'illuminance' : 2,
+ 'humidity' : 2,
'alarm' : 4,
'contact' : 2,
'status' : 3,
'trackDescription' : 1,
'trackData' : 1,
'mute' : 2,
- 'temperature' : 1,
+ 'temperature' : 2,
'heatingSetpoint' : 1,
'coolingSetpoint' : 1,
- 'thermostatSetpoint' : 1}
+ 'thermostatSetpoint' : 1,
+ 'threeAxis' : 1,
+ 'carbonDioxide' : 1,
+ 'consumableStatus' : 1,
+ 'pH' : 1,
+ 'pressure': 1,
+ 'shock': 1,
+ 'lqi': 1,
+ 'rssi': 1,
+ 'sound': 1,
+ 'soundPressureLevel' : 1,
+ 'tamper' : 1,
+ 'ultravioletIndex': 1,
+ 'voltage': 1,
+ 'windowShade': 1,
+ 'touched': 1}
+
+# Mapping for specific event types
+eventTypesMap = {'alarm.both': 'alarm',
+ 'alarm.siren' : 'alarm',
+ 'alarm.strobe' : 'alarm',
+ 'alarm.off' : 'alarm',
+ 'contact.open' : 'contact',
+ 'contact.closed' : 'contact',
+ 'tamper.tampered' : 'contact',
+ 'doorState.open' : 'doorState',
+ 'doorState.closed' : 'doorState',
+ 'position' : 'location',
+ 'mode' : 'location',
+ 'mode.away' : 'location',
+ 'mode.home' : 'location',
+ 'mode.night' : 'location',
+ 'lock.locked' : 'lock',
+ 'lock.unlocked' : 'lock',
+ 'motion.active' : 'motion',
+ 'motion.inactive' : 'motion',
+ 'status.playing' : 'status',
+ 'status.stopped' : 'status',
+ 'status.paused' : 'status',
+ 'mute.muted' : 'mute',
+ 'mute.unmuted' : 'mute',
+ 'presence.present' : 'presence',
+ 'presence.not present' : 'presence',
+ 'presence.not' : 'presence',
+ 'smoke.detected' : 'smoke',
+ 'smoke.clear' : 'smoke',
+ 'smoke.tested' : 'smoke',
+ 'carbonMonoxide.detected' : 'carbonMonoxide',
+ 'carbonMonoxide.clear' : 'carbonMonoxide',
+ 'carbonMonoxide.tested' : 'carbonMonoxide',
+ 'thermostatMode.cool' : 'thermostatMode',
+ 'thermostatMode.auto' : 'thermostatMode',
+ 'thermostatMode.emergencyHeat' : 'thermostatMode',
+ 'thermostatMode.heat' : 'thermostatMode',
+ 'thermostatMode.off' : 'thermostatMode',
+ 'thermostatFanMode.auto' : 'thermostatFanMode',
+ 'thermostatFanMode.fanCirculate' : 'thermostatFanMode',
+ 'thermostatFanMode.circulate' : 'thermostatFanMode',
+ 'thermostatFanMode.fanOn' : 'thermostatFanMode',
+ 'thermostatFanMode.on' : 'thermostatFanMode',
+ 'fanMode' : 'thermostatFanMode',
+ 'fanMode.auto' : 'thermostatFanMode',
+ 'fanMode.fanCirculate' : 'thermostatFanMode',
+ 'fanMode.circulate' : 'thermostatFanMode',
+ 'fanMode.fanOn' : 'thermostatFanMode',
+ 'fanMode.on' : 'thermostatFanMode',
+ 'switch.on' : 'switch',
+ 'switch.off' : 'switch',
+ 'button.pushed' : 'button',
+ 'button.held' : 'button',
+ 'acceleration.active' : 'acceleration',
+ 'acceleration.inactive' : 'acceleration',
+ 'sleeping.sleeping' : 'sleeping',
+ 'sleeping.not sleeping' : 'sleeping',
+ 'water.dry' : 'water',
+ 'water.wet' : 'water'}
def GetToken(f):
global readyToReturn
def ExtractFunctions(F, appName):
global eventList
global eventAppList
+ global eventTypesMap
global app1Subscribe
global app2Subscribe
Temp = GetToken(F)
variable = Temp
while (Temp != "\"" and Temp != "app" and Temp != "location"):
Temp = GetToken(F)
+ if Temp == "location":
+ # See if we have another case for location
+ Temp = GetToken(F) # Get ','
+ Temp = GetToken(F) # Get '"'
+ if Temp == "\"":
+ Temp = GetToken(F)
+ else:
+ # This is the special case where we will see, e.g., sunset, sunrise, etc.
+ Temp = "location"
if Temp == "\"":
- Temp = GetToken(F)
+ Temp = GetToken(F)
#print "DEBUG: %s - %s" % (variable, Temp)
#print capabilityMap
- if Temp == "app" or Temp == "location":
+ #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]
+ if Temp == "app" or Temp == "location" or Temp == "mode" or Temp == "sunset" or Temp == "sunrise" or Temp == "sunsetTime" or Temp == "sunriseTime":
if Temp not in eventList:
eventList.append(Temp)
if (appName == "App1"):
Temp == "capability.switchLevel" or
Temp == "capability.illuminanceMeasurement" or
Temp == "capability.colorControl" or
+ Temp == "capability.colorTemperature" or
#Motion related
Temp == "capability.motionSensor" or
Temp == "capability.accelerationSensor" or
def AnalyzePhysicalInteraction(app1Capab, app2Capab):
#Light
if ("capability.illuminanceMeasurement" in app1Capab) and ("capability.switch" in app2Capab or
- "capability.switchLevel" in app2Capab or "capability.colorControl" in app2Capab):
+ "capability.switchLevel" in app2Capab or "capability.colorControl" or "capability.colorTemperature" in app2Capab):
print ("\nWARNING: Potential PHYSICAL CONFLICT (light) detected between App1 and App2!\n")
#Motion
# TODO: Technically this is not entirely precise since we need to be able to detect that the other app creates motion
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]
return numOfActualEvents
extractedEvents.write("\tswitch(eventNumber) {\n")
counter = 0
indexApp1 = 0
- indexApp2 = eventAppList.index("App2")
+ if "App2" in eventAppList:
+ indexApp2 = eventAppList.index("App2")
+ else:
+ indexApp2 = len(eventList)
indexApp2Start = indexApp2
#print "DEBUG: App1: %d" % indexApp1
#print "DEBUG: App2: %d" % indexApp2
#print "DEBUG: eventList: %d" % len(eventList)
- isApp1 = True
- while counter < len(eventList):
+ #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:
i = indexApp1
indexApp2 = indexApp2 + 1
if indexApp1 < indexApp2Start:
isApp1 = True
- print "DEBUG: i: %d" % i
+ #print "DEBUG: i: %d" % i
extractedEvents.write("\t\tcase %d:\n" % counter)
if eventList[i] == "lock":
#Write two events subsequently
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] == "contact.open":
- event = open("eventSimulator/contactOpenEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "contact.closed":
- event = open("eventSimulator/contactClosedEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "tamper.tampered":
- #Write two events subsequently
- event = open("eventSimulator/tamperTamperedOpenEvent.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/tamperTamperedClosedEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "nfcTouch":
event = open("eventSimulator/nfcTouchEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
elif eventList[i] == "button":
+ #Check which capability
+ variable = eventVarMap[eventList[i]]
+ if eventList[i] not in eventVarCounterMap.keys():
+ eventVarCounterMap[eventList[i]] = 1
+ eventVarCount = 0
+ else:
+ eventVarCount = eventVarCounterMap[eventList[i]]
+ eventVarCounterMap[eventList[i]] = eventVarCount + 1
+ capability = capabilityMap[variable[eventVarCount]]
#Write two events subsequently
- event = open("eventSimulator/buttonPushedEvent.groovy", "r")
+ if capability == "capability.button":
+ event = open("eventSimulator/buttonHeldEvent.groovy", "r")
+ elif capability == "device.aeonKeyFob":
+ event = open("eventSimulator/aeonKeyFobHeldEvent.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/buttonHeldEvent.groovy", "r")
+ if capability == "capability.button":
+ event = open("eventSimulator/buttonPushedEvent.groovy", "r")
+ elif capability == "device.aeonKeyFob":
+ event = open("eventSimulator/aeonKeyFobPushedEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "water.dry":
- event = open("eventSimulator/waterDefaultDryEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "water.wet":
- event = open("eventSimulator/waterDefaultWetEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "presence":
#Check which capability
variable = eventVarMap[eventList[i]]
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "presence.present": #Case for Touched event
- event = open("eventSimulator/presencePresencePresentEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "doorState":
#Write two events subsequently
event = open("eventSimulator/doorOpenEvent.groovy", "r")
extractedEvents.write(line)
event.close()
elif eventList[i] == "motion":
+ print("HERE????")
#Write two events subsequently
event = open("eventSimulator/motionActiveEvent.groovy", "r")
for line in event:
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "motion.active":
- event = open("eventSimulator/motionDefaultActiveEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "motion.inactive":
- event = open("eventSimulator/motionDefaultInactiveEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "smoke":
#Write three events subsequently
event = open("eventSimulator/smokeClearEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "smoke.clear":
- event = open("eventSimulator/smokeDefaultClearEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "smoke.detected":
- event = open("eventSimulator/smokeDefaultDetectedEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "smoke.tested":
- event = open("eventSimulator/smokeDefaultTestedEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "carbonMonoxide":
#Check which capability
variable = eventVarMap[eventList[i]]
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "carbonMonoxide.clear":
- #Check which capability
- variable = eventVarMap[eventList[i]]
- if eventList[i] not in eventVarCounterMap.keys():
- eventVarCounterMap[eventList[i]] = 1
- eventVarCount = 0
- else:
- eventVarCount = eventVarCounterMap[eventList[i]]
- eventVarCounterMap[eventList[i]] = eventVarCount + 1
- capability = capabilityMap[variable[eventVarCount]]
- if capability == "capability.smokeDetector":
- event = open("eventSimulator/smokeCarbonMonoxideDefaultClearEvent.groovy", "r")
- elif capability == "capability.carbonMonoxideDetector":
- event = open("eventSimulator/carbonMonoxideDefaultClearEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "carbonMonoxide.detected":
- #Check which capability
- variable = eventVarMap[eventList[i]]
- if eventList[i] not in eventVarCounterMap.keys():
- eventVarCounterMap[eventList[i]] = 1
- eventVarCount = 0
- else:
- eventVarCount = eventVarCounterMap[eventList[i]]
- eventVarCounterMap[eventList[i]] = eventVarCount + 1
- capability = capabilityMap[variable[eventVarCount]]
- if capability == "capability.smokeDetector":
- event = open("eventSimulator/smokeCarbonMonoxideDefaultDetectedEvent.groovy", "r")
- elif capability == "capability.carbonMonoxideDetector":
- event = open("eventSimulator/carbonMonoxideDefaultDetectedEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
- elif eventList[i] == "carbonMonoxide.tested":
- #Check which capability
- variable = eventVarMap[eventList[i]]
- if eventList[i] not in eventVarCounterMap.keys():
- eventVarCounterMap[eventList[i]] = 1
- eventVarCount = 0
- else:
- eventVarCount = eventVarCounterMap[eventList[i]]
- eventVarCounterMap[eventList[i]] = eventVarCount + 1
- capability = capabilityMap[variable[eventVarCount]]
- if capability == "capability.smokeDetector":
- event = open("eventSimulator/smokeCarbonMonoxideDefaultTestedEvent.groovy", "r")
- elif capability == "capability.carbonMonoxideDetector":
- event = open("eventSimulator/carbonMonoxideDefaultTestedEvent.groovy", "r")
- for line in event:
- extractedEvents.write(line)
- event.close()
elif eventList[i] == "battery":
#Check which capability
variable = eventVarMap[eventList[i]]
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":
event = open("eventSimulator/relaySwitchOnEvent.groovy", "r")
elif capability == "capability.colorControl":
event = open("eventSimulator/colorControlSwitchOnEvent.groovy", "r")
+ elif capability == "capability.colorTemperature":
+ event = open("eventSimulator/colorTemperatureSwitchOnEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
event = open("eventSimulator/relaySwitchOffEvent.groovy", "r")
elif capability == "capability.colorControl":
event = open("eventSimulator/colorControlSwitchOffEvent.groovy", "r")
+ elif capability == "capability.colorTemperature":
+ event = open("eventSimulator/colorTemperatureSwitchOffEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
for line in event:
extractedEvents.write(line)
event.close()
- elif eventList[i] == "mode":
- #Write three events subsequently
- event = open("eventSimulator/modeHomeEvent.groovy", "r")
+ elif eventList[i] == "sunrise":
+ event = open("eventSimulator/locationSunriseEvent.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/modeAwayEvent.groovy", "r")
+ elif eventList[i] == "sunset":
+ event = open("eventSimulator/locationSunsetEvent.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/modeNightEvent.groovy", "r")
+ elif eventList[i] == "sunsetTime":
+ event = open("eventSimulator/locationSunsetTimeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "sunriseTime":
+ event = open("eventSimulator/locationSunriseTimeEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
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()
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()
elif eventList[i] == "illuminance":
- event = open("eventSimulator/illuminanceMeasurementEvent.groovy", "r")
+ event = open("eventSimulator/illuminanceMeasurementLowEvent.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/illuminanceMeasurementHighEvent.groovy", "r")
for line in event:
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()
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()
eventVarCount = eventVarCounterMap[eventList[i]]
eventVarCounterMap[eventList[i]] = eventVarCount + 1
capability = capabilityMap[variable[eventVarCount]]
+ #Write two events subsequently
if capability == "capability.thermostat":
- event = open("eventSimulator/temperatureEvent.groovy", "r")
+ event = open("eventSimulator/temperatureHighEvent.groovy", "r")
elif capability == "capability.temperatureMeasurement":
- event = open("eventSimulator/temperatureMeasurementEvent.groovy", "r")
+ 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/temperatureLowEvent.groovy", "r")
+ elif capability == "capability.temperatureMeasurement":
+ event = open("eventSimulator/temperatureLowMeasurementEvent.groovy", "r")
for line in event:
extractedEvents.write(line)
event.close()
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()
+ elif eventList[i] == "carbonDioxide":
+ event = open("eventSimulator/carbonDioxideEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "consumableStatus":
+ event = open("eventSimulator/consumableStatusEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "pH":
+ event = open("eventSimulator/pHEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "pressure":
+ event = open("eventSimulator/pressureEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "shock":
+ event = open("eventSimulator/shockEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "lqi":
+ event = open("eventSimulator/lqiEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "rssi":
+ event = open("eventSimulator/rssiEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "sound":
+ event = open("eventSimulator/soundEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "soundPressureLevel":
+ event = open("eventSimulator/soundPressureLevelEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "tamper":
+ event = open("eventSimulator/tamperEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "voltage":
+ event = open("eventSimulator/voltageEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "ultravioletIndex":
+ event = open("eventSimulator/ultravioletIndexEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
+ elif eventList[i] == "windowShade":
+ event = open("eventSimulator/windowShadeEvent.groovy", "r")
+ for line in event:
+ extractedEvents.write(line)
+ event.close()
###TODO: Add more events later
extractedEvents.write("\n\t\t\tbreak\n")
#This is called Direct-Direct interaction and we do not model-check for this case
onlyTouchEvents = True
for item in eventList:
- if item != "nfcTouch" and item != "app":
+ if item != "nfcTouch" and item != "app" and item != "button":
onlyTouchEvents = False
if onlyTouchEvents is True and app1Subscribe is True and app2Subscribe is True:
# Write error log file