def bt_ota_run(self,event=None,msg=None):#通过串口给蓝牙升级
# EventMesh.publish("wakeup_BT")
EventMesh.publish(constants.EVENT.SYSTEM_UP)#唤醒休眠
- print("bt_ota_run!!!:url:{}".format(msg))
+ print("bt_ota_run!!!:{}".format(msg))
print("bt_ota_run!!!")
print("bt_ota_run!!!")
self.bt_ota_flag = 1
break
utime.sleep_ms(10)
print("ota_start:count:{}".format(count))
+ url = msg[0]
+ bt_size = msg[1]
headers_T = {"Content-Type":"application/octet-stream"}
- response = request.get(url = msg,headers=headers_T,timeout = 120,decode = False)
+ response = request.get(url = url,headers=headers_T,timeout = 120,decode = False)
offset = 0
checksum = 0
for i in response.content:
break
utime.sleep_ms(10)
print("ota_data:{} count:{}".format(len(json_str),count))
- if send_count <=0 or self.read_ack_flag == 1:
+ if self.read_ack_flag == 1:
break
+ if send_count <=0 :
+ return -1
offset+=len(i)
+ if offset < bt_size:
+ return -1
self.read_ack_flag = 0
json_data = \
{
break
utime.sleep_ms(1)
self.bt_ota_flag = 0
- return 1
+ return 0
audio_buf = ['chaobingfatis', 'chenggong', 'didianguanji', 'IMEIhao', 'jianquancuowu', 'key_prompt', 'liuliangtishi', 'Low_power_warning', 'R_CHARGE_FULL', 'R_CHARGE_IN', 'R_CHARGE_OUT', 'R_READ_TIME_0', 'R_READ_TIME_1', 'R_READ_TIME_2', 'R_READ_TIME_3', 'R_READ_TIME_4', 'R_READ_TIME_5', 'R_READ_TIME_6', 'R_READ_TIME_7', 'R_READ_TIME_8', 'R_READ_TIME_9', 'R_READ_TIME_A', 'R_READ_TIME_B', 'R_READ_TIME_C', 'R_READ_TIME_D', 'R_READ_TIME_E', 'R_READ_TIME_F', 'R_READ_TIME_G', 'R_READ_TIME_H', 'R_READ_TIME_I', 'R_READ_TIME_J', 'R_READ_TIME_K', 'R_READ_TIME_L', 'R_READ_TIME_M', 'R_READ_TIME_N', 'R_READ_TIME_O', 'R_READ_TIME_P', 'R_READ_TIME_Q', 'R_READ_TIME_R', 'R_READ_TIME_S', 'R_READ_TIME_T', 'R_READ_TIME_U', 'R_READ_TIME_V', 'R_READ_TIME_W', 'R_READ_TIME_X', 'R_READ_TIME_Y', 'R_READ_TIME_Z', 'send_tone', 'shouhou', 'xinhaoruo1', 'zhengzaiguanji']
class AI_dev(Abstract):
# AI
self.downloadFileVoURL1= ""
self.downloadFileVoURL2= ""
self.downloadFileVoURLBT=""
+ self.BT_ota_size =0
self.ota_task_id = None
#蓝牙升级升级,返回0,没有升级;返回,1有升级,正在执行升级;返回2,电压不够
def bt_ota(self,event=None,msg=None):
for fileList in data["data"]["fileList"]:
if fileList["fileName"] == "update.ufw":
+ self.BT_ota_size = fileList["size"]
self.downloadFileVoURLBT = fileList["url"]
if data["code"] == 20006:#已是最新版本
ret_str = 0
elif fileList["fileName"] == "dfota_1.bin":
self.downloadFileVoURL1 = fileList["url"]
elif fileList["fileName"] == "update.ufw":
+ self.BT_ota_size = fileList["size"]
self.downloadFileVoURLBT = fileList["url"]
if data["code"] == 20006:#已是最新版本
ret_str = 0
if VC_satrt_flag == 0 or count<=0 or voice_record_satrt_flag == 0:
break
utime.sleep_ms(100)
- if self.downloadFileVoURLBT != "":
- EventMesh.publish("bt_ota_run",self.downloadFileVoURLBT) #升级蓝牙
+ if self.downloadFileVoURLBT != "" and self.BT_ota_size != 0:
+ count = 5 #重试5次
+ while 1:
+ count -=1
+ ret = EventMesh.publish("bt_ota_run",[self.downloadFileVoURLBT,self.BT_ota_size ]) #升级蓝牙
+
+ if ret == 0 or count <=0:
+ break
+ utime.sleep_ms(1000)
utime.sleep_ms(1000)
- EventMesh.publish("rest_TB") #复位蓝牙
+ #EventMesh.publish("rest_TB") #复位蓝牙
utime.sleep_ms(50000)
if self.downloadFileVoURL1 == "" and self.downloadFileVoURL2 == "": #cat1没有升级的时候,要重启设备
Power.powerRestart()
print("pwk_key_release")
EventMesh.publish("publish_AI_btnInfo",{"func":self.Close})
EventMesh.publish("stop_sos_call")
- #EventMesh.publish("sleep_BT")#休眠蓝牙
+ EventMesh.publish("sleep_BT")#休眠蓝牙
def key_prompt(self):
EventMesh.publish("audio_montage_play",["key_prompt.mp3"])