ソースを参照

COptionAction:
setValue添加返回值。

scbc.sat2 5 年 前
コミット
d8a478def5
2 ファイル変更24 行追加8 行削除
  1. 2 0
      ssat_sdk/MenuTree3/OptionAction.py
  2. 22 8
      ssat_sdk/MenuTree3/TMenu.py

+ 2 - 0
ssat_sdk/MenuTree3/OptionAction.py

@@ -1174,6 +1174,8 @@ class COptionAction(CBaseLog):
         if self.__optionValue != "" or self.__optionValue is not None:
             self.__optionValueInfo = self.__optionExcel.getOptionValueInfo(self.__optionName, self.__optionValue)
 
+        return True if self.__optionValueInfo else False
+
 
 if __name__ == "__main__":
     exData = CExtraData()

+ 22 - 8
ssat_sdk/MenuTree3/TMenu.py

@@ -31,6 +31,7 @@ class CTMenu(CBaseLog):
         self.__optionConfig = COptionConfig(self.__exData, self.__optionExcel)
         self.__curOpa = None
         self.__lastOpa = None
+        self.__lastTime = None
 
     @property
     def exData(self):
@@ -58,6 +59,10 @@ class CTMenu(CBaseLog):
     def setCurPos(self, pos):
         self.__curOpa.setCurPos(pos)
 
+    def clearOpa(self):
+        self.__lastOpa = None
+        self.__curOpa = None
+
     '''
     函数:同步两个opa信息;
     参数:
@@ -65,15 +70,19 @@ class CTMenu(CBaseLog):
     '''
 
     def SyncOptionInfo(self):
+        # 如果上次同步超过5秒,认为菜单退出; 意义不大
+        # if self.__lastTime and time.time() - self.__lastTime > 5:
+        #     self.info(u"前后两次同步时间差超过5秒")
+        #     self.__lastOpa = None
         if self.__lastOpa:
             self.info(u"lastOpa.pos=%d" % self.__lastOpa.pos)
-            len = self.__lastOpa.pos - self.__curOpa.getPathLength()
+            diffValue = self.__lastOpa.pos - self.__curOpa.getPathLength()
             # 前者位置大于当前opa长度;
-            if len > 0:
+            if diffValue > 0:
                 # 判断路径是否为子集关系;
                 if self.__lastOpa.isOptionInPaths(self.__lastOpa.getPathLength(), self.__curOpa.curOptionName) is True:
-                    while len > 0:
-                        len -= 1
+                    while diffValue > 0:
+                        diffValue -= 1
                         self.__lastOpa.back2ParentNode()
                     # 同时设置当前opa位置;
                     self.__curOpa.setCurPos(self.__curOpa.getPathLength())
@@ -82,6 +91,7 @@ class CTMenu(CBaseLog):
                 if self.__curOpa.isOptionInPaths(self.__lastOpa.pos, self.__lastOpa.curOptionName) is True:
                     self.__curOpa.setCurPos(self.__lastOpa.pos)
         # 记录;
+        # self.__lastTime = time.time()
         self.__lastOpa = self.__curOpa
 
     def takePicture(self):
@@ -432,7 +442,10 @@ class CTMenu(CBaseLog):
 
     def setValue(self, optionValue):
         self.info(u"开始设置值:optionName=%s, optionValue=%s" % (self.__curOpa.curOptionName, str(optionValue)))
-        self.__curOpa.setValue(optionValue)
+        if self.__curOpa.setValue(optionValue) is False:
+            self.info(u"该value[%s]不存在" % optionValue)
+            return False
+
         # 遍历到value节点中;
         if self.__move2TargetNode(self.__curOpa, True)[0] is False:
             if self.__move2TargetNode(self.__curOpa, False)[0] is False:
@@ -680,11 +693,12 @@ if __name__ == "__main__":
 
     ml.openOption('picture_preset')
     ml.setValue('movie')
-
+    ml.openOption('picture_preset')
+    ml.setValue('dynamic')
     print "--------------------------------------------------"
 
-    ml.openOption('brightness')
-    ml.setValue(90)
+    # ml.openOption('brightness')
+    # ml.setValue(90)
 
     ml.back2Home()