X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=Extractor%2FExtractor.groovy;h=4607b7c89cd7916f2848fcbd776cd788fa792cec;hb=03a440398988fb06278b520824d6aa3be9b39d65;hp=e954203f163e6e9e7c2392ad1109d3849b17a16b;hpb=6b033926fc678d37f4509f6f86a6264803ef904f;p=smartthings-infrastructure.git diff --git a/Extractor/Extractor.groovy b/Extractor/Extractor.groovy index e954203..4607b7c 100644 --- a/Extractor/Extractor.groovy +++ b/Extractor/Extractor.groovy @@ -74,10 +74,14 @@ import ColorTemperature.ColorTemperature import ColorTemperature.ColorTemperatures import Button.Button import Button.Buttons +import ThreeAxis.ThreeAxis +import ThreeAxis.ThreeAxises +import Momentary.Momentary +import Momentary.Momentaries import Timer.SimulatedTimer //GlobalVariables -@Field def location = new LocationVar() +@Field def location = new LocationVar({}, true) //Settings variable defined to settings on purpose @Field def settings = [app: "app"] //Global variable for state[mode] @@ -288,6 +292,16 @@ def timeToday(String time, Object timeZone) { @Field def buttonObject0 @Field def buttonObject1 @Field def buttonObject2 +//Global Object for class three axis! +@Field threeAxisObjects = 0 +@Field def threeAxisObject0 +@Field def threeAxisObject1 +@Field def threeAxisObject2 +//Global Object for class momentary switch device! +@Field momentaryObjects = 0 +@Field def momentaryObject0 +@Field def momentaryObject1 +@Field def momentaryObject2 //Global variables @@ -388,6 +402,8 @@ def input(LinkedHashMap metaData, String name, String type, Closure Input) { find(Input) } +@Field chooseMode = 0 + //input linkedHashMap def input(LinkedHashMap metaData) { if (metaData.containsKey('title')) { @@ -406,22 +422,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1)\n") + globalObjects.append("@Field def lockObject = new Locks(sendEvent, 1, init)\n") if (lockObjects == 0) { lockObject0 = metaData['name'] - this[lockObject0] = new Locks({}, 1) + this[lockObject0] = new Locks({}, 1, true) } else if (lockObjects == 1) { lockObject1 = metaData['name'] - this[lockObject1] = new Locks({}, 1) + this[lockObject1] = new Locks({}, 1, true) } else if (lockObjects == 2) { lockObject2 = metaData['name'] - this[lockObject2] = new Locks({}, 1) + this[lockObject2] = new Locks({}, 1, true) } lockObjects=lockObjects+1 - settings.put(metaData['name'], new Locks({}, 1)) + settings.put(metaData['name'], new Locks({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class lock!\n") @@ -441,22 +457,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1)\n") + globalObjects.append("@Field def alarmObject = new Alarms(sendEvent, 1, init)\n") if (alarmObjects == 0) { alarmObject0 = metaData['name'] - this[alarmObject0] = new Alarms({}, 1) + this[alarmObject0] = new Alarms({}, 1, true) } else if (alarmObjects == 1) { alarmObject1 = metaData['name'] - this[alarmObject1] = new Alarms({}, 1) + this[alarmObject1] = new Alarms({}, 1, true) } else if (alarmObjects == 2) { alarmObject2 = metaData['name'] - this[alarmObject2] = new Alarms({}, 1) + this[alarmObject2] = new Alarms({}, 1, true) } alarmObjects=alarmObjects+1 - settings.put(metaData['name'], new Alarms({}, 1)) + settings.put(metaData['name'], new Alarms({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class alarm!\n") @@ -476,22 +492,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1)\n") + globalObjects.append("@Field def buttonObject = new Buttons(sendEvent, 1, init)\n") if (buttonObjects == 0) { buttonObject0 = metaData['name'] - this[buttonObject0] = new Buttons({}, 1) + this[buttonObject0] = new Buttons({}, 1, true) } else if (buttonObjects == 1) { buttonObject1 = metaData['name'] - this[buttonObject1] = new Buttons({}, 1) + this[buttonObject1] = new Buttons({}, 1, true) } else if (buttonObjects == 2) { buttonObject2 = metaData['name'] - this[buttonObject2] = new Buttons({}, 1) + this[buttonObject2] = new Buttons({}, 1, true) } buttonObjects=buttonObjects+1 - settings.put(metaData['name'], new Buttons({}, 1)) + settings.put(metaData['name'], new Buttons({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Button!\n") @@ -511,22 +527,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1)\n") + globalObjects.append("@Field def batteryObject = new Batteries(sendEvent, 1, init)\n") if (batteryObjects == 0) { batteryObject0 = metaData['name'] - this[batteryObject0] = new Batteries({}, 1) + this[batteryObject0] = new Batteries({}, 1, true) } else if (batteryObjects == 1) { batteryObject1 = metaData['name'] - this[batteryObject1] = new Batteries({}, 1) + this[batteryObject1] = new Batteries({}, 1, true) } else if (batteryObjects == 2) { batteryObject2 = metaData['name'] - this[batteryObject2] = new Batteries({}, 1) + this[batteryObject2] = new Batteries({}, 1, true) } batteryObjects=batteryObjects+1 - settings.put(metaData['name'], new Batteries({}, 1)) + settings.put(metaData['name'], new Batteries({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Battery!\n") @@ -546,22 +562,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1)\n") + globalObjects.append("@Field def beaconSensorObject = new BeaconSensors(sendEvent, 1, init)\n") if (beaconSensorObjects == 0) { beaconSensorObject0 = metaData['name'] - this[beaconSensorObject0] = new BeaconSensors({}, 1) + this[beaconSensorObject0] = new BeaconSensors({}, 1, true) } else if (beaconSensorObjects == 1) { beaconSensorObject1 = metaData['name'] - this[beaconSensorObject1] = new BeaconSensors({}, 1) + this[beaconSensorObject1] = new BeaconSensors({}, 1, true) } else if (beaconSensorObjects == 2) { beaconSensorObject2 = metaData['name'] - this[beaconSensorObject2] = new BeaconSensors({}, 1) + this[beaconSensorObject2] = new BeaconSensors({}, 1, true) } beaconSensorObjects=beaconSensorObjects+1 - settings.put(metaData['name'], new BeaconSensors({}, 1)) + settings.put(metaData['name'], new BeaconSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class beacon sensor!\n") @@ -581,22 +597,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1)\n") + globalObjects.append("@Field def carbonMonoxideDetectorObject = new CarbonMonoxideDetectors(sendEvent, 1, init)\n") if (carbonMonoxideDetectorObjects == 0) { carbonMonoxideDetectorObject0 = metaData['name'] - this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1) + this[carbonMonoxideDetectorObject0] = new CarbonMonoxideDetectors({}, 1, true) } else if (carbonMonoxideDetectorObjects == 1) { carbonMonoxideDetectorObject1 = metaData['name'] - this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1) + this[carbonMonoxideDetectorObject1] = new CarbonMonoxideDetectors({}, 1, true) } else if (carbonMonoxideDetectorObjects == 2) { carbonMonoxideDetectorObject2 = metaData['name'] - this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1) + this[carbonMonoxideDetectorObject2] = new CarbonMonoxideDetectors({}, 1, true) } carbonMonoxideDetectorObjects=carbonMonoxideDetectorObjects+1 - settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1)) + settings.put(metaData['name'], new CarbonMonoxideDetectors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class carbon monoxide detector!\n") @@ -616,22 +632,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1)\n") + globalObjects.append("@Field def colorTemperatureObject = new ColorTemperatures(sendEvent, 1, init)\n") if (colorTemperatureObjects == 0) { colorTemperatureObject0 = metaData['name'] - this[colorTemperatureObject0] = new ColorTemperatures({}, 1) + this[colorTemperatureObject0] = new ColorTemperatures({}, 1, true) } else if (colorTemperatureObjects == 1) { colorTemperatureObject1 = metaData['name'] - this[colorTemperatureObject1] = new ColorTemperatures({}, 1) + this[colorTemperatureObject1] = new ColorTemperatures({}, 1, true) } else if (colorTemperatureObjects == 2) { colorTemperatureObject2 = metaData['name'] - this[colorTemperatureObject2] = new ColorTemperatures({}, 1) + this[colorTemperatureObject2] = new ColorTemperatures({}, 1, true) } colorTemperatureObjects=colorTemperatureObjects+1 - settings.put(metaData['name'], new ColorTemperatures({}, 1)) + settings.put(metaData['name'], new ColorTemperatures({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class color temperature!\n") @@ -651,22 +667,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1)\n") + globalObjects.append("@Field def colorControlObject = new ColorControls(sendEvent, 1, init)\n") if (colorControlObjects == 0) { colorControlObject0 = metaData['name'] - this[colorControlObject0] = new ColorControls({}, 1) + this[colorControlObject0] = new ColorControls({}, 1, true) } else if (colorControlObjects == 1) { colorControlObject1 = metaData['name'] - this[colorControlObject1] = new ColorControls({}, 1) + this[colorControlObject1] = new ColorControls({}, 1, true) } else if (colorControlObjects == 2) { colorControlObject2 = metaData['name'] - this[colorControlObject2] = new ColorControls({}, 1) + this[colorControlObject2] = new ColorControls({}, 1, true) } colorControlObjects=colorControlObjects+1 - settings.put(metaData['name'], new ColorControls({}, 1)) + settings.put(metaData['name'], new ColorControls({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class color control!\n") @@ -686,22 +702,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1)\n") + globalObjects.append("@Field def contactObject = new ContactSensors(sendEvent, 1, init)\n") if (contactObjects == 0) { contactObject0 = metaData['name'] - this[contactObject0] = new ContactSensors({}, 1) + this[contactObject0] = new ContactSensors({}, 1, true) } else if (contactObjects == 1) { contactObject1 = metaData['name'] - this[contactObject1] = new ContactSensors({}, 1) + this[contactObject1] = new ContactSensors({}, 1, true) } else if (contactObjects == 2) { contactObject2 = metaData['name'] - this[contactObject2] = new ContactSensors({}, 1) + this[contactObject2] = new ContactSensors({}, 1, true) } contactObjects=contactObjects+1 - settings.put(metaData['name'], new ContactSensors({}, 1)) + settings.put(metaData['name'], new ContactSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class contactSensor!\n") @@ -713,6 +729,41 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.contactObject\n") } break + case "capability.threeAxis": + globalObjects.eachLine { line -> + if(line.contains("threeAxisObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def threeAxisObject = new ThreeAxises(sendEvent, 1, init)\n") + + if (threeAxisObjects == 0) { + threeAxisObject0 = metaData['name'] + this[threeAxisObject0] = new ThreeAxises({}, 1, true) + } else if (threeAxisObjects == 1) { + threeAxisObject1 = metaData['name'] + this[threeAxisObject1] = new ThreeAxises({}, 1, true) + } else if (threeAxisObjects == 2) { + threeAxisObject2 = metaData['name'] + this[threeAxisObject2] = new ThreeAxises({}, 1, true) + } + + threeAxisObjects=threeAxisObjects+1 + + settings.put(metaData['name'], new ThreeAxises({}, 1, true)) + + if (App == "App1") { + extractedObjectsApp1.append("//Object for class three axis!\n") + extractedObjectsApp1.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp1.append(metaData['name']+" = obj.threeAxisObject\n") + } else { + extractedObjectsApp2.append("//Object for class three axis!\n") + extractedObjectsApp2.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp2.append(metaData['name']+" = obj.threeAxisObject\n") + } + break case "capability.doorControl": globalObjects.eachLine { line -> if(line.contains("doorControlObject")){ @@ -721,22 +772,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1)\n") + globalObjects.append("@Field def doorControlObject = new DoorControls(sendEvent, 1, init)\n") if (doorControlObjects == 0) { doorControlObject0 = metaData['name'] - this[doorControlObject0] = new DoorControls({}, 1) + this[doorControlObject0] = new DoorControls({}, 1, true) } else if (doorControlObjects == 1) { doorControlObject1 = metaData['name'] - this[doorControlObject1] = new DoorControls({}, 1) + this[doorControlObject1] = new DoorControls({}, 1, true) } else if (doorControlObjects == 2) { doorControlObject2 = metaData['name'] - this[doorControlObject2] = new DoorControls({}, 1) + this[doorControlObject2] = new DoorControls({}, 1, true) } doorControlObjects=doorControlObjects+1 - settings.put(metaData['name'], new DoorControls({}, 1)) + settings.put(metaData['name'], new DoorControls({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class door control!\n") @@ -756,22 +807,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1)\n") + globalObjects.append("@Field def energyMeterObject = new EnergyMeters(sendEvent, 1, init)\n") if (energyMeterObjects == 0) { energyMeterObject0 = metaData['name'] - this[energyMeterObject0] = new EnergyMeters({}, 1) + this[energyMeterObject0] = new EnergyMeters({}, 1, true) } else if (energyMeterObjects == 1) { energyMeterObject1 = metaData['name'] - this[energyMeterObject1] = new EnergyMeters({}, 1) + this[energyMeterObject1] = new EnergyMeters({}, 1, true) } else if (energyMeterObjects == 2) { energyMeterObject2 = metaData['name'] - this[energyMeterObject2] = new EnergyMeters({}, 1) + this[energyMeterObject2] = new EnergyMeters({}, 1, true) } energyMeterObjects=energyMeterObjects+1 - settings.put(metaData['name'], new EnergyMeters({}, 1)) + settings.put(metaData['name'], new EnergyMeters({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class energy meter!\n") @@ -791,22 +842,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1)\n") + globalObjects.append("@Field def illuminanceMeasurementObject = new IlluminanceMeasurements(sendEvent, 1, init)\n") if (illuminanceMeasurementObjects == 0) { illuminanceMeasurementObject0 = metaData['name'] - this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1) + this[illuminanceMeasurementObject0] = new IlluminanceMeasurements({}, 1, true) } else if (illuminanceMeasurementObjects == 1) { illuminanceMeasurementObject1 = metaData['name'] - this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1) + this[illuminanceMeasurementObject1] = new IlluminanceMeasurements({}, 1, true) } else if (illuminanceMeasurementObjects == 2) { illuminanceMeasurementObject2 = metaData['name'] - this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1) + this[illuminanceMeasurementObject2] = new IlluminanceMeasurements({}, 1, true) } illuminanceMeasurementObjects=illuminanceMeasurementObjects+1 - settings.put(metaData['name'], new IlluminanceMeasurements({}, 1)) + settings.put(metaData['name'], new IlluminanceMeasurements({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class illuminance measurement!\n") @@ -826,22 +877,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1)\n") + globalObjects.append("@Field def accelerationSensorObject = new AccelerationSensors(sendEvent, 1, init)\n") if (accelerationSensorObjects == 0) { accelerationSensorObject0 = metaData['name'] - this[accelerationSensorObject0] = new AccelerationSensors({}, 1) + this[accelerationSensorObject0] = new AccelerationSensors({}, 1, true) } else if (accelerationSensorObjects == 1) { accelerationSensorObject1 = metaData['name'] - this[accelerationSensorObject1] = new AccelerationSensors({}, 1) + this[accelerationSensorObject1] = new AccelerationSensors({}, 1, true) } else if (accelerationSensorObjects == 2) { accelerationSensorObject2 = metaData['name'] - this[accelerationSensorObject2] = new AccelerationSensors({}, 1) + this[accelerationSensorObject2] = new AccelerationSensors({}, 1, true) } accelerationSensorObjects=accelerationSensorObjects+1 - settings.put(metaData['name'], new AccelerationSensors({}, 1)) + settings.put(metaData['name'], new AccelerationSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Acceleration Sensor!\n") @@ -853,6 +904,41 @@ def input(LinkedHashMap metaData) { extractedObjectsConstructorApp2.append(metaData['name']+" = obj.accelerationSensorObject\n") } break + case "capability.momentary": + globalObjects.eachLine { line -> + if(line.contains("momentoryObject")){ + contains = 1 + } + } + + if (contains == 0) + globalObjects.append("@Field def momentaryObject = new Momentaries(sendEvent, 1)\n") + + if (momentaryObjects == 0) { + momentaryObject0 = metaData['name'] + this[momentaryObject0] = new Momentaries({}, 1) + } else if (momentaryObjects == 1) { + momentaryObject1 = metaData['name'] + this[momentaryObject1] = new Momentaries({}, 1) + } else if (momentaryObjects == 2) { + momentaryObject2 = metaData['name'] + this[momentaryObject2] = new Momentaries({}, 1) + } + + momentaryObjects=momentaryObjects+1 + + settings.put(metaData['name'], new Momentaries({}, 1)) + + if (App == "App1") { + extractedObjectsApp1.append("//Object for class momentory switch class!\n") + extractedObjectsApp1.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp1.append(metaData['name']+" = obj.momentaryObject\n") + } else { + extractedObjectsApp2.append("//Object for class momentory Sensor!\n") + extractedObjectsApp2.append("def "+metaData['name']+"\n") + extractedObjectsConstructorApp2.append(metaData['name']+" = obj.momentaryObject\n") + } + break case "capability.motionSensor": globalObjects.eachLine { line -> if(line.contains("motionSensorObject")){ @@ -861,22 +947,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1)\n") + globalObjects.append("@Field def motionSensorObject = new MotionSensors(sendEvent, 1, init)\n") if (motionSensorObjects == 0) { motionSensorObject0 = metaData['name'] - this[motionSensorObject0] = new MotionSensors({}, 1) + this[motionSensorObject0] = new MotionSensors({}, 1, true) } else if (motionSensorObjects == 1) { motionSensorObject1 = metaData['name'] - this[motionSensorObject1] = new MotionSensors({}, 1) + this[motionSensorObject1] = new MotionSensors({}, 1, true) } else if (motionSensorObjects == 2) { motionSensorObject2 = metaData['name'] - this[motionSensorObject2] = new MotionSensors({}, 1) + this[motionSensorObject2] = new MotionSensors({}, 1, true) } motionSensorObjects=motionSensorObjects+1 - settings.put(metaData['name'], new MotionSensors({}, 1)) + settings.put(metaData['name'], new MotionSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Motion Sensor!\n") @@ -896,22 +982,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1)\n") + globalObjects.append("@Field def musicPlayerObject = new MusicPlayers(sendEvent, 1, init)\n") if (musicPlayerObjects == 0) { musicPlayerObject0 = metaData['name'] - this[musicPlayerObject0] = new MusicPlayers({}, 1) + this[musicPlayerObject0] = new MusicPlayers({}, 1, true) } else if (musicPlayerObjects == 1) { musicPlayerObject1 = metaData['name'] - this[musicPlayerObject1] = new MusicPlayers({}, 1) + this[musicPlayerObject1] = new MusicPlayers({}, 1, true) } else if (musicPlayerObjects == 2) { musicPlayerObject2 = metaData['name'] - this[musicPlayerObject2] = new MusicPlayers({}, 1) + this[musicPlayerObject2] = new MusicPlayers({}, 1, true) } musicPlayerObjects=musicPlayerObjects+1 - settings.put(metaData['name'], new MusicPlayers({}, 1)) + settings.put(metaData['name'], new MusicPlayers({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class music player!\n") @@ -931,22 +1017,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1)\n") + globalObjects.append("@Field def powerMeterObject = new PowerMeters(sendEvent, 1, init)\n") if (powerMeterObjects == 0) { powerMeterObject0 = metaData['name'] - this[powerMeterObject0] = new PowerMeters({}, 1) + this[powerMeterObject0] = new PowerMeters({}, 1, true) } else if (powerMeterObjects == 1) { powerMeterObject1 = metaData['name'] - this[powerMeterObject1] = new PowerMeters({}, 1) + this[powerMeterObject1] = new PowerMeters({}, 1, true) } else if (powerMeterObjects == 2) { powerMeterObject2 = metaData['name'] - this[powerMeterObject2] = new PowerMeters({}, 1) + this[powerMeterObject2] = new PowerMeters({}, 1, true) } powerMeterObjects=powerMeterObjects+1 - settings.put(metaData['name'], new PowerMeters({}, 1)) + settings.put(metaData['name'], new PowerMeters({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class power meter!\n") @@ -966,22 +1052,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1)\n") + globalObjects.append("@Field def presenceSensorObject = new PresenceSensors(sendEvent, 1, init)\n") if (presenceSensorObjects == 0) { presenceSensorObject0 = metaData['name'] - this[presenceSensorObject0] = new PresenceSensors({}, 1) + this[presenceSensorObject0] = new PresenceSensors({}, 1, true) } else if (presenceSensorObjects == 1) { presenceSensorObject1 = metaData['name'] - this[presenceSensorObject1] = new PresenceSensors({}, 1) + this[presenceSensorObject1] = new PresenceSensors({}, 1, true) } else if (presenceSensorObjects == 2) { presenceSensorObject2 = metaData['name'] - this[presenceSensorObject2] = new PresenceSensors({}, 1) + this[presenceSensorObject2] = new PresenceSensors({}, 1, true) } presenceSensorObjects=presenceSensorObjects+1 - settings.put(metaData['name'], new PresenceSensors({}, 1)) + settings.put(metaData['name'], new PresenceSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class presence sensor!\n") @@ -1001,22 +1087,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1)\n") + globalObjects.append("@Field def humidityMeasurementObject = new RelativeHumidityMeasurements(sendEvent, 1, init)\n") if (humidityMeasurementObjects == 0) { humidityMeasurementObject0 = metaData['name'] - this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1) + this[humidityMeasurementObject0] = new RelativeHumidityMeasurements({}, 1, true) } else if (humidityMeasurementObjects == 1) { humidityMeasurementObject1 = metaData['name'] - this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1) + this[humidityMeasurementObject1] = new RelativeHumidityMeasurements({}, 1, true) } else if (humidityMeasurementObjects == 2) { humidityMeasurementObject2 = metaData['name'] - this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1) + this[humidityMeasurementObject2] = new RelativeHumidityMeasurements({}, 1, true) } humidityMeasurementObjects=humidityMeasurementObjects+1 - settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1)) + settings.put(metaData['name'], new RelativeHumidityMeasurements({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class humidity measurement!\n") @@ -1036,22 +1122,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1)\n") + globalObjects.append("@Field def relaySwitchObject = new RelaySwitches(sendEvent, 1, init)\n") if (relaySwitchObjects == 0) { relaySwitchObject0 = metaData['name'] - this[relaySwitchObject0] = new RelaySwitches({}, 1) + this[relaySwitchObject0] = new RelaySwitches({}, 1, true) } else if (relaySwitchObjects == 1) { relaySwitchObject1 = metaData['name'] - this[relaySwitchObject1] = new RelaySwitches({}, 1) + this[relaySwitchObject1] = new RelaySwitches({}, 1, true) } else if (relaySwitchObjects == 2) { relaySwitchObject2 = metaData['name'] - this[relaySwitchObject2] = new RelaySwitches({}, 1) + this[relaySwitchObject2] = new RelaySwitches({}, 1, true) } relaySwitchObjects=relaySwitchObjects+1 - settings.put(metaData['name'], new RelaySwitches({}, 1)) + settings.put(metaData['name'], new RelaySwitches({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class relay switch!\n") @@ -1071,22 +1157,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1)\n") + globalObjects.append("@Field def sleepSensorObject = new SleepSensors(sendEvent, 1, init)\n") if (sleepSensorObjects == 0) { sleepSensorObject0 = metaData['name'] - this[sleepSensorObject0] = new SleepSensors({}, 1) + this[sleepSensorObject0] = new SleepSensors({}, 1, true) } else if (sleepSensorObjects == 1) { sleepSensorObject1 = metaData['name'] - this[sleepSensorObject1] = new SleepSensors({}, 1) + this[sleepSensorObject1] = new SleepSensors({}, 1, true) } else if (sleepSensorObjects == 2) { sleepSensorObject2 = metaData['name'] - this[sleepSensorObject2] = new SleepSensors({}, 1) + this[sleepSensorObject2] = new SleepSensors({}, 1, true) } sleepSensorObjects=sleepSensorObjects+1 - settings.put(metaData['name'], new SleepSensors({}, 1)) + settings.put(metaData['name'], new SleepSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class sleep sensor!\n") @@ -1106,22 +1192,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1)\n") + globalObjects.append("@Field def smokeDetectorObject = new SmokeDetectors(sendEvent, 1, init)\n") if (smokeDetectorObjects == 0) { smokeDetectorObject0 = metaData['name'] - this[smokeDetectorObject0] = new SmokeDetectors({}, 1) + this[smokeDetectorObject0] = new SmokeDetectors({}, 1, true) } else if (smokeDetectorObjects == 1) { smokeDetectorObject1 = metaData['name'] - this[smokeDetectorObject1] = new SmokeDetectors({}, 1) + this[smokeDetectorObject1] = new SmokeDetectors({}, 1, true) } else if (smokeDetectorObjects == 2) { smokeDetectorObject2 = metaData['name'] - this[smokeDetectorObject2] = new SmokeDetectors({}, 1) + this[smokeDetectorObject2] = new SmokeDetectors({}, 1, true) } smokeDetectorObjects=smokeDetectorObjects+1 - settings.put(metaData['name'], new SmokeDetectors({}, 1)) + settings.put(metaData['name'], new SmokeDetectors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class smoke detector!\n") @@ -1141,22 +1227,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1)\n") + globalObjects.append("@Field def stepSensorObject = new StepSensors(sendEvent, 1, init)\n") if (stepSensorObjects == 0) { stepSensorObject0 = metaData['name'] - this[stepSensorObject0] = new StepSensors({}, 1) + this[stepSensorObject0] = new StepSensors({}, 1, true) } else if (stepSensorObjects == 1) { stepSensorObject1 = metaData['name'] - this[stepSensorObject1] = new StepSensors({}, 1) + this[stepSensorObject1] = new StepSensors({}, 1, true) } else if (stepSensorObjects == 2) { stepSensorObject2 = metaData['name'] - this[stepSensorObject2] = new StepSensors({}, 1) + this[stepSensorObject2] = new StepSensors({}, 1, true) } stepSensorObjects=stepSensorObjects+1 - settings.put(metaData['name'], new StepSensors({}, 1)) + settings.put(metaData['name'], new StepSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class step sensor!\n") @@ -1176,22 +1262,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1)\n") + globalObjects.append("@Field def switchObject = new Switches(sendEvent, 1, init)\n") if (switchObjects == 0) { switchObject0 = metaData['name'] - this[switchObject0] = new Switches({}, 1) + this[switchObject0] = new Switches({}, 1, true) } else if (switchObjects == 1) { switchObject1 = metaData['name'] - this[switchObject1] = new Switches({}, 1) + this[switchObject1] = new Switches({}, 1, true) } else if (switchObjects == 2) { switchObject2 = metaData['name'] - this[switchObject2] = new Switches({}, 1) + this[switchObject2] = new Switches({}, 1, true) } switchObjects=switchObjects+1 - settings.put(metaData['name'], new Switches({}, 1)) + settings.put(metaData['name'], new Switches({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class switch!\n") @@ -1211,22 +1297,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1)\n") + globalObjects.append("@Field def switchLevelObject = new SwitchLevels(sendEvent, 1, init)\n") if (switchLevelObjects == 0) { switchLevelObject0 = metaData['name'] - this[switchLevelObject0] = new SwitchLevels({}, 1) + this[switchLevelObject0] = new SwitchLevels({}, 1, true) } else if (switchLevelObjects == 1) { switchLevelObject1 = metaData['name'] - this[switchLevelObject1] = new SwitchLevels({}, 1) + this[switchLevelObject1] = new SwitchLevels({}, 1, true) } else if (switchLevelObjects == 2) { switchLevelObject2 = metaData['name'] - this[switchLevelObject2] = new SwitchLevels({}, 1) + this[switchLevelObject2] = new SwitchLevels({}, 1, true) } switchLevelObjects=switchLevelObjects+1 - settings.put(metaData['name'], new SwitchLevels({}, 1)) + settings.put(metaData['name'], new SwitchLevels({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class switch level!\n") @@ -1246,22 +1332,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1)\n") + globalObjects.append("@Field def temperatureMeasurementObject = new TemperatureMeasurements(sendEvent, 1, init)\n") if (temperatureMeasurementObjects == 0) { temperatureMeasurementObject0 = metaData['name'] - this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1) + this[temperatureMeasurementObject0] = new TemperatureMeasurements({}, 1, true) } else if (temperatureMeasurementObjects == 1) { temperatureMeasurementObject1 = metaData['name'] - this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1) + this[temperatureMeasurementObject1] = new TemperatureMeasurements({}, 1, true) } else if (temperatureMeasurementObjects == 2) { temperatureMeasurementObject2 = metaData['name'] - this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1) + this[temperatureMeasurementObject2] = new TemperatureMeasurements({}, 1, true) } temperatureMeasurementObjects=temperatureMeasurementObjects+1 - settings.put(metaData['name'], new TemperatureMeasurements({}, 1)) + settings.put(metaData['name'], new TemperatureMeasurements({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class temperature measurement!\n") @@ -1281,22 +1367,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1)\n") + globalObjects.append("@Field def thermostatObject = new Thermostats(sendEvent, 1, init)\n") if (thermostatObjects == 0) { thermostatObject0 = metaData['name'] - this[thermostatObject0] = new Thermostats({}, 1) + this[thermostatObject0] = new Thermostats({}, 1, true) } else if (thermostatObjects == 1) { thermostatObject1 = metaData['name'] - this[thermostatObject1] = new Thermostats({}, 1) + this[thermostatObject1] = new Thermostats({}, 1, true) } else if (thermostatObjects == 2) { thermostatObject2 = metaData['name'] - this[thermostatObject2] = new Thermostats({}, 1) + this[thermostatObject2] = new Thermostats({}, 1, true) } thermostatObjects=thermostatObjects+1 - settings.put(metaData['name'], new Thermostats({}, 1)) + settings.put(metaData['name'], new Thermostats({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class thermostat!\n") @@ -1316,22 +1402,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1)\n") + globalObjects.append("@Field def valveObject = new Valves(sendEvent, 1, init)\n") if (valveObjects == 0) { valveObject0 = metaData['name'] - this[valveObject0] = new Valves({}, 1) + this[valveObject0] = new Valves({}, 1, true) } else if (valveObjects == 1) { valveObject1 = metaData['name'] - this[valveObject1] = new Valves({}, 1) + this[valveObject1] = new Valves({}, 1, true) } else if (valveObjects == 2) { valveObject2 = metaData['name'] - this[valveObject2] = new Valves({}, 1) + this[valveObject2] = new Valves({}, 1, true) } valveObjects=valveObjects+1 - settings.put(metaData['name'], new Valves({}, 1)) + settings.put(metaData['name'], new Valves({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class valve!\n") @@ -1351,22 +1437,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1)\n") + globalObjects.append("@Field def speechSynthesisObject = new SpeechSynthesises(sendEvent, 1, init)\n") if (speechSynthesisObjects == 0) { speechSynthesisObject0 = metaData['name'] - this[speechSynthesisObject0] = new SpeechSynthesises({}, 1) + this[speechSynthesisObject0] = new SpeechSynthesises({}, 1, true) } else if (speechSynthesisObjects == 1) { speechSynthesisObject1 = metaData['name'] - this[speechSynthesisObject1] = new SpeechSynthesises({}, 1) + this[speechSynthesisObject1] = new SpeechSynthesises({}, 1, true) } else if (speechSynthesisObjects == 2) { speechSynthesisObject2 = metaData['name'] - this[speechSynthesisObject2] = new SpeechSynthesises({}, 1) + this[speechSynthesisObject2] = new SpeechSynthesises({}, 1, true) } speechSynthesisObjects=speechSynthesisObjects+1 - settings.put(metaData['name'], new SpeechSynthesises({}, 1)) + settings.put(metaData['name'], new SpeechSynthesises({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class speech synthesis!\n") @@ -1386,22 +1472,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1)\n") + globalObjects.append("@Field def waterSensorObject = new WaterSensors(sendEvent, 1, init)\n") if (waterSensorObjects == 0) { waterSensorObject0 = metaData['name'] - this[waterSensorObject0] = new WaterSensors({}, 1) + this[waterSensorObject0] = new WaterSensors({}, 1, true) } else if (waterSensorObjects == 1) { waterSensorObject1 = metaData['name'] - this[waterSensorObject1] = new WaterSensors({}, 1) + this[waterSensorObject1] = new WaterSensors({}, 1, true) } else if (waterSensorObjects == 2) { waterSensorObject2 = metaData['name'] - this[waterSensorObject2] = new WaterSensors({}, 1) + this[waterSensorObject2] = new WaterSensors({}, 1, true) } waterSensorObjects=waterSensorObjects+1 - settings.put(metaData['name'], new WaterSensors({}, 1)) + settings.put(metaData['name'], new WaterSensors({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class water sensor!\n") @@ -1456,22 +1542,22 @@ def input(LinkedHashMap metaData) { } if (contains == 0) - globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1)\n") + globalObjects.append("@Field def imageCaptureObject = new ImageCaptures(sendEvent, 1, init)\n") if (imageCaptureObjects == 0) { imageCaptureObject0 = metaData['name'] - this[imageCaptureObject0] = new ImageCaptures({}, 1) + this[imageCaptureObject0] = new ImageCaptures({}, 1, true) } else if (imageCaptureObjects == 1) { imageCaptureObject1 = metaData['name'] - this[imageCaptureObject1] = new ImageCaptures({}, 1) + this[imageCaptureObject1] = new ImageCaptures({}, 1, true) } else if (imageCaptureObjects == 2) { imageCaptureObject2 = metaData['name'] - this[imageCaptureObject2] = new ImageCaptures({}, 1) + this[imageCaptureObject2] = new ImageCaptures({}, 1, true) } imageCaptureObjects=imageCaptureObjects+1 - settings.put(metaData['name'], new ImageCaptures({}, 1)) + settings.put(metaData['name'], new ImageCaptures({}, 1, true)) if (App == "App1") { extractedObjectsApp1.append("//Object for class Image Capture!\n") @@ -1555,7 +1641,13 @@ def input(LinkedHashMap metaData) { case "mode": //def randomVariable = Math.abs(new Random().nextInt() % 3) def modes = ["away", "home", "night"] - def userInput = modes[0] + // Always assign a different mode to each app + //def userInput = modes[1] + def userInput = modes[chooseMode] + if (chooseMode < 3) + chooseMode++; + else + chooseMode = chooseMode%3 if (modeVariables == 0) { mode0 = metaData['name'] @@ -1795,6 +1887,46 @@ def input(LinkedHashMap metaData) { extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n") } break + case "boolean": + //def userInput = Math.abs(new Random().nextInt() % 2) + def userInput = true + + if (boolVariables == 0) { + bool0 = metaData['name'] + this[bool0] = userInput + } else if (boolVariables == 1) { + bool1 = metaData['name'] + this[bool1] = userInput + } else if (boolVariables == 2) { + bool2 = metaData['name'] + this[bool2] = userInput + } else if (boolVariables == 3) { + bool3 = metaData['name'] + this[bool3] = userInput + } else if (boolVariables == 4) { + bool4 = metaData['name'] + this[bool4] = userInput + } else if (boolVariables == 5) { + bool5 = metaData['name'] + this[bool5] = userInput + } + + if (boolVariables != 5) + boolVariables=boolVariables+1 + else + boolVariables=0 + + + settings.put(metaData['name'], metaData['name']) + + if (App == "App1") { + extractedObjectsApp1.append("//Global variable for boolean!\n") + extractedObjectsApp1.append("def "+metaData['name']+" = \""+userInput+"\"\n") + } else { + extractedObjectsApp2.append("//Global variable for boolean!\n") + extractedObjectsApp2.append("def "+metaData['name']+" = \""+userInput+"\"\n") + } + break case "bool": //def userInput = Math.abs(new Random().nextInt() % 2) def userInput = true @@ -1981,7 +2113,7 @@ def preferences(Closure inputData) { GlobalVariablesBothApps.write("") GlobalVariablesBothApps.append("//Creating Global variables for both apps\n") GlobalVariablesBothApps.append("@Field def sendEvent = {eventDataMap -> eventHandler(eventDataMap)}\n") - GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent)\n") + GlobalVariablesBothApps.append("@Field def locationObject = new LocationVar(sendEvent, init)\n") GlobalVariablesBothApps.append("@Field def appObject = new Touched(sendEvent, 0)\n") globalObjects.withReader { reader -> @@ -1993,6 +2125,10 @@ def preferences(Closure inputData) { } } +def image(String data) { + println("//IGNORE--some image//") +} + def page(LinkedHashMap metaData, Closure inputData) { if (metaData.containsKey('name')) println(metaData['name']) @@ -2020,6 +2156,10 @@ def paragraph(String paragraphText) { println(paragraphText) } +def paragraph(LinkedHashMap metaData, String paragraphText) { + println(paragraphText) +} + def section(String title, Closure inputData) { println(title) find(inputData) //Run the closure to extract inputMethods