|
@@ -19,22 +19,37 @@ class CMenuLogic(CBaseLog):
|
|
|
self.__optionExcel = COptionExcel(self.__exData)
|
|
|
self.__optionConfig = COptionConfig(self.__exData, self.__optionExcel)
|
|
|
|
|
|
+ '''
|
|
|
+ 函数:判断两值(for_ocr与ocr识别结果)是否相等;
|
|
|
+ 参数:
|
|
|
+ srcValue 源值,excel表格中读取的value值。
|
|
|
+ tagValue 目标值,ocr识别的结果值。
|
|
|
+ 返回:相同返回True。
|
|
|
+ '''
|
|
|
+ def __isValueEqual(self, srcValue, tagValue):
|
|
|
+ self.info(u"源值=%s, 目标值=%s" % (str(srcValue), str(tagValue)))
|
|
|
+
|
|
|
'''
|
|
|
函数:移动到目标节点上(路径节点和value节点)
|
|
|
参数:
|
|
|
opa COptionAction对象;
|
|
|
moveDirection 移动方向,True表示调用move_key[1](向下或向右), False表示调用move_key[0]。
|
|
|
maxTry 最大移动次数,防止死循环。
|
|
|
- 返回:Boolean。
|
|
|
+ 返回:Boolean是否在目标节点上, 文本或数值。
|
|
|
'''
|
|
|
def __move2TargetNode(self, opa, moveDirection, maxTry=15):
|
|
|
tryCount = 0
|
|
|
# 是否到目标结点了;
|
|
|
isOnTargetNode = False
|
|
|
+ # 目标节点聚焦状态;
|
|
|
+ targetFocus = False
|
|
|
+ # 目标文本或数值;
|
|
|
+ targetText = None
|
|
|
# 移动到目标节点;
|
|
|
while True:
|
|
|
# 判断是否移动成功;
|
|
|
- if opa.isOnTargetNode()[0] is True:
|
|
|
+ targetFocus, targetText = opa.isOnTargetNode()
|
|
|
+ if targetFocus is True:
|
|
|
# 如果已在目标结点,退出循环;
|
|
|
if opa.isOnTargetOption() or opa.isOnValueSheet():
|
|
|
self.info(u"<到达目标路径节点或value节点>")
|
|
@@ -59,7 +74,7 @@ class CMenuLogic(CBaseLog):
|
|
|
break
|
|
|
# end-while
|
|
|
|
|
|
- return isOnTargetNode
|
|
|
+ return isOnTargetNode, targetText
|
|
|
|
|
|
'''
|
|
|
函数:返回到主页(不一定就是Home页,一般指返回运行前的那个画面)
|
|
@@ -75,9 +90,11 @@ class CMenuLogic(CBaseLog):
|
|
|
self.info(u"【如果设置value时,会自动回退到上一层父节点,此处操作正常。否则要多返回一层。】")
|
|
|
|
|
|
'''
|
|
|
- 函数:设置option的值。
|
|
|
+ 函数:设置指定的option的值为optionValue。
|
|
|
参数:
|
|
|
- 返回:
|
|
|
+ optionName 要设置的option;
|
|
|
+ optionValue option要设置的值;
|
|
|
+ 返回: Boolean。
|
|
|
'''
|
|
|
def setOptionValue(self, optionName, optionValue):
|
|
|
self.info(u"【%s】【%s】" % (optionName, optionValue))
|
|
@@ -86,6 +103,7 @@ class CMenuLogic(CBaseLog):
|
|
|
|
|
|
# 检测路径是否有效;
|
|
|
if opa.checkRunOptionPath() is False:
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 首先,调用根菜单;
|
|
@@ -93,11 +111,13 @@ class CMenuLogic(CBaseLog):
|
|
|
time.sleep(1)
|
|
|
if opa.isOnFirstOption() is False:
|
|
|
self.error(u"未聚焦到根节点上,退出")
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 遍历到目标option中;
|
|
|
- if self.__move2TargetNode(opa, True) is False:
|
|
|
- if self.__move2TargetNode(opa, False) is False:
|
|
|
+ if self.__move2TargetNode(opa, True)[0] is False:
|
|
|
+ if self.__move2TargetNode(opa, False)[0] is False:
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 到达目标option后,进入value表;
|
|
@@ -105,8 +125,9 @@ class CMenuLogic(CBaseLog):
|
|
|
opa.enterNode()
|
|
|
|
|
|
# 遍历到value节点中;
|
|
|
- if self.__move2TargetNode(opa, True) is False:
|
|
|
- if self.__move2TargetNode(opa, False) is False:
|
|
|
+ if self.__move2TargetNode(opa, True)[0] is False:
|
|
|
+ if self.__move2TargetNode(opa, False)[0] is False:
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 找到value节点,设置值;
|
|
@@ -117,9 +138,11 @@ class CMenuLogic(CBaseLog):
|
|
|
self.__back2Home(opa)
|
|
|
|
|
|
'''
|
|
|
- 函数:检测option的值;
|
|
|
+ 函数:移动到目标option后,读取该option的value值,与optionValue进行比较,相等表示检测值与目标值一致;
|
|
|
参数:
|
|
|
- 返回:
|
|
|
+ optionName 要设置的option;
|
|
|
+ optionValue option要设置的值;
|
|
|
+ 返回: Boolean。
|
|
|
'''
|
|
|
|
|
|
def checkOptionValue(self, optionName, optionValue):
|
|
@@ -129,6 +152,7 @@ class CMenuLogic(CBaseLog):
|
|
|
|
|
|
# 检测路径是否有效;
|
|
|
if opa.checkRunOptionPath() is False:
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 首先,调用根菜单;
|
|
@@ -136,29 +160,29 @@ class CMenuLogic(CBaseLog):
|
|
|
time.sleep(1)
|
|
|
if opa.isOnFirstOption() is False:
|
|
|
self.error(u"未聚焦到根节点上,退出")
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 遍历到目标option中;
|
|
|
- if self.__move2TargetNode(opa, True) is False:
|
|
|
- if self.__move2TargetNode(opa, False) is False:
|
|
|
+ if self.__move2TargetNode(opa, True)[0] is False:
|
|
|
+ if self.__move2TargetNode(opa, False)[0] is False:
|
|
|
+ self.__back2Home(opa)
|
|
|
return False
|
|
|
|
|
|
# 到达目标option后,进入value表;
|
|
|
self.info(u"进入value表")
|
|
|
opa.enterNode()
|
|
|
|
|
|
- # 遍历到value节点中;
|
|
|
- if self.__move2TargetNode(opa, True) is False:
|
|
|
- if self.__move2TargetNode(opa, False) is False:
|
|
|
- return False
|
|
|
-
|
|
|
- # 找到value节点,设置值;
|
|
|
- self.info(u"设置value值:一般只适用于Number类型或Input类型,不适合选择类型。但都必须调用,因为里面有enterkey操作")
|
|
|
- opa.setOptionValue()
|
|
|
+ # 获取value节点值;
|
|
|
+ valueFocus, valueText = opa.isOnTargetNode()
|
|
|
+ self.info(u"===当前捕获的文本内容=%s,目标文本=%s,状态:%d===" % (str(valueText), str(optionValue), valueFocus))
|
|
|
|
|
|
# 返回主页;
|
|
|
self.__back2Home(opa)
|
|
|
|
|
|
+ # 聚焦状态就是结果;
|
|
|
+ return valueFocus
|
|
|
+
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
ml = CMenuLogic()
|
|
@@ -175,7 +199,7 @@ if __name__ == "__main__":
|
|
|
time.sleep(2)
|
|
|
ml.setOptionValue('picture_preset', 'movie')
|
|
|
|
|
|
- if 1:
|
|
|
+ if 0:
|
|
|
value = 33
|
|
|
ml.setOptionValue('backlight', value)
|
|
|
time.sleep(2)
|
|
@@ -187,4 +211,19 @@ if __name__ == "__main__":
|
|
|
time.sleep(2)
|
|
|
ml.setOptionValue('tint', value)
|
|
|
time.sleep(2)
|
|
|
- ml.setOptionValue('sharpness', value)
|
|
|
+ ml.setOptionValue('sharpness', value)
|
|
|
+
|
|
|
+ if 1:
|
|
|
+ ml.setOptionValue('picture_preset', 'standard')
|
|
|
+ time.sleep(5)
|
|
|
+ print "personal", ml.checkOptionValue('picture_preset', 'personal')
|
|
|
+ time.sleep(8)
|
|
|
+ print "dynamic", ml.checkOptionValue('picture_preset', 'dynamic')
|
|
|
+ time.sleep(8)
|
|
|
+ print "stadium", ml.checkOptionValue('picture_preset', 'stadium')
|
|
|
+ time.sleep(8)
|
|
|
+ print "standard", ml.checkOptionValue('picture_preset', 'standard')
|
|
|
+ time.sleep(8)
|
|
|
+ print "natural", ml.checkOptionValue('picture_preset', 'natural')
|
|
|
+ time.sleep(8)
|
|
|
+ print "movie", ml.checkOptionValue('picture_preset', 'movie')
|