print("send_queu_uart_data sucess data:{} {}".format(data["data"],type(data["data"])))
self.uart_queue_send_data(data["data"])
if "resend_flag" in data:
- print("需要重发")
print("send_reset_cb:{} {}".format(data["resend_flag"],data["ACK_time"]))
if data["resend_flag"] == 1:
self.send_count = 5#重试5次
elif jsload_data["event"] == "AI_PWR_PRESS" :#电源按键按下
EventMesh.publish("publish_AI_btnInfo",{"func":self.pwk_key_release})
ack_flag = 1
- elif jsload_data["event"] == "bt_scan_rest":#扫描列表
+ elif jsload_data["event"] == "bt_scan_rest":#扫描列表 #蓝牙停止扫描后主动向4g发送扫描列表需要发送ack
EventMesh.publish("send_bt_scan_list",jsload_data)
ack_flag=1
- elif jsload_data["event"]=="bt_connect_single":
+ elif jsload_data["event"]=="bt_connect_single": #收到蓝牙主动发送过来的单个连接蓝牙耳机的连接状态 需要发送ack
EventMesh.publish("save_bt_connect_list",jsload_data)
ack_flag=1
- elif jsload_data["event"]=="need_send_bt_connect_list":
+
+ elif jsload_data["event"]=="need_send_bt_connect_list": #发送连接蓝牙连接记录列表 不需要发送ack
self.get_bt_connect_timer.stop()
self.get_bt_connect_flag = 0
- EventMesh.publish("save_bt_connect_list",jsload_data)
+ EventMesh.publish("save_bt_connect_list",jsload_data) #先保存连接记录再发送连接耳机列表to IOT
EventMesh.publish("send_bt_connect_list")
- ack_flag=1
+
elif jsload_data["event"]=="get_ble_switch":
- ble_switch_flag = EventMesh.publish("get_storage_config","switch_ble_state")#ble开关
+ ble_switch_flag = EventMesh.publish("get_storage_config","switch_ble_state")#ble开关 不需要发送ack
if ble_switch_flag == None:
ble_switch_flag = "1"
EventMesh.publish("send_ble_switch_toble",str(ble_switch_flag))
- ack_flag=1
+
pass
elif jsload_data["event"]=="get_bt_switch":
- bt_switch_flag = EventMesh.publish("get_storage_config","switch_bt_state")#bt开关
+ bt_switch_flag = EventMesh.publish("get_storage_config","switch_bt_state")#bt开关 不需要发送ack
if bt_switch_flag == None:
bt_switch_flag = "1"
EventMesh.publish("send_bt_switch_toble",bt_switch_flag)
- ack_flag=1
+
pass
- elif jsload_data["event"]=="get_cat1_imei":
+ elif jsload_data["event"]=="get_cat1_imei": #蓝牙主动向4G获取imei 4g不需要发送ack 蓝牙收到imei需要回ack给4改
EventMesh.publish("send_imei_to_ble")
ack_flag=1
pass
- elif jsload_data["event"] == "post_bt_connect_rest":
+ elif jsload_data["event"] == "post_bt_connect_rest": #蓝牙主动蓝牙耳机连接状态 需要发送ack给蓝牙
EventMesh.publish("recv_bt_connect_rest",jsload_data)
ack_flag=1
- elif jsload_data["event"] == "clear_earphone_record_ok":
+
+ elif jsload_data["event"] == "clear_earphone_record_ok":#清除蓝牙耳机连接记录
tts_play_str = "删除成功"
EventMesh.publish("play_tts",[tts_play_str,1])
- ack_flag=1
+ self.read_ack_flag = 1
elif jsload_data["event"] == "versions":
self.bt_versions = jsload_data["data"]
print("当前蓝牙版本是:{}".format(self.bt_versions))
- elif jsload_data["event"] == "kws" :#电源按键按下
+ self.read_ack_flag = 1
+
+ elif jsload_data["event"] == "kws" :#
EventMesh.publish("kws_even")
- elif jsload_data["event"] == "ack" :#电源按键按下
+ elif jsload_data["event"] == "ack" :#
self.read_ack_flag = 1
if ack_flag == 1:
self.send_ack()
}
json_str =ujson.dumps(json_data)
print("clear_earphone_record{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
def adjust_volume_toBle(self,event,msg): #
self.read_ack_flag=0
volume = int(msg)
}
json_str =ujson.dumps(json_data)
print("switch_ble_state{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
elif msg == 2: #AI对话开启蓝牙
json_data = \
}
json_str =ujson.dumps(json_data)
print("switch_ble_state{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
elif msg == 3: #AI对话开启蓝牙
json_data = \
{
}
json_str =ujson.dumps(json_data)
print("switch_bt_state{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
elif msg == 4: #AI对话开启蓝牙
json_data = \
}
json_str =ujson.dumps(json_data)
print("switch_bt_state{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
def send_bt_switch_toble(self,event,msg):
EventMesh.publish("publish_AI_btnInfo",{"func":self.send_bt_switch_toble_cb,"data":msg})
}
json_str =ujson.dumps(json_data)
print("send_bt_switch_toble{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
def send_ble_switch_toble(self,event,msg):
EventMesh.publish("publish_AI_btnInfo",{"func":self.send_ble_switch_toble_cb,"data":msg})
}
json_str =ujson.dumps(json_data)
print("send_ble_switch_toble{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
# 重发机制
def send_reset_cb(self,json_str,need_resend = None,timeOut=None):
print("bt_send_end")
def send_data(self,str_data,need_resend = None,ACK_time =None):
+ if self.bt_ota_flag == 1:
+ print("ota 中不需要上传")
+ return
print("send_data{} {} {}".format(str_data,need_resend,ACK_time))
queue_data={"event":"uart_send_data","data":str_data}
if need_resend != None:
print("send_get_versions{}".format(json_str))
print("send_get_versions{}".format(json_str))
print("send_get_versions{}".format(json_str))
- self.send_data(json_str)
+ self.send_data(json_str,1)
+ count =1000
+ while True:
+ count -=1
+ if count <=0 or self.read_ack_flag == 1:
+ break
+ utime.sleep_ms(1)
pass
def start_ota(self,event=None,msg=None):#通过串口给蓝牙升级
if count <=0 or self.read_ack_flag == 1:
break
utime.sleep_ms(10)
+ EventMesh.publish(constants.EVENT.SYSTEM_UP)#唤醒休眠
print("ota_start:count:{}".format(count))
url = msg[0]
bt_size = msg[1]