--- /dev/null
+from misc import Power
+import usocket
+import log
+import utime
+from machine import UART
+import _thread
+from queue import Queue
+from machine import Pin
+from machine import ExtInt
+import osTimer
+import utime
+import ql_fs
+import binascii
+import ujson
+import uos
+
+
+log.basicConfig(level=log.INFO)
+clog = log.getLogger("cat1")
+
+USR_FILE_PATH = "/usr" #
+BAK_FILE_PATH = "{}/TmpPyFile".format(USR_FILE_PATH)
+BAK_FILE_TMP = "_bak"
+CAT1_SERVICE_HEAD = "FE"
+CAT1_FILE_DATA_HEAD = "FF"
+CAT1_REPLAY_STATE="00"
+CAT1_CREAT_DIR_FAILE= "01"
+CAT1_CREAT_DIR_OK= "02"
+CAT1_NO_REPLAY_OTA_OK= "03"
+CAT1_WRITE_FILE_SUCC= "04"
+CAT1_WRITE_FILE_ERROR = "05"
+CAT1_CRC_ERROR = "06"
+CAT1_SEND_HEAD_ERR = "07"
+CAT1_OTA_TIMEOUT_BLE_NO_REPLAY = "08"
+CAT1_CREAT_FILE_ERROR = "09"
+CAT1_CREAT_FILE_SUCC = "0A"
+CAT1_ALLPY_FILE_TRANSFER_END = "0B"
+CAT1_REPLAY_OTA_SUCC = "0C"
+CAT1_REPLAY_OTA_FALIE = "0D"
+CAT1_REPLAY_FILE_SIZE_OK = "0E"
+CAT1_REPLAY_FILE_SIZE_ERR = "0F"
+CAT1_REPLAY_OTA_END_FAILE = "10"
+CAT1_NEED_UPDATE_OTA = "11"
+CAT1_TCP_STOP_OTA = 0
+CAT1_TCP_START_OTA = 1
+CAT1_TCP_START_SEND_SINGLE_FILE_INFO= 2
+CAT1_TCP_START_SEND_FILE_DATA= 3
+CAT1_TCP_START_OTA_FAILE = 4
+CAT1_TCP_START_OTA_SUCC = 5
+CAT1_TCP_START_SEND_ALLFILE_FINESH = 6
+CAT1_TCP_SEND_SINGLE_FINESH = 7
+CAT1_TCP_START_ERROR_INFO = 255
+
+gpioWakeBT = Pin(Pin.GPIO21, Pin.OUT, Pin.PULL_DISABLE, 1)
+gpioWakeBT.set_dir(Pin.OUT)
+gpioWakeBT.write(0)
+FILE_TRANSFER_TIMEOUT=60
+class TcpServiceInit:
+ AP = 0
+ STA = 1
+
+ def __init__(self, uart=UART.UART4, mode=AP):
+ self.__uart = uart
+ self.__mode = mode
+ self.Cat1FileState = 0
+ self.Cat1FileReplayBle = 0
+ self.Cat1TimeCount = 0
+ self.Cat1PyFileTimout = FILE_TRANSFER_TIMEOUT
+ self.Cat1FileTransTimer = osTimer()
+ self.Cat1OtaTimeOut = osTimer()
+ self.crc_err = 0
+ self.allPyRecvFlag = 0
+ self.ota_state =0
+ self.ota_bstate =0
+ self.fileNameTmp = ""
+ self.fileNameList = []
+ self.fileSizeList = []
+ self.fileSize = 0
+ self.updateTimer = osTimer()
+ self.updateTimerCount = 0
+ self.updateTimerFlag = 0
+ self.sock = None
+ self.bakFlag = "0"
+ self.conn= None
+ self.__sock_file = None
+ self.__sock_file = self.__socket_file_init()
+ self.__thread_file = _thread.start_new_thread(self.__Socket_File_Thread, ())
+ self.conn_thread=_thread.start_new_thread(self._client_conn_proc, ())
+
+ def __pack_tlv_format(self, head, content):
+ head1 = head
+ content1 = content
+ if len(content1) == 0 or len(content1) > 9999 or len(head1) != 2:
+ return -1
+ len_str ='%04d' % len(content1)
+ tlv_pack = CAT1_SERVICE_HEAD+head1+len_str+content1
+ return tlv_pack
+
+ def __unpack_tlv_format(self, msg):
+ msg_tmp = str(msg)[2:]
+ tag = msg_tmp[0:2]
+ length = msg_tmp[2:6]
+ value = msg_tmp[6:]
+ len_str ='%04d' % len(value)
+ if len(value) == 0 or len(value) > 9999 or len(tag) != 2 or len_str != msg_tmp[2:6]:
+ return -1
+ unpack = (tag,length,value)
+ return unpack
+
+ def __socket_file_init(self):
+ self.sock = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM, usocket.IPPROTO_TCP_SER)
+ self.sock.setsockopt(usocket.SOL_SOCKET, usocket.SO_REUSEADDR, 1)
+ bind_addr = ('172.16.1.2', 5001)
+ self.sock.bind(bind_addr)
+ self.sock.listen(10)
+ return self.sock
+
+ def __Socket_TCP_file_noreply(self, head, content):
+ head1 = head
+ content1 = content
+ gpioWakeBT.write(1)
+ utime.sleep_ms(2)
+ gpioWakeBT.write(0)
+ utime.sleep_ms(20)
+ msg = self.__pack_tlv_format(head1,content1)
+ if msg == -1:
+ return 0
+ try:
+ self.conn.send(msg)
+ except Exception as e:
+ clog.info("self.__sock_file error {}".format(e))
+ return 0
+
+ def _client_conn_proc(self):
+ while True:
+ if self.conn==None:
+ utime.sleep_ms(20)
+ continue
+ try:
+ data = self.conn.recv(1024)
+ if not data:
+ clog.info("__Socket_File_Thread data null:\r\n")
+ else:
+ self.src_data(data.decode('uft-8'))
+ except:
+ self.conn.close()
+ break
+
+ def __Socket_File_Thread(self):
+ while True:
+ try :
+ cli_conn, cli_ip_addr, cli_port = self.__sock_file.accept()
+ self.conn=cli_conn
+ clog.info('[serveice] accept a client: %s, %s' % (cli_ip_addr, cli_port))
+ except :
+ utime.sleep_ms(20)
+
+ def cat1FileTimerCb(self,*argc):
+ clog.info("timer test\r\n")
+ if self.Cat1PyFileTimout > 0:
+ self.Cat1PyFileTimout-=1
+ if self.Cat1PyFileTimout == 0:
+ self.Cat1PyFileTimout = 0
+ self.Cat1FileState = 0
+ self.deleteTmpFile()
+ self.deleteUsrTmpFile()
+ self.__Socket_TCP_file_noreply(CAT1_OTA_TIMEOUT_BLE_NO_REPLAY,"ota error") #结束文件接收不完整的
+ self.Cat1FileTransTimer.stop()
+ pass
+
+ def crc_cal(self,msg):
+ bytes_data = msg.encode('utf-8')
+ hex_data = binascii.hexlify(bytes_data)
+ hex_data = hex_data.decode()
+ data = hex_data
+ crcValue = 0
+ j = 0
+ i = 0
+ json_state = 0
+ crcbuf = 0
+ data_len = len(str(data))
+ try:
+ if data_len % 2 != 0:
+ json_state = 0
+ return [json_state,crcbuf]
+ except Exception as e:
+ json_state = 0
+ for i in range(data_len):
+ if j >= data_len:
+ break
+ try:
+ decimal_number = int(str(data[j:j+2]), 16)
+ crcValue=crcValue+decimal_number
+ crcValue = crcValue&0xff
+ except Exception as e:
+ clog.info("crc_cal")
+ j+=2
+ crcbuf = crcValue%256
+ crcbuf = 256-crcbuf
+ crcbuf = crcbuf%256
+ return [json_state,"%02x"%(crcbuf)]
+ def deleteTmpFile(self):
+ tmp_dir = ql_fs.path_exists(BAK_FILE_PATH)
+ if tmp_dir == True:
+ ql_fs.rmdirs(BAK_FILE_PATH)
+
+ def deleteUsrTmpFile(self):
+ return
+
+ def src_data(self,data):
+ if self.updateTimerFlag == 0:
+ self.updateTimerFlag = 1
+ self.updateTimer.stop()
+ msg = ""
+ json_state = 0
+ try:
+ msg = ujson.loads(data)
+ json_state = 1
+ except Exception as e:
+ json_state = 0
+ if json_state == 0:
+ value = self.__unpack_tlv_format(data)
+ self.cmd_data(value[0],value[2])
+ return
+ else:
+ self.file_data(msg)
+ pass
+ def cmd_data(self,cmd,parm):
+ if cmd == "01":
+ self.bakFlag = str(parm)
+ pass
+ def file_data(self,msg):
+ if "Code" in msg:
+ Code = int(msg["Code"])
+ if Code == CAT1_TCP_STOP_OTA:
+ self.allPyRecvFlag = 0
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.deleteTmpFile()
+ self.deleteUsrTmpFile()
+ pass
+ elif Code == CAT1_TCP_START_OTA:
+ self.ota_state =0
+ self.ota_bstate =0
+ self.allPyRecvFlag = 0
+ self.fileNameList = []
+ self.fileSizeList = []
+ self.allPyRecvFlag = 0
+ self.Cat1FileState = 0
+ self.deleteUsrTmpFile()
+ self.Cat1OtaTimeOut.stop()
+ check_dir = ql_fs.path_exists(BAK_FILE_PATH)
+ mk_dir_state = 0
+ if check_dir == True:
+ try:
+ self.deleteTmpFile()
+ except Exception as e:
+ clog.info("移除失败\r\n")
+ check_dir = ql_fs.path_exists(BAK_FILE_PATH)
+ if check_dir == False:
+ try:
+ ql_fs.mkdirs(BAK_FILE_PATH)
+ mk_dir_state = 1
+ except Exception as e:
+ mk_dir_state = 0
+ else:
+ mk_dir_state = 1
+ if mk_dir_state == 0:
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_DIR_FAILE,"creat dir error!")
+ else:
+ self.Cat1FileState = 1
+ self.fileNameList = []
+ self.fileSizeList = []
+ self.Cat1PyFileTimout = FILE_TRANSFER_TIMEOUT
+ self.Cat1FileTransTimer.stop()
+ self.Cat1FileTransTimer.start(1000,1,self.cat1FileTimerCb)
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_DIR_OK,"creat dir success!")
+
+ elif Code == CAT1_TCP_START_SEND_SINGLE_FILE_INFO and self.Cat1FileState == 1:
+ self.Cat1PyFileTimout = FILE_TRANSFER_TIMEOUT
+ self.fileNameTmp = str(msg["fileName"])
+ self.fileSize = msg["fileSize"]
+ self.fileNameList = msg["fileNameList"]
+ path = "{}/{}".format(BAK_FILE_PATH,self.fileNameTmp)
+ check_touch = ql_fs.path_exists("{}/{}".format(BAK_FILE_PATH,self.fileNameTmp))
+ if check_touch == True:
+ try:
+ uos.remove("{}/{}".format(BAK_FILE_PATH,self.fileNameTmp))
+ except Exception as e:
+ clog.info("移除文件失败\r\n")
+ try:
+ with open(path,"w+") as fd:
+ fd.write("")
+ fd.close()
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_FILE_SUCC,"1creat file or dir success!")
+ except Exception as e:
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_FILE_ERROR,"1creat file or dir err!")
+ else:
+ try:
+ with open(path,"w+") as fd:
+ fd.write("")
+ fd.close()
+ self.crc_err = 0
+
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_FILE_SUCC,"2creat file or dir success!")
+ except Exception as e:
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_FILE_ERROR,"2creat file or dir err!")
+
+
+ elif Code == CAT1_TCP_START_SEND_FILE_DATA and self.Cat1FileState == 1:
+ self.Cat1PyFileTimout = FILE_TRANSFER_TIMEOUT
+ if len(self.fileNameTmp) == 0:
+ return
+ data = msg["data"]
+ if len(data) == 0:
+ return
+ tmpdata = str(data)
+ head = tmpdata[0:2]
+ if head != CAT1_FILE_DATA_HEAD or len(tmpdata) <= 8:
+ clog.info("head {}\r\n".format(head))
+ self.__Socket_TCP_file_noreply(CAT1_SEND_HEAD_ERR,"head error!")
+ return
+ datalen = str(tmpdata[2:6])
+ datalen = int("0x" + datalen, 16)
+ data_buf = tmpdata[6:]
+ data_buf = data_buf[:-2]
+ crc = tmpdata[-2:]
+ if len(str(data_buf)) == 0 or len(str(data_buf)) != datalen:
+ self.__Socket_TCP_file_noreply(CAT1_WRITE_FILE_ERROR,"crc error or data null!")
+ return
+ data = str(data_buf)
+ path = "{}/{}".format(BAK_FILE_PATH,str(self.fileNameTmp))
+ try:
+ with open(path,"a") as fd:
+ fd.write(data)
+ fd.close()
+ self.__Socket_TCP_file_noreply(CAT1_WRITE_FILE_SUCC,"write file success!")
+
+ except Exception as e:
+ self.__Socket_TCP_file_noreply(CAT1_WRITE_FILE_ERROR,"write file error!")
+
+ elif Code == CAT1_TCP_START_OTA_FAILE and self.Cat1FileState == 1:
+ self.allPyRecvFlag = 0
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"OTA FAILE")
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.deleteTmpFile()
+ self.deleteUsrTmpFile()
+ pass
+ elif Code == CAT1_TCP_START_SEND_ALLFILE_FINESH and self.Cat1FileState == 1:
+ if self.bakFlag == "0":
+ if self.allPyRecvFlag == 1:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ else:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.Cat1OtaTimeOut.stop()
+ self.Cat1TimeCount = 0
+ self.ota_state = 1
+ self.allPyRecvFlag = 1
+ self.Cat1OtaTimeOut.start(5000,0,self.otaTimeOut)
+ return
+ tmp_dir = ql_fs.path_exists(BAK_FILE_PATH)
+ if tmp_dir == True:
+ filenamesList = uos.listdir(BAK_FILE_PATH)
+ list1 = sorted(filenamesList)
+ list2 = sorted(self.fileNameList)
+ if list1 != list2:
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.deleteUsrTmpFile()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota end faile!")
+ return
+ try:
+ copy_state = 1
+ compare_flag = 1
+ copy_flag = 0
+ filenamesList = uos.listdir(BAK_FILE_PATH)
+ for tmp in filenamesList:
+ dst_path = "{}/{}".format(USR_FILE_PATH,tmp)
+ src_path = "{}/{}".format(BAK_FILE_PATH,tmp)
+ ret = False
+ file_size = 0
+ try:
+ ret = ql_fs.file_copy(dst_path,src_path)
+
+ if ret == True:
+ dstfile_size = ql_fs.path_getsize(dst_path)
+ srcfile_size = ql_fs.path_getsize(src_path)
+ if dstfile_size != srcfile_size:
+ compare_flag = 0
+ break
+ else:
+ try:
+ compare_flag = 1
+ uos.remove(src_path)
+ filenamesList = uos.listdir(BAK_FILE_PATH)
+ except Exception as e:
+ clog.info("copy file \r\n")
+ else:
+ compare_flag = 0
+ break
+ except Exception as e:
+ clog.info("copy file \r\n")
+
+ if copy_state == 0 or compare_flag == 0 :
+ self.deleteUsrTmpFile()
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota faile!22")
+ return
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.Cat1OtaTimeOut.stop()
+ self.Cat1TimeCount = 0
+ self.ota_state = 1
+ self.allPyRecvFlag = 1
+ self.Cat1OtaTimeOut.start(5000,0,self.otaTimeOut)
+ except Exception as e:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota faile!33")
+ self.deleteUsrTmpFile()
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ else:
+ if self.ota_state == 1:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ pass
+ else:
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.deleteUsrTmpFile()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota end faile!")
+
+ elif Code == CAT1_TCP_START_OTA_SUCC and self.Cat1FileState == 1:
+ if self.bakFlag == "0":
+ self.deleteUsrTmpFile()
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ if self.allPyRecvFlag == 1:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ else:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota end faile!")
+ return
+
+ if self.allPyRecvFlag == 0:
+ self.deleteTmpFile()
+ self.deleteUsrTmpFile()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota end faile!")
+ return
+ tmp_dir = ql_fs.path_exists(BAK_FILE_PATH)
+ if tmp_dir == True:
+ filenamesList = uos.listdir(BAK_FILE_PATH)
+ list1 = sorted(filenamesList)
+ list2 = sorted(self.fileNameList)
+ if list1 != list2:
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.deleteUsrTmpFile()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota end faile!")
+ return
+
+ try:
+ copy_state = 1
+ compare_flag = 1
+ filenamesList = uos.listdir(BAK_FILE_PATH)
+ for tmp in filenamesList:
+ dst_path = "{}/{}".format(USR_FILE_PATH,tmp)
+ src_path = "{}/{}".format(BAK_FILE_PATH,tmp)
+ ret = False
+ file_size = 0
+ try:
+ ret = ql_fs.file_copy(dst_path,src_path)
+ if ret == True:
+ dstfile_size = ql_fs.path_getsize(dst_path)
+ srcfile_size = ql_fs.path_getsize(src_path)
+ if dstfile_size != srcfile_size:
+ compare_flag = 0
+ break
+ else:
+ try:
+ compare_flag = 1
+ uos.remove(src_path)
+ filenamesList = uos.listdir(BAK_FILE_PATH)
+ except Exception as e:
+ clog.info("file\r\n")
+ else:
+ compare_flag = 0
+ break
+
+ except Exception as e:
+ clog.info("file\r\n")
+ if copy_state == 0 or compare_flag == 0 :
+ self.deleteUsrTmpFile()
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota faile!22")
+ return
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.Cat1OtaTimeOut.stop()
+ self.Cat1TimeCount = 0
+ self.ota_bstate = 1
+ self.conn.close()
+ self.Cat1OtaTimeOut.start(10000,0,self.otaTimeOut)
+ except Exception as e:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota faile!33")
+ self.deleteUsrTmpFile()
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ else:
+ if self.ota_bstate == 1:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"ota success!")
+ pass
+ else:
+ self.deleteTmpFile()
+ self.Cat1FileState = 0
+ self.Cat1FileTransTimer.stop()
+ self.deleteUsrTmpFile()
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_FALIE,"ota end faile!")
+
+ elif Code == CAT1_TCP_SEND_SINGLE_FINESH and self.Cat1FileState == 1:
+ self.Cat1PyFileTimout = FILE_TRANSFER_TIMEOUT
+ tmp_dir = ql_fs.path_exists(BAK_FILE_PATH)
+ if tmp_dir == True:
+ tmp_file = ql_fs.path_exists("{}/{}".format(BAK_FILE_PATH,self.fileNameTmp))
+ if tmp_file == True:
+ file_size = ql_fs.path_getsize("{}/{}".format(BAK_FILE_PATH,self.fileNameTmp))
+ if self.fileSize != file_size:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_FILE_SIZE_ERR,"file size err")
+ else:
+ if self.bakFlag == "0":
+ dst_path = "{}/{}".format(USR_FILE_PATH,self.fileNameTmp)
+ src_path = "{}/{}".format(BAK_FILE_PATH,self.fileNameTmp)
+ ret = False
+ try:
+ ret = ql_fs.file_copy(dst_path,src_path)
+ if ret == True:
+ dstfile_size = ql_fs.path_getsize(dst_path)
+ srcfile_size = ql_fs.path_getsize(src_path)
+ if dstfile_size != srcfile_size:
+ src_file = ql_fs.path_exists(src_path)
+ if src_file == True:
+ try:
+ uos.remove(src_path)
+ except Exception as e:
+ clog.info("copy 文件异常出错 yichu!{}:\r\n".format(e))
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_FILE_SIZE_ERR,"file size err")
+ return
+ else:
+ src_file = ql_fs.path_exists(src_path)
+ if src_file == True:
+ try:
+ uos.remove(src_path)
+ except Exception as e:
+ clog.info("copy 文件异常出错!!!!!!!!!!{}:\r\n".format(e))
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_FILE_SIZE_OK,"file size ok")
+ return
+ else:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_FILE_SIZE_ERR,"file copy err")
+ except Exception as e:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_FILE_SIZE_ERR,"file copy err")
+ else:
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_FILE_SIZE_OK,"file copy ok")
+ else:
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_FILE_ERROR,"creat file or dir err!")
+ pass
+ else:
+ self.__Socket_TCP_file_noreply(CAT1_CREAT_DIR_FAILE,"creat file or dir error!")
+ pass
+ else:
+ if self.Cat1FileState == 0:
+ if self.Cat1FileReplayBle == 1:
+ return
+ self.Cat1FileReplayBle = 1
+ self.__Socket_TCP_file_noreply(CAT1_REPLAY_OTA_SUCC,"reset start!")
+ self.Cat1FileState == 0
+ self.Cat1FileTransTimer.stop()
+ self.Cat1PyFileTimout = 0
+ self.fileNameList=[]
+ self.deleteTmpFile()
+ self.deleteUsrTmpFile()
+
+ def otaTimeOut(self,*argc):
+ clog.info("重启成功!!!!!!!!\r\n")
+
+TcpService = TcpServiceInit()
+
+