self.stop_voice_timer=osTimer()
self.pwk_cnt_voice = 0 #不听语音后,积攒的次数,需要一起播放
self.pwk_notice_flag = 0#是否处于积攒留言状态(用来实现单次提醒)
+ self.is_noread_voice = EventMesh.publish("get_storage_config","is_noread_voice")
+ if self.is_noread_voice == None:
+ self.is_noread_voice = 0#是否还有未读留言(开机判断)
EventMesh.subscribe("AI_key_press", self.AI_key_press)
EventMesh.subscribe("BT_AI_key_press", self.BT_AI_key_press)
EventMesh.subscribe("stop_AI_record", self.stop_AI_record)
EventMesh.subscribe("get_wait_voice_flag",self.get_wait_voice_flag)#获取60S等待留言播放定时器状态
EventMesh.subscribe("set_wait_voice_flag",self.set_wait_voice_flag)#修改60S等待留言播放定时器状态
EventMesh.subscribe("rate_move",self.rate_move)#NLP修改语速
+ EventMesh.subscribe("set_pwk_notice_flag",self.set_pwk_notice_flag)#设置未读状态
# EventMesh.subscribe("get_voicerupt_flag",self.get_voicerupt_flag)#获取留言播放状态
# EventMesh.subscribe("chenggong_tone",self.chenggong_tone)
self.speech_rate -= 10
EventMesh.publish("set_storage_config",["speech_rate",self.speech_rate])
print("set_speech_rate:{}".format(self.speech_rate))
-
+ def set_pwk_notice_flag(self,event,msg):#设置未读状态
+ self.pwk_notice_flag = msg
#获取60S等待留言播放定时器状态
def get_wait_voice_flag(self,event,msg):
return self.wait_voice_flag
def set_pwk_cnt_voice(self, event=None, msg = None):
self.pwk_cnt_voice=msg
+ print("设置未读次数为:{}".format(self.pwk_cnt_voice))
#会议
def get_meetaudio_flag(self, event=None, msg = None):
# return
EventMesh.publish("exit_meet_mode")#退出会议纪要
EventMesh.publish("exit_trans_mode")#退出AI翻译
- EventMesh.publish("update_play_new_voice_info")#更新已读状态
- self.recv_voice = 0#退出留言以及留言查看
+ if EventMesh.publish("get_recv_voice") == 1:
+ EventMesh.publish("update_play_new_voice_info")#更新已读状态
+ self.recv_voice = 0#退出留言以及留言查看
EventMesh.publish("set_history_voice_flag",0)#修改标志位
self.AI_new_voice_url = ""
EventMesh.publish("publish_AI_btnInfo",{"func":self.Close})
self.pwk_notice_flag = 0
self.wait_first_flag = 0#让下次未读播放提示恢复
self.voice_notice = 1#开启回复
+ EventMesh.publish("set_storage_config",["is_noread_voice",0])
if self.voice_choose_flag == 1:#播放完语音后,有冲突的时候关闭
self.voice_choose_flag = 0
self.Close_flag = 1
# EventMesh.publish("play_tts",["您有一条语音留言,10秒内按下中间键可以收听",1])
if self.pwk_notice_flag == 0 and EventMesh.publish("get_app_new_voice_flag"):#不处于播放状态并且是小程序下发的语音而不是请求的
self.pwk_cnt_voice += 1#加上当前这条
+ EventMesh.publish("set_storage_config",["is_noread_voice",1])
EventMesh.publish("set_app_new_voice_flag",0)
print("voice_add_to = {}".format(self.pwk_cnt_voice))
print("self.pwk_notice_flag = {}".format(self.pwk_notice_flag))
name = alarm_tts_info["title"]
if AringTimes == 0:
AringTimes = 1
- repeat_sentence = (alarm_TTS_str + ",") # 重复5次并加逗号分隔
- final_sentence = repeat_sentence.rstrip(",")
+ repeat_sentence = name # 重复5次并加逗号分隔
+ final_sentence = repeat_sentence
final_sentence = "日程提醒: 您设置的" + final_sentence + "时间到了,请留意"
self.schedule_play_count = AringTimes
EventMesh.publish("play_tts",[final_sentence,1]) #播放tts闹钟文本内容
print("结束播放")
self.stop_play = 0
break
+ if EventMesh.publish("get_storage_config","is_noread_voice") == 1:#还有未读的(开机)
+ if EventMesh.publish("get_open_device") == 1:#刚开机
+ EventMesh.publish("play_wait_voice",[url,1])
+ EventMesh.publish("set_open_device",0)
if EventMesh.publish("get_history_voice_flag") == 1:#播放历史留言 or 播放当前留言
if EventMesh.publish("get_wait_voice_flag") == 1:#等待留言
EventMesh.publish("play_wait_voice",[url,1])
elif "查看历史留言" in cmd :#当指令中有查看历史留言时,调用历史留言接口
EventMesh.publish(WEB_CMD_ENUM.GET_NEW_VOICE_MSG_S)
EventMesh.publish("set_history_voice_flag",1)#修改标志位
- EventMesh.publish("clean_unread_vocie")#清空未读多条一起下发记录
+ EventMesh.publish("clean_unread_vocie")#清空未读多条一起下发记录
+ EventMesh.publish("set_storage_config",["is_noread_voice",0])
pass
elif "语速倍速设置为:" in cmd:#修改对话模式
voice_start_index = cmd.index("语速倍速设置为:") + len("语速倍速设置为:")#动态判断截取部分
self.has_processed_history_voice = 0 #播完列表不许再拨“历史未读留言为空”
EventMesh.subscribe("set_history_board_flag",self.set_history_board_flag)
EventMesh.subscribe("set_open_device",self.set_open_device)
+ EventMesh.subscribe("get_open_device",self.get_open_device)
def send(self, event, msg):
print("send find_voice_msg_list")
print("msg[\"data\"] = {}".format(voice_list))
if EventMesh.publish("get_history_voice_flag") == 1:
if len(voice_list) == 0:#为空
- EventMesh.publish("set_history_voice_flag",0)
- EventMesh.publish("set_wait_voice_flag",0)
if EventMesh.publish("get_wait_voice_flag") == 0:#未听历史留言
if self.has_processed_history_voice == 0:
tts_play_str = "历史未读留言列表为空"
else:#等待历史留言
self.has_processed_wait_voice = 0
self.wait_first_flag = 0
+ EventMesh.publish("set_recv_voice",0) #设置留言播放状态
+ EventMesh.publish("set_history_voice_flag",0)
+ EventMesh.publish("set_wait_voice_flag",0)
else:#有历史留言
if EventMesh.publish("get_wait_voice_flag") == 0:#历史留言
print("历史广播状态!!!!! = {}".format(self.history_board_flag))
else:#未读留言
if self.open_device == 1:
EventMesh.publish("set_pwk_cnt_voice",len(voice_list))#设置未读次数,由于是开机一起查看的
- self.open_device = 0
for da in voice_list:
new_voice_list.append(da)
if len(new_voice_list) > 0:
self.history_board_flag = msg
def set_open_device(self,event,msg):
self.open_device = msg
+ def get_open_device(self,event,msg):
+ return self.open_device
#请求未读的语音消息列表
class IOTWeb_get_new_voice_msgProtoCol(ProtoCol):
"""get_new_voice_msg"""
if get_VC_satrt_flag == 0:
print("收到多条信息,统一播放")
self._1M_flag = 0
+ EventMesh.publish("set_pwk_cnt_voice",len(EventMesh.publish("get_play_new_voice_list")))#设置未读次数
EventMesh.publish(WEB_CMD_ENUM.GET_NEW_VOICE_MSG_S)
EventMesh.publish("set_history_voice_flag",1)#修改历史留言标志位
EventMesh.publish("set_wait_voice_flag",1)#修改60S标志位