def Mex_MakeAddr(dt): if dt['addlen'] > 1: s = 0x80 + dt['addlen'] s = hex(s)[-2:] + pfun.strReverse(dt['addr']) else: s = pfun.strReverse(dt['addr']) return s
def upgradeDataProc_DL645(recv, uplist): ret, dt = dl645_dealframe(recv, False) if ret: strDI = pfun.strReverse(dt['data'][:8]) strData = pfun.strReverse(dt['data'][8:]) strDI = hex2str(str2hex(strDI, 1)) strData = hex2str(str2hex(strData, 1)) print('strDI:', strDI, 'strData:', strData) if strDI == '04a00501': # 查询漏包 upgradeRecvDataToMap(strData, uplist)
def upgradeStart(self): data = pfun.strReverse("04A00502") data += pfun.strReverse(self.password) # 产品类型 + 版本日期 + 软件版本 + 硬件版本 + 文件总长 + 总包数 + 包长度 + 文件CRC校验 + 升级模式字 # value = "28210000#18121716#01010002#01000000#0001f9c1#03f4#80#75d3#0000" # value = "28210000#20121110#01031006#01030000#" + self.FILE_LEN + "#" + self.FILE_PACK_NUM + "#" + "80" + "#" + self.FILE_CRC + "#" + "0000" data += pfun.strReverse(self.FILEINFO['dwFileType']) data += pfun.strReverse(self.FILEINFO['dwDateTime']) data += pfun.strReverse(self.FILEINFO['dwSWVersion']) data += pfun.strReverse(self.FILEINFO['dwHWVersion']) data += pfun.strReverse(self.FILE_LEN) data += pfun.strReverse(self.FILE_PACK_NUM) data += hex(self.packlen).replace("0x", "00")[-2:] data += pfun.strReverse(self.FILE_CRC) data += '00' data += '00' data = Dl645DataAdd33(data) senddata = make645Frame('', self.addr, '14', data) return senddata
def upgradeSendFile(self, i): sindex = hex(i + 1).replace("0x", "0000")[-4:] data = pfun.strReverse("04A00501") data += pfun.strReverse(self.password) data += pfun.strReverse(self.FILE_MANUIDEN) data += pfun.strReverse(self.FILE_DEV_TYPE) data += pfun.strReverse(self.FILE_PACK_NUM) data += pfun.strReverse(sindex) data += self.flist[i] data = Dl645DataAdd33(data) senddata = make645Frame('', self.addr, '14', data) return senddata
def GetFileInfo(self, s): fileinfo = {} if len(s) >= 88 and s[:8] == 'FB04EFFE': l = [] for i in range(0, 88, 8): ls = s[i:i + 8] l += [pfun.strReverse(ls)] fileinfo['dwSignature'] = l[0] fileinfo['dwSize'] = l[1] fileinfo['dwFileOS'] = l[2] fileinfo['dwFileType'] = l[3] fileinfo['dwChipType'] = l[4] fileinfo['dwRFChipType'] = l[5] fileinfo['dwSWVersion'] = l[6] fileinfo['dwDateTime'] = l[7] fileinfo['dwProReleaseTime'] = l[8] fileinfo['dwProRecordTime'] = l[9] fileinfo['dwHWVersion'] = l[10] return fileinfo
def upgradeCheckPack(self): data = pfun.strReverse("04A00501") data = Dl645DataAdd33(data) senddata = make645Frame('', self.addr, '11', data) return senddata