Пример #1
0
def setTerminalTime(self, timestr='2018-01-01 00:00:00'):
    '''
    设置终端的时间
    :param    self      必须
    :param    timestr   格式化的时间字符串,如需另传时间 一定要按照默认值的格式
    :return   flag   bool型
    :example  flag = setTerminalTime(self)
    '''

    data = {}
    local_datetime = datetime.strptime(timestr, "%Y-%m-%d %H:%M:%S")
    time_num = long(time.mktime(local_datetime.timetuple()) * 1000.0)
    data["utcTimeMillis"] = time_num
    data["timeZone"] = "Asia/Shanghai"
    data["gmt"] = "GMT+08:00"
    data["isTimeOffsetEnable"] = False
    data["beginTime"] = ""
    data["endTime"] = ""
    data["timeOffsetValue"] = 0
    flag = sendSetCommand(self,
                          Constant.WHAT_TIME_ZONE,
                          0,
                          Constant.ACTION_MODIFY,
                          0,
                          data=data,
                          timeout=5,
                          describe="setTerminalTime")
    return flag
Пример #2
0
def listTransferOver(self,
                     identifier='',
                     name='',
                     planListUrl='',
                     thumbnailUrl=''):
    '''.
            结束传输
    :param1   self        必须
    :param2   identifier          type:str      唯一标识码
    :param3   name               type:str     播放清单的名称
    :param4   planListUrl        type:str       planlist的路径
    :param5   thumbnailUrl    type:str       播放缩略图路径
    :return  flag bool型   是否结束传输成功   
    :example flag = Listtransfer_over(self,identifier,name,planListUrl,thumbnailUrl)
    '''
    data = {
        "playImmediately": True,
        "confirmedInfos": {
            "identifier": identifier,
            "name": name,
            "planListUrl": planListUrl,
            "thumbnailUrl": thumbnailUrl
        }
    }
    print data
    flag = sendSetCommand(self,
                          Constant.WHAT_PLAYLIST,
                          Constant.TYPE_WHAT_PLAYLIST,
                          Constant.ACTION_END,
                          0,
                          data=data,
                          timeout=4,
                          describe="结束传输")
    return flag
def setInnerSource_Manual(self, offsetX=-1, offsetY=-1):
    '''
    设置内部源相关配置
    :param self:
    :param offsetX: 偏移X
    :param offsetY: 偏移Y
    :return: flag 是否成功
    :example    flag = setInnerSource_Manual(self, offsetX=10, offsetY=10)
    '''

    data = {}
    data["type"] = "VIDEO_CONTROL"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["videoMode"] = 1
    data["videoSource"] = 0  # 内部
    if offsetX != -1:
        data["offsetX"] = offsetX
    if offsetY != -1:
        data["offsetY"] = offsetY
    flag = sendSetCommand(self,
                          Constant.WHAT_VIDEO_CONTROL,
                          Constant.TYPE_VIDEO_CONTROL,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setInnerSource_Manual",
                          applyTo=["T2-4G", "T2", "T4", "T6", "T8"])
    return flag
def setHDMISource_Manual(self, offsetX=-1, offsetY=-1, isscale=None):
    '''
    设置HDMI源相关配置
    :param self:
    :param offsetX: 偏移X
    :param offsetY: 偏移Y
    :param isScale: 是否缩放,true为全屏缩放,false为不缩放
    :return: flag 是否成功
    :example    flag = setHDMISource_Manual(self, offsetX=10, offsetY=10,
                    isScale=True)
    '''

    data = {}
    data["type"] = "VIDEO_CONTROL"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["videoMode"] = 1
    data["videoSource"] = 1  # HDMI
    if offsetX != -1:
        data["offsetX"] = offsetX
    if offsetY != -1:
        data["offsetY"] = offsetY
    if isscale:
        data["isScale"] = isscale
    flag = sendSetCommand(self,
                          Constant.WHAT_VIDEO_CONTROL,
                          Constant.TYPE_VIDEO_CONTROL,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setHDMISource_Manual",
                          applyTo=["T2-4G", "T2", "T4", "T6", "T8"])
    return flag
Пример #5
0
def restart_IMMEDIATELY(self):
    '''
            手动立即重启
    :param1   self        必须
    :return  flag bool型   是否下发成功   
    :example flag = restart_IMMEDIATELY(self)
                    
    '''
    source = {"type": 0, "platform": 1}
    data = {
        "type": "REBOOT",
        "source": source,
        "executionType": "IMMEDIATELY",
        "reason": "Just to test",
        "conditions": []
    }
    flag = sendSetCommand(self,
                          Constant.WHAT_SYS_ADVANCED,
                          Constant.TYPE_REBOOT,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          timeout=5,
                          describe="restart_IMMEDIATELY")
    return flag
Пример #6
0
def setVolume_Auto(self, condition_list=[]):
    '''
    自动设置音量
    :param self:
    :param conditions: 按照条件执行的任务集合,我们支持多个任务。
    :return: flag 是否成功
    :example    flag = setVolume_Auto(self, condition_list=[['0', time, True, '60.0',
                                     '2017-09-01 00:00:00', '4016-06-06 24:00:00']])
    '''

    data = {}
    data["type"] = "VOLUME"
    source = {}
    source["type"] = 0
    source["platform"] = 4
    data["source"] = source
    data["enable"] = True
    conditions = get_conditions(condition_list)
    data["conditions"] = conditions
    print data
    flag = sendSetCommand(self,
                          Constant.WHAT_VOLUME,
                          Constant.TYPE_POLICY,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setVolume_Auto")
    return flag
Пример #7
0
def setVideoInfo_Auto(self,
                      offsetX=-1,
                      offsetY=-1,
                      isScale=None,
                      inside=None,
                      hdmi=None):
    '''
    设置自定义分辨率
    :param self:
    :param isScale: 是否缩放,true为全屏缩放,false为不缩放
    :param offsetX: 偏移X
    :param offsetY: 偏移Y
    :param inside:object	内部源任务列表
                    cron	String	cron表达式,用户表示开始时间和重复
                    source	int	视频源 SOURCE_INSIDE 内部 0, SOURCE_HDMI HDMI 1
                    enable	boolean	该条定时任务是否生效
    :param hdmi:object	    hdmi任务列表
                    cron	String	cron表达式,用户表示开始时间和重复
                    source	int	视频源 SOURCE_INSIDE 内部 0, SOURCE_HDMI HDMI 1
                    enable	boolean	该条定时任务是否生效
    :return: flag 是否成功
    :example    flag = setVideoInfo_Auto(self, offsetX=10, offsetY=10,
                    isScale=True, inside=[['4,5,6,7', time, True]],
                    hdmi=[['0', time, True]])
    '''

    data = {}
    data["type"] = "VIDEO_CONTROL"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["videoMode"] = 2  # 定时
    if offsetX != -1:
        data["offsetX"] = offsetX
    if offsetY != -1:
        data["offsetY"] = offsetY
    if isScale:
        data["isScale"] = isScale
    conditions = []
    if inside:
        conditions = get_conditions(Constant.SOURCE_INSIDE, inside)
    if hdmi:
        conditions = get_conditions(Constant.SOURCE_HDMI, hdmi, conditions)
    if conditions:
        data["conditions"] = conditions
    print data
    flag = sendSetCommand(self,
                          Constant.WHAT_VIDEO_CONTROL,
                          Constant.TYPE_VIDEO_CONTROL,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setVideoInfo_Auto",
                          applyTo=["T2-4G", "T2", "T4", "T6", "T8"])

    return flag
Пример #8
0
def setBrightnessInfo_Auto(self, timing_list=None, auto_list=None):
    '''
    设置亮度调节方案
    :param self:
    :param timing_list: object	定时任务列表
                        type	number	1:定时调节
                        cron    string array 重复次数,每条条件使用cron表达式数组表示,当为数组时,cron表达式之间使用或的关系
                        args	object	亮度调节参数,定时调试时args为亮度百分比
                        startTime  string  策略有效期开始时间yyyy-MM-dd HH:mm:ss
                        endTime    string  策略有效期结束时间yyyy-MM-dd HH:mm:ss ,永久有效的时间为4016-06-06 23:59:59
    :param auto_list:   object	自动任务列表
                        type    number	2:自动调节
                        cron    string array 重复次数,每条条件使用cron表达式数组表示,当为数组时,cron表达式之间使用或的关系
                        args    object	自动调节时args为自动调节参数
                                格式: "args":[maxEnvBrightness,minEnvBrightness,maxScreenBrightness,minScreenBrightness,segmentCount]
                        startTime  string  策略有效期开始时间yyyy-MM-dd HH:mm:ss
                        endTime    string  策略有效期结束时间yyyy-MM-dd HH:mm:ss ,永久有效的时间为4016-06-06 23:59:59
    :return: flag 是否成功
    :example    flag = setVideoInfo_Auto(self, offsetX=10, offsetY=10,
                    isScale=True, inside=[['4,5,6,7', time, True]],
                    hdmi=[['0', time, True]])
    '''

    data = {}
    data["type"] = "BRIGHTNESS"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["enable"] = True

    # 当前数据的时间戳,为后期可能使用
    data["timeStamp"] = time.strftime('%Y-%m-%d %H:%M:%S',
                                      time.localtime(time.time()))
    # 获取条件集合
    conditions = []
    segmentconfig = {}
    if timing_list:
        conditions = get_timeconditions(timing_list, conditions)
    # if auto_list:
    #     conditions, segmentconfig = get_autoconditions(auto_list, conditions)
    data["conditions"] = conditions
    if segmentconfig:
        data["segmentconfig"] = segmentconfig
    print data
    flag = sendSetCommand(self,
                          Constant.WHAT_SCREEN_BRIGHTNESS,
                          Constant.TYPE_POLICY,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setBrightnessInfo_Auto")

    return flag
Пример #9
0
def openCloseScreenAuto(self, open=[], close=[]):
    '''
            设置自动开关屏策略
    :param1   self    必须
    :param2   open    二维列表     外层表示有N条策略,内层是每条策略的具体内容
                                                                 内层列表    第一位【 0:每天    1:周日    2:周一    3:周二    ... 7:周六     "1,2,3":周日/周一/周二 】
                                                                                     第二位  字符串   eg:: "15:16":15点16分       "15:16:17":15点16分17秒
                                                                                     第三位  bool型     Ture 或者   False
    :param3  close   同上
    :return  flag bool型   是否下发成功   
    :example flag = openCloseScreenAuto(self,open=[[0,'15:20',True],[]],close=[["1,2","14:20:45",False]])
                    
    '''
    conditions = []
    if open:
        cron_open = {}
        for li in open:
            cron, flag = getCron(li)
            cron_open["cron"] = [cron]
            cron_open["action"] = "OPEN"
            cron_open["enable"] = flag
            conditions.append(cron_open)
    if close:
        cron_close = {}
        for li in close:
            cron, flag = getCron(li)
            cron_close["cron"] = [cron]
            cron_close["action"] = "CLOSE"
            cron_close["enable"] = flag
            conditions.append(cron_close)

    source = {}
    source["type"] = 0
    source["platform"] = 1

    data = {}
    data["type"] = "SCREENPOWER"
    data["source"] = source
    data["enable"] = True
    data["conditions"] = conditions

    # print data
    flag = sendSetCommand(self,
                          Constant.WHAT_SCREEN_POWER,
                          Constant.TYPE_POLICY,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe='openCloseScreenAuto')
    return flag
Пример #10
0
def setScreenPowerModel_MANUALLY(self):
    '''
             设置开关屏的模式为 手动
    :parma    self  必须
    :return    flag    bool型
    :example    flag = setScreenPowerModel_MANUALLY(self)
    '''
    data = {}
    data["type"] = "SCREENPOWER"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["mode"] = "MANUALLY"

    flag = sendSetCommand(self,Constant.WHAT_SCREEN_POWER,Constant.TYPE_MODE,Constant.ACTION_SET,0,data=data,describe="changeScreenPowerModel_MANUALLY")
    return flag
Пример #11
0
def listStop(self, identifier=''):
    '''
            清单停止播放
    :param1   self        必须
    :param2   identifier          type:str      唯一标识码
    :return  flag bool型   是否停止播放成功   
    :example flag = ListStop(self,identifier='')
    '''
    data = {"identifier": identifier}
    flag = sendSetCommand(self,
                          Constant.WHAT_PLAYLIST,
                          0x02,
                          Constant.ACTION_STOP,
                          0,
                          data=data,
                          timeout=4,
                          describe="清单停止播放")
    return flag
Пример #12
0
def listDelete(self, identifier='', name=''):
    '''
            清单删除
    :param1   self        必须
    :param2   identifier          type:str      唯一标识码
    :param3        name   清单名称
    :return  flag bool型   是否停止播放成功   
    :example flag = ListDelete(self,identifier='' ,name=''):
    '''
    data = {"solutions": [{"identifier": identifier, "name": name}]}
    flag = sendSetCommand(self,
                          Constant.WHAT_PLAYLIST,
                          0x01,
                          Constant.ACTION_DELETE,
                          0,
                          data=data,
                          timeout=4,
                          describe="清单删除")
    return flag
def setVideoControl_HDMI_Priority(self):
    '''
             设置视频源控制模式为 HDMI优先
    :parma    self  必须
    :return    flag    bool型
    :example    flag = setVideoControl_hdmi_priority(self)
    '''

    data = {}
    data["type"] = "VIDEO_CONTROL"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["videoMode"] = 0

    flag = sendSetCommand(self, Constant.WHAT_VIDEO_CONTROL, Constant.TYPE_VIDEO_CONTROL,
                          Constant.ACTION_SET, 0, data=data, describe="setVideoControl_HDMI_Priority",
                          applyTo=["T2-4G", "T2", "T4", "T6", "T8"])
    return flag
Пример #14
0
def setManualModel(self):
    '''
    :param self: 必须
    :return:  flag  bool
    example:  flag = setManualModel(self)
    
    '''
    ntp = False
    lora = False
    data = {}
    data["type"] = "NET_TIMING"
    data["source"] = {"type": 1, "platform": 1}
    data["enable"] = True
    data["ntp"] = {"enable": ntp, "server": "ntp1.aliyun.com"}
    data["lora"] = {"address": 1, "channel": 23, "enable": lora, "mode": "MASTER", "groupId": "novad101"}
    data["gps"] = {"enable": False}
    data["compatibility"] = {"supportLoraInfo": True}

    flag = sendSetCommand(self, Constant.WHAT_NET_TIMING, 0, Constant.ACTION_SET, 0, data=data, describe="setNTPModel")
    return flag
Пример #15
0
def setBrightnessModel(self, model):
    '''
             设置亮度控制模式
    :parma    self  必须
    :parma    model  控制模式 手动:MANUALLY 自动:AUTO
    :return    flag    bool型
    :example    flag = setBrightnessModel(self, 'AUTO')
    '''

    data = {}
    data["type"] = "SCREEN_BRIGHTNESS"
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["mode"] = model

    flag = sendSetCommand(self, Constant.WHAT_SCREEN_BRIGHTNESS, Constant.TYPE_MODE,
                          Constant.ACTION_SET, 0, data=data, describe="setBrightnessModel:" + model)
    return flag
Пример #16
0
 def bindLite(self, sn, data):
     #绑定vonnoxlite
     identifier = get_playerIdentifier(Server_address, info["token"])
     if identifier:
         data = copy.deepcopy(data)
         data["data"]["playerList"][0]["identifier"] = identifier
         data["data"]["playerList"][0]["playerIdentifier"] = sn.upper()
         # print identifier+":"+sn.upper()
         flag = sendSetCommand(self,
                               Constant.WHAT_PLAYER_BINDING,
                               Constant.TYPE_VNNOX_BINDINFO,
                               Constant.ACTION_SET,
                               0,
                               data=data,
                               sns=[sn],
                               timeout=8,
                               describe="绑定lite播放器")
         # print flag
     else:
         print "未获取到identifier"
         return
Пример #17
0
def setCustomResolution(self, width, height):
    '''
        设置自定义分辨率
    :param self:
    :param width: 显示屏宽度
    :param height: 显示屏高度
    :return: flag 是否成功
    '''
    # 设置自定义分辨率
    data_cus = {}
    data_cus["width"] = width
    data_cus["height"] = height
    data_cus["displayMode"] = 1  # 默认 DISPLAY_INTERFACE_TV
    flag = sendSetCommand(self,
                          Constant.WHAT_SYS_ADVANCED,
                          Constant.TYPE_CUSTOM_RESOLUTION,
                          Constant.ACTION_SET,
                          0,
                          data=data_cus,
                          describe="setCustomResolution",
                          applyTo=["T1", "T2", "T3", "T4", "T6", "T8"])
    return flag
Пример #18
0
def setCurrentResolution(self, resolutionValue):
    '''
        设置系统分辨率
    :param self:
    :param resolutionValue: 分辨率的值
    :return: flag 是否成功
    '''

    # 设置系统分辨率
    data_cus = {}
    data_cus["displayMode"] = 1  # 默认 DISPLAY_INTERFACE_TV
    data_cus["resolutionValue"] = resolutionValue
    flag = sendSetCommand(self,
                          Constant.WHAT_SYS_ADVANCED,
                          Constant.TYPE_CURRENT_RESOLUTION,
                          Constant.ACTION_SET,
                          0,
                          data=data_cus,
                          describe="setCurrentResolution",
                          applyTo=["T2-4G", "T1-4G"])

    return flag
Пример #19
0
def careRegister(self, url, username):
    '''
            将等陆的终端注册至指定的节点和用户下
    :param    self    必须
              url    字符串    eg:care.novaicare.com  注意不用写"http://"
              username    字符串    care的用户名
    :return   flag   bool型
    :example  flag = careRegister(self,"10.20.8.161","chenyongfa")
    '''
    data = {}
    data["state"] = True
    data['url'] = url
    data['username'] = username
    flag = True
    for sn in self.sns:
        flag1 = sendSetCommand(self,
                               Constant.WHAT_MONITOR,
                               Constant.TYPE_CARE,
                               Constant.ACTION_SET,
                               0,
                               data=data,
                               sns=[sn],
                               timeout=20,
                               describe="registerCare")
        if not flag1:
            flag = False
        else:
            print sn + "注册care命令发送成功"
        # time.sleep(3)

    # n = len(self.sns)/4
    # for i in range(n+1):
    #     flag1 = sendSetCommand(self,Constant.WHAT_MONITOR,Constant.TYPE_CARE,Constant.ACTION_SET,0,data=data,sns=(self.sns)[i*4:(i+1)*4],timeout=20,describe="registerCare")
    #     if not flag1:
    #         flag = False
    #     time.sleep(3)

    return flag
Пример #20
0
def setHDMIResolution(self, width, height):
    '''
        设置HDMI分辨率
    :param self:
    :param width: 显示屏宽度
    :param height: 显示屏高度
    :return: flag 是否成功
    '''
    # 设置HDMI分辨率
    data_cus = {}
    data_cus["width"] = width
    data_cus["height"] = height
    data_cus["fieldRate"] = 50  # 场频,即刷新频率 默认50
    flag = sendSetCommand(self,
                          Constant.WHAT_VIDEO_CONTROL,
                          Constant.TYPE_EDID,
                          Constant.ACTION_SET,
                          0,
                          data=data_cus,
                          describe="setHDMIResolution",
                          timeout=10,
                          applyTo=["T2", "T2-4G", "T4", "T6", "T8"])
    return flag
def setVolume_Manual(self, ratio):
    '''
    手动设置音量
    :param self:
    :param ratio: 音量百分比
    :return: flag 是否成功
    :example    flag = setVolume_Manual(self, ratio=50)
    '''

    data = {}
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["ratio"] = ratio
    flag = sendSetCommand(self,
                          Constant.WHAT_VOLUME,
                          0,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setVolume_Manual")
    return flag
Пример #22
0
def openScreenManual(self):
    '''
             手动开屏
    :parma    self  必须
    :return    flag    bool型 (命令是否发送成功)
    :example    flag = openScreenManual(self)
    '''
    data = {
        "type": "SCREENPOWER",
        "source": {
            "type": 1,
            "platform": 1
        },
        "state": "OPEN"
    }
    flag = sendSetCommand(self,
                          Constant.WHAT_SCREEN_POWER,
                          Constant.TYPE_MANUAL,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="openScreen")
    return flag
Пример #23
0
def setNTPModel(self, node="cn"):
    '''
    设置为NTP对时模式
    :param    self    必须
    :param    node    对时服务器 "cn" 或者 "us"
    :return   flag   bool型
    :example  flag = careRegister(self,"10.20.8.161","chenyongfa")
    '''
    ntp = True
    lora = False
    data = {}
    data["type"] = "NET_TIMING"
    data["source"] = {"type": 1, "platform": 1}
    data["enable"] = True
    if "cn" in node.lower():
        data["ntp"] = {"enable": ntp, "server": "ntp1.aliyun.com"}
    else:
        data["ntp"] = {"enable": True, "server": "http://us.ntp.org.cn"}
    data["lora"] = {
        "address": 1,
        "channel": 23,
        "enable": lora,
        "mode": "MASTER",
        "groupId": "novad101"
    }
    data["gps"] = {"enable": False}
    data["compatibility"] = {"supportLoraInfo": True}

    flag = sendSetCommand(self,
                          Constant.WHAT_NET_TIMING,
                          0,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          timeout=3,
                          describe="setNTPModel")
    return flag
Пример #24
0
def restart_CONDITIONS(self, conditions=[]):
    '''
            设置自动重启策略
    :param1   self        必须
    :param2   conditions  二维列表     外层表示有N条策略,内层是每条策略的具体内容
                                                                             内层列表    第一位【 0:每天    1:周日    2:周一    3:周二    ... 7:周六     "1,2,3":周日/周一/周二 】
                                                                                                 第二位  字符串   eg:: "15:16":15点16分       "15:16:17":15点16分17秒
                                                                                                 第三位  bool型     Ture 或者   False
    :return  flag bool型   是否下发成功   
    :example flag = restart_CONDITIONS(self,conditions=[[0,'15:20',True],["2,3",'16:20',False]])                 
'''
    conditions_temp = []
    for i in range(len(conditions)):
        li = {}
        cron, flag = getCron(conditions[i])
        li["cron"] = [cron]
        li["enable"] = flag
        conditions_temp.append(li)
    source = {"type": 0, "platform": 1}
    data = {
        'type': "REBOOT",
        'source': source,
        'executionType': "BY_CONDITIONS",
        'reason': "Just to test",
        'conditions': conditions_temp
    }

    flag = sendSetCommand(self,
                          Constant.WHAT_SYS_ADVANCED,
                          Constant.TYPE_REBOOT,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          timeout=1,
                          describe="set_restart")
    return flag
def setBrightness_Manual(self, ratio):
    '''
    手动设置亮度
    :param self:
    :param ratio: 音量百分比
    :return: flag 是否成功
    :example    flag = setBrightness_Manual(self, ratio=50)
    '''

    data = {}
    source = {}
    source["type"] = 0
    source["platform"] = 1
    data["source"] = source
    data["ratio"] = ratio
    print data
    flag = sendSetCommand(self,
                          Constant.WHAT_SCREEN_BRIGHTNESS,
                          Constant.TYPE_MANUAL,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          describe="setBrightness_Manual")
    return flag
Пример #26
0
def update(self, type="", sns=None):
    if type == "APP":
        UPath = os.path.abspath("../file/update/APP")
        for i in os.listdir(UPath):
            if "UPDATE_APP" in i:
                filename = i
    elif type == "OS3128":
        UPath = os.path.abspath("../file/update/OS3128")
        for i in os.listdir(UPath):
            if "UPDATE_OS" in i:
                filename = i
    elif type == "OS3368":
        UPath = os.path.abspath("../file/update/OS3368")
        for i in os.listdir(UPath):
            if "UPDATE_OS" in i:
                filename = i
    else:
        raise RuntimeError("update方法的type参数有误")
    if not filename:
        print "升级文件目录下没有" + type + "升级包"
        return False

    filepath = UPath + "/" + filename
    source = "/cache/" + filename
    '''上传升级文件'''
    flag = uploadFile(self,
                      user="******",
                      file=filepath,
                      ftpdir="",
                      sns=sns)

    if flag:
        print type + "升级文件全部上传成功"
    else:
        print type + "升级文件未全部上传成功"

    if type == "APP":
        version = re.findall(r"UPDATE_APP_(.+?).nuzip", filename)[0]
        setConf("data", "appversion", version)
    elif type == "OS3128":
        version = re.findall(r"UPDATE_OS_(.+?).nuzip", filename)[0]
        setConf("data", "os3128version", version)
    elif type == "OS3368":
        version = re.findall(r"UPDATE_OS_(.+?).nuzip", filename)[0]
        setConf("data", "os3368version", version)

    size = os.path.getsize(filepath)
    md5 = getFileMd5(filepath)
    data = {}
    data["type"] = "UPDATE"
    data["source"] = {"type": 0, "platform": 1}
    tasks = []
    task = {}
    task["packageType"] = "NUZIP"
    task["version"] = version
    task["executionType"] = "IMMEDIATELY"
    if type == "APP":
        task["updateType"] = "UPDATE"
        task["startupAfterInstalled"] = True
        task["startupAfterBoot"] = True

    task["conditions"] = []
    task["source"] = source
    task["size"] = int(size)
    task["md5"] = md5

    tasks.append(task)
    data["tasks"] = tasks
    print data

    result = sendSetCommand(self,
                            Constant.WHAT_UPDATE,
                            0,
                            Constant.ACTION_UPDATE,
                            0,
                            sns=sns,
                            data=data,
                            timeout=120,
                            describe=type + "升级命令")
    return result
Пример #27
0
def confScreen(self,
               portNumber=1,
               width=64,
               height=32,
               xCount=1,
               yCount=1,
               xOffset=0,
               yOffset=0,
               orders=[1],
               portIndex=0):
    '''
            设置配屏信息
    :param1   self        必须
    :param2   portNumber  网口数量(1-2)
    :param3   width        接收卡大小宽度
    :param4   height       接收卡大小高度
    :param5   xCount       X方向上接收卡个数
    :param6   yCount       Y方向上接收卡个数
    :param7   xOffset      X轴偏移
    :param8   yOffset      Y轴偏移
    :param9   orders       连接顺序 (0-7)
    :param10  portIndex    网口序号(0-1)
    :return  flag bool型   是否下发成功   
    :example1 flag = screenConf(self,portNumber=1,width=64,height=32,xCount=1,yCount=1,xOffset=0,yOffset=0,orders=[1],portIndex=0)
    :example2 flag = screenConf(self,portNumber=2,width=64,height=32,xCount=1,yCount=1,xOffset=0,yOffset=0,orders=[1],portIndex=1)
                     
    '''
    data = {
        "screenAttributes": [{
            "id":
            0,
            "screenSource":
            0,
            "xCount":
            xCount,
            "yCount":
            yCount,
            "xOffset":
            xOffset,
            "yOffset":
            yOffset,
            "portNumber":
            portNumber,
            "orders":
            orders,
            "scanInfos": [{
                "width": width,
                "height": height,
                "x": 0,
                "y": 0,
                "xInPort": 0,
                "yInPort": 0,
                "portIndex": portIndex,
                "connectIndex": 0
            }]
        }]
    }
    flag = sendSetCommand(self,
                          Constant.WHAT_SCREEN_ATTRIBUTE,
                          Constant.TYPE_SCREEN_ATTR,
                          Constant.ACTION_SET,
                          0,
                          data=data,
                          timeout=10,
                          describe="screenConf")
    return flag