Completing physical interaction runs.
authorrtrimana <rtrimana@uci.edu>
Sun, 28 Jul 2019 01:09:07 +0000 (18:09 -0700)
committerrtrimana <rtrimana@uci.edu>
Sun, 28 Jul 2019 01:09:07 +0000 (18:09 -0700)
Extractor/ExtractorScript.py
ModelCheck.py
run.sh

index f762b812f44ea381cf7f80f32c039e9f11d3c97f..8e10962718a296c4846b894aa2d11261e9d596ee 100644 (file)
@@ -101,6 +101,7 @@ def AnalyzeCapabilities(Temp, appName, F):
        if (Temp == "capability.switch" or
                        Temp == "capability.switchLevel" or
                        Temp == "capability.illuminanceMeasurement" or
+                       Temp == "capability.colorControl" or
                        #Motion related
                        Temp == "capability.motionSensor" or
                        Temp == "capability.accelerationSensor" or
@@ -129,7 +130,7 @@ def AnalyzeCapabilities(Temp, appName, F):
 def AnalyzePhysicalInteraction(app1Capab, app2Capab):
        #Light
        if ("capability.illuminanceMeasurement" in app1Capab) and ("capability.switch" in app2Capab or 
-                       "capability.switchLevel" in app2Capab):
+                       "capability.switchLevel" in app2Capab or "capability.colorControl" 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
index 601323e0f9012dd5251d395a412c42a05a8238d6..b47a095aa3c53ca3e7c5027962063146984fbdb0 100644 (file)
@@ -52,8 +52,11 @@ if useSecondList is False:
 else:
        # Generate pairs from 2 lists
        for i in range(len(appList1)):
-                       for j in range(len(appList2)):
-                               appPairs.append((appList1[i], appList2[j]))
+               for j in range(len(appList2)):
+                       # Skip if both are the same
+                       if appList1[i] == appList2[j]:
+                               continue
+                       appPairs.append((appList1[i], appList2[j]))
                        
 # PART 2: 
 print "PHASE 2: Running JPF ...\n"
@@ -63,7 +66,7 @@ for item in appPairs:
 
        # Copy apps into Extractor/App1 and Extractor/App2
        print "==> First app: %s" % item[0]
-       print "==> Second app: %s" % item[1]
+       print "==> Second app: %s" % item[1]            
        os.system("cp " + appDir + item[0] + " Extractor/App1/App1.groovy")
        os.system("cp " + appDir + item[1] + " Extractor/App2/App2.groovy")
        
@@ -76,6 +79,6 @@ for item in appPairs:
        print "==> Calling JPF and generate logs ...\n"
        logName = jpfLogDir + item[0] + "--" + item[1] + ".log"
        writeLogList.write(logName + "\n")
-       os.system("cd " + jpfDir + ";./run.sh " + logName + " main.jpf")
+       #os.system("cd " + jpfDir + ";./run.sh " + logName + " main.jpf")
        
 writeLogList.close()
diff --git a/run.sh b/run.sh
index 7ba9baab7a537e4ceec7da58119e316524bf0c12..b0f8b053bc87ef10b96f2ee27dc22303270b8331 100755 (executable)
--- a/run.sh
+++ b/run.sh
@@ -1,2 +1,10 @@
 #!/bin/bash
-python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ ../smartapps/appList1
+
+# Device conflict
+#python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ ../smartapps/appList1
+
+# Physical conflict
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/soundsensorAppList appLists/physical-interaction/soundAppList
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/motionsensorAppList appLists/physical-interaction/motionAppList
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/illuminancesensorAppList appLists/physical-interaction/lightAppList
+python ModelCheck.py ../jpf-core/ ../logs/ ../smartapps/ appLists/physical-interaction/watersensorAppList appLists/physical-interaction/watervalveAppList
\ No newline at end of file