HELIOS_JRTC_LOG("interrupt handle thread failed to get queue\n");
continue;
}
- HELIOS_JRTC_LOG("roomid:%s, ticket:%s, video:%x, camera:%x.", open_msg.roomid, open_msg.ticket, open_msg.video, open_msg.camera);
+ HELIOS_JRTC_LOG("roomid:%s, ticket:%s, video:%x, camera:%x.\n", open_msg.roomid, open_msg.ticket, open_msg.video, open_msg.camera);
if (test == NULL) {
test = jrtc_open(open_msg.roomid, open_msg.ticket, open_msg.video, open_msg.camera);
return mp_obj_new_int(ret);
}
else {
+ if(jrtc_state(test) == JRTC_CLOSED){
+ test = NULL;
+ return mp_obj_new_int(1);
+ }
if (test == NULL) {
return mp_obj_new_int(1);
}
STATIC mp_obj_t mp_jrtc_get_state(void)
{
int sta = jrtc_state(test);
-
+ HELIOS_JRTC_LOG("mp_jrtc_get_state!!! %d",sta);
return mp_obj_new_int(sta);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_jrtc_get_state_obj, mp_jrtc_get_state);
self.temp_auto = 0
self.video_count = 0
+
+ self.sos_state = 0
+
self.video_call_state = 0#视频通话拨进来还是拨出去的状态 1代表是正在拨进或者拨出去
self.video_call_in_mode = 0 #0是语音 1是视频通话
EventMesh.subscribe("app_restart", self.app_restart)#远程重启
-
+ EventMesh.subscribe("get_sos_state_out", self.get_sos_state_out)#正在拨打sos电话
+
+ EventMesh.subscribe("set_sos_state_out", self.set_sos_state_out)#清除在拨打sos电话
def interInfo_queue_thread(self):
while True:
sos_flag = EventMesh.publish("get_sos_flag")
if sos_flag == 1:
self.call_state = 0
+ EventMesh.publish("set_sos_state_out")
EventMesh.publish("set_sos_flag",0)
EventMesh.publish("set_sos_num",0)
EventMesh.publish("set_hangup_mode",0)
if NEW_ENABLE == 0:#新的按键功能定义
video_state = EventMesh.publish("get_video_state")
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
return
EventMesh.publish("play_cur_time_event")#播报当前时间
#播报当前时间
sos_flag = EventMesh.publish("get_sos_flag")
if sos_flag == 1:
self.call_state = 0
+ EventMesh.publish("set_sos_state_out")
EventMesh.publish("set_sos_flag",0)
EventMesh.publish("set_sos_num",0)
EventMesh.publish("set_hangup_mode",0)
return
video_state = EventMesh.publish("get_video_state")
- print("video_state",video_state)
+ # print("video_state",video_state)
self.video_count+=1
if self.video_count >= 30 or video_state == 0:#一分钟挂断视频通话
- EventMesh.publish("video_reject_cb",None)#挂断视频通话
+ EventMesh.publish("video_newwork_reject_cb",None)#挂断视频通话
self.video_call_state = 0
self.video_count=0
+ self.timer.stop()
return
if video_state != 6 or self.video_call_state == 0:#视频电话呼入
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("close_timer_all")#
return
if self.video_call_in_mode == 0:
- EventMesh.publish("set_led_time_arg",[1,2,10*2,led_mode.FLASH_LIGHT_RED,10,5,led_mode.VIDEO_MEASURE_MODE])#測量成功
+ EventMesh.publish("set_led_time_arg",[1,2,10*2,led_mode.FLASH_LIGHT_RED,10,5,led_mode.VIDEO_MEASURE_MODE])#
str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_VIDEO_VOICE_IN"))
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件
else:
- EventMesh.publish("set_led_time_arg",[1,2,10*2,led_mode.FLASH_LIGHT_RED,10,5,led_mode.VIDEO_MEASURE_MODE])#測量成功
+ EventMesh.publish("set_led_time_arg",[1,2,10*2,led_mode.FLASH_LIGHT_RED,10,5,led_mode.VIDEO_MEASURE_MODE])#
str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_VIDEO_CALL_IN"))
EventMesh.publish("play_audio_file",[str_data,1])#获取播放音频文件
return
EventMesh.publish("close_timer_all")#
EventMesh.publish("close_wechat_btn_timer")#
- # EventMesh.publish("set_led_time_arg",[1,2,10*10,led_mode.FLASH_LIGHT_RED,10,5,led_mode.OTHER_MEASURE_MODE])#測量成功
+ # EventMesh.publish("set_led_time_arg",[1,2,10*10,led_mode.FLASH_LIGHT_RED,10,5,led_mode.OTHER_MEASURE_MODE])#
EventMesh.publish("clear_video_timer_state")
EventMesh.publish("set_app_dev_end_state")
if msg != None:
if open_power == 0 or power_off == 1 :
return
video_state = EventMesh.publish("get_video_state")#加入中
- print("video_out_timer_cb video_state",video_state)
+ # print("video_out_timer_cb video_state",video_state)
self.video_count+=1
if self.video_count >= 30 or video_state == 0:#40s挂断视频通话 对方无响应
- EventMesh.publish("video_reject_cb",None)#挂断视频通话
+ self.timer.stop()
+ EventMesh.publish("video_newwork_reject_cb",None)#挂断视频通话
self.video_call_state = 0
self.video_count = 0
if power_off == 1:
return
self.sos_phone_num = ''
- # EventMesh.debug_log("sos_out_call_center_cb",msg)
+ EventMesh.debug_log("sos_out_call_center_cb",msg)
if self.call_state == 0:
-
+ self.sos_state = 0
EventMesh.publish("close_timer_all")#
if msg == None:
str_data = 'mp3files={}.mp3'.format(audio_buf.index("R_NO_SET_SOS_DIAL"))
# EventMesh.publish("play_audio_file",str_data)#获取播放音频文件('U:/static/audio.bin',1,1,str_data)
else:
sos_state = EventMesh.publish("get_dev_state")
-
+ self.sos_state = 1
tmp = 1 << 16
sos_state = sos_state|tmp #第21位=1
EventMesh.publish("set_dev_state",sos_state)
def sos_time_out_phone(self, msg):#30s超时未打通或者信号不好则重新拨打
+ self.sos_state = 0
sos_flag = EventMesh.publish("get_sos_flag")
if sos_flag == 1:
if self.call_state == 0:
+ EventMesh.publish("set_sos_state_out")
EventMesh.publish("set_sos_info_call")
def sos_call_out_phone(self, msg):#电话拨出去
voiceCall.callStart(self.sos_phone_num)
+ def get_sos_state_out(self, event, msg):#正在拨打sos电话
+ return self.sos_state
+
+ def set_sos_state_out(self, event, msg):#清除在拨打sos电话
+ self.sos_state = 0
def call_test_event(self, event, msg):
voiceCall.callStart(str("10086"))
return
self.KeyCall1_status = int(args[1])
- EventMesh.txt_log('key17_extint_cb :{}'.format(args))
+ # EventMesh.debug_log('key17_extint_cb :{}'.format(args))
if self.KeyCall1_status == 0:
self.KeyCall1_status = 1
else:
video_state = EventMesh.publish("get_video_state")
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
if video_state != 6:#6是app打手表需要接通
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
return
self.WeChatKey_status = self.wechatKey.read_level()
self.GPIO26_status = self.pwk_key26.read_level()
self.KeyCall2_status = self.extint_19.read_level()
self.sosKey_status = self.sosKey.read_level()
- # EventMesh.debug_log('key17_extint_cb1',args,self.KeyCall2_status,self.Keycall2_press,self.Keycall2_long_press)
- # EventMesh.debug_log('key17_extint_cb2',self.Keycall2_press) # args[0]:gpio号 args[1]:上升沿或下降沿
-
- EventMesh.debug_log('key17_extint_cb',args,self.KeyCall2_status,self.WeChatKey_status,self.GPIO26_status,self.KeyCall1_status,self.sosKey_status) # args[0]:gpio号 args[1]:上升沿或下降沿
+ # EventMesh.debug_log('key17_extint_cb',args,self.KeyCall2_status,self.WeChatKey_status,self.GPIO26_status,self.KeyCall1_status,self.sosKey_status) # args[0]:gpio号 args[1]:上升沿或下降沿
if self.WeChatKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall2_status != 0 and self.sosKey_status != 0:
if self.KeyCall1_status == 0:#按下
if NEW_ENABLE == 0:#新的按键功能定义
video_state = EventMesh.publish("get_video_state")
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
- if video_state != 6:#6是app打手表需要接通
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
- self.Keycall1_press_count=0
- self.wechatKey_timer.stop()
- self.pwkey_timer.stop()
- self.sosKey_timer.stop()
- self.Keycall2_timer.stop()
- self.Keycall1_timer.stop()
+ if video_state == 6:#6 是app拨打手表 1 是手表打app 3 是正在视频通话中 0 关闭只有第一次视频通话打入才允许接听 接通之后不允许接听了
+ EventMesh.publish("video_answer_cb")
+ else:
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
+ self.Keycall1_press_count=0
+ self.wechatKey_timer.stop()
+ self.pwkey_timer.stop()
+ self.sosKey_timer.stop()
+ self.Keycall2_timer.stop()
+ self.Keycall1_timer.stop()
+
return
EventMesh.publish("close_wechat_btn_timer")
if self.Keycall1_press == 0 :
elif self.Keycall1_press_count == 1:#
self.Keycall1_press_count = 0
EventMesh.publish("stop_led_timer")#设置参数
- print("video_state call",video_state)
+ # print("video_state call",video_state)
# if video_state != 0:
# if video_state == 6:#6 是app拨打手表 1 是手表打app 3 是正在视频通话中 0 关闭只有第一次视频通话打入才允许接听 接通之后不允许接听了
# EventMesh.publish("video_answer_cb")
def key19_extint_cb(self,args):#call 2
- EventMesh.txt_log('key19_extint_cb :{}'.format(args))
+ # EventMesh.txt_log('key19_extint_cb :{}'.format(args))
power_off = EventMesh.publish("get_power_off_state")#获取关机标识
open_power = EventMesh.publish("get_power_on_state")#获取开机标识
dev_app_mode = EventMesh.publish("get_dev_app_mode")
video_state = EventMesh.publish("get_video_state")
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
if video_state != 6:#6是app打手表需要接通
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
return
self.WeChatKey_status = self.wechatKey.read_level()
self.GPIO26_status = self.pwk_key26.read_level()
- # self.KeyCall1_status = self.extint_17.read_level()
- # self.sosKey_status = self.sosKey.read_level()
- # EventMesh.debug_log('key19_extint_cb ',args,self.KeyCall1_status,self.GPIO26_status,self.WeChatKey_status,self.sosKey_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿
+ self.KeyCall1_status = self.extint_17.read_level()
+ self.sosKey_status = self.sosKey.read_level()
# EventMesh.debug_log('self.KeyCall1_status :{}',args,self.KeyCall1_status) # args[0]:gpio号 args[1]:上升沿或下降沿
if self.WeChatKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall1_status != 0 and self.sosKey_status != 0:
if self.KeyCall2_status == 0:#按下
elif self.Keycall2_press_count == 1:#
self.Keycall2_press_count = 0
video_state = EventMesh.publish("get_video_state")
- print("video_state ",video_state)
+ # print("video_state ",video_state)
if video_state != 0:
if video_state == 6:#6 是app拨打手表 1 是手表打app 3 是正在视频通话中 0 关闭只有第一次视频通话打入才允许接听 接通之后不允许接听了
EventMesh.publish("video_answer_cb")
def pwk_extint_cb(self,args):#侧边按键
- EventMesh.txt_log('pwk_extint_cb :{}'.format(args))
+ # EventMesh.txt_log('pwk_extint_cb :{}'.format(args))
open_power = EventMesh.publish("get_power_on_state")#获取开机标识
open_power_off = EventMesh.publish("get_power_off_state")#获取开机标识
video_state = EventMesh.publish("get_video_state")
print("pwk_extint_cb")
# EventMesh.publish("video_answer_cb")
else:
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
return
self.WeChatKey_status = self.wechatKey.read_level()
- # self.KeyCall2_status = self.extint_17.read_level()
+ self.KeyCall2_status = self.extint_17.read_level()
self.KeyCall1_status = self.extint_19.read_level()
- # self.sosKey_status = self.sosKey.read_level()
- # EventMesh.debug_log('pwk_extint_cb ',args,self.GPIO26_status,self.WeChatKey_status,self.sosKey_status,self.KeyCall1_status,self.KeyCall2_status) # args[0]:gpio号 args[1]:上升沿或下降沿
- # self.GPIO26_status = ~args[1]
- # EventMesh.debug_log('### GPIO26_status {} self.GPIO26_status :{}'.format(args,self.GPIO26_status)) # args[0]:gpio号 args[1]:上升沿或下降沿
+ self.sosKey_status = self.sosKey.read_level()
+
if self.WeChatKey_status != 0 and self.KeyCall1_status != 0 and self.sosKey_status != 0 and self.KeyCall2_status != 0:
if self.GPIO26_status == 0:#按下
- # if NEW_ENABLE == 0:#新的按键功能定义
- # video_state = EventMesh.publish("get_video_state")
- # if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
- # if video_state == 6:#6是app打手表需要接通
- # pass
- # # EventMesh.publish("video_answer_cb")
- # else:
- # EventMesh.publish("video_reject_cb",2)#挂断视频通话
- # self.Keycall1_press_count=0
- # self.wechatKey_timer.stop()
- # self.pwkey_timer.stop()
- # self.sosKey_timer.stop()
- # self.Keycall2_timer.stop()
- # self.Keycall1_timer.stop()
- # return
EventMesh.publish("close_wechat_btn_timer")
if self.pwkey_press == 0 :
self.aud.stop() #播放声音
if flag == 1:#如果是sos电话拨出去
sos_flag = EventMesh.publish("get_sos_flag")
if sos_flag == 1:
+ EventMesh.publish("set_sos_state_out")
EventMesh.publish("set_sos_flag",0)
EventMesh.publish("set_sos_num",0)
EventMesh.publish("set_hangup_mode",0)
self.WeChatKey_status = self.wechatKey.read_level()
self.GPIO26_status = self.pwk_key26.read_level()
self.KeyCall1_status = self.extint_19.read_level()
- # self.KeyCall2_status = self.extint_17.read_level()
+ self.KeyCall2_status = self.extint_17.read_level()
- EventMesh.debug_log('sosKey_extint_cb ',args,self.sosKey_status,self.WeChatKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿
+ # EventMesh.debug_log('sosKey_extint_cb ',args,self.sosKey_status,self.WeChatKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿
if self.WeChatKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall1_status != 0 and self.KeyCall2_status != 0:
if self.sosKey_status == 0:#按下
if NEW_ENABLE == 0:#新的按键功能定义
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
if video_state == 6 or get_video == 0:
EventMesh.debug_log("sosKey_extint_cb",get_video,video_state)
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
self.sosKey_press_count=0
self.wechatKey_timer.stop()
self.pwkey_timer.stop()
# 4、短按六次,播报IMEI号
# 5、短按十次,解绑APP,同时恢复出厂设置
def sosKey_timeout_cb(self, data):#
- print("sosKey_timeout_cb",self.sosKey_press_count)
+ # print("sosKey_timeout_cb",self.sosKey_press_count)
open_power = EventMesh.publish("get_power_on_state")#获取开机标识
open_power_off = EventMesh.publish("get_power_off_state")#获取开机标识
if open_power != None and open_power_off != None:
pass
elif self.sosKey_press_count == 3:#视频通话
self.sosKey_press_count = 0
-
+ battery = EventMesh.publish("screen_get_battery")
+ if battery != None:
+ if battery[0] != "1":#在充电得时候
+ return
+ pass
call_state = EventMesh.publish("get_call_state")
battery = EventMesh.publish("screen_get_battery")
if call_state == None:
call_state = 0
- if call_state == 0:
+ if call_state == 0:
+ flag = EventMesh.publish("get_call_state")
+ fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识
+ usb_state = EventMesh.publish("get_usb")#
+ video_state = EventMesh.publish("get_video_state")
+ if flag != 0 or usb_state == 1 or usb_state == 3 or fall_down != 0:
+ return
+ pass
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("call_viode_book_num")
pass
video_state = EventMesh.publish("get_video_state")
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
if video_state != 6:#6是app打手表需要接通
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
return
- # self.sosKey_status = self.sosKey.read_level()
+ self.sosKey_status = self.sosKey.read_level()
self.GPIO26_status = self.pwk_key26.read_level()
self.KeyCall1_status = self.extint_19.read_level()
- # self.KeyCall2_status = self.extint_17.read_level()
+ self.KeyCall2_status = self.extint_17.read_level()
# EventMesh.debug_log('wechatKey_extint_cb ',args,self.WeChatKey_status,self.sosKey_status,self.KeyCall1_status,self.KeyCall2_status,self.GPIO26_status) # args[0]:gpio号 args[1]:上升沿或下降沿
# if self.sosKey_status != 0 and self.GPIO26_status != 0:
if self.sosKey_status != 0 and self.GPIO26_status != 0 and self.KeyCall1_status != 0 and self.KeyCall2_status != 0:
video_state = EventMesh.publish("get_video_state")
if video_state != 0:#视频通话打入或者接听后允许挂断视频通话
if video_state != 6:#6是app打手表需要接通
- EventMesh.publish("video_reject_cb",2)#挂断视频通话
+ EventMesh.publish("video_dev_reject_cb",2)#挂断视频通话
self.wechatKey_press_count = 0
self.wechatKey_timer.stop()
self.pwkey_timer.stop()
self.wechatKey_press_count = 0
EventMesh.publish("stop_led_timer")#设置参数
video_state = EventMesh.publish("get_video_state")
- print("video_state call",video_state)
+ # print("video_state call",video_state)
if video_state != 0:
if video_state == 6:#2 是app拨打手表 1 是手表打app 3 是正在视频通话中 0 关闭只有第一次视频通话打入才允许接听 接通之后不允许接听了
EventMesh.publish("video_answer_cb")
sos_flag = EventMesh.publish("get_sos_flag")
EventMesh.debug_log('voicecall sos_flag',sos_flag)
if sos_flag == 0 :
+ EventMesh.publish("set_sos_state_out")
EventMesh.publish("set_sos_num",0)
else:
num = EventMesh.publish("get_sos_num")
sos_flag = EventMesh.publish("get_sos_flag")
if sos_flag == 1:
sos_flag = 0
+
EventMesh.publish("set_sos_flag",0)
EventMesh.debug_log('voicecall connected, PhoneNO.: ', args[6])
b = tmp[0].isdigit()#判断是否不是数字开头 暂时不用 因为截取了+判断不了
if b == True and size_len > 11:
tmp = tmp[size_len-11:]
- EventMesh.publish("set_call_state",3)
+ if EventMesh.publish("get_call_state") == 2:#打通了才可设置状态 防止挂断太及时,又拨出去了
+ EventMesh.publish("set_call_state",3)
+ else:
+ EventMesh.publish("set_call_state",0)
# EventMesh.publish("load_screen", {"screen": "on_call","meta":str(tmp)})
elif args[0] == 12:
if flag == 2:
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("close_timer_all")#
+ EventMesh.publish("set_sos_state_out")
EventMesh.publish("set_call_state",0)
EventMesh.debug_log('voicecall disconnect end')
def get_imei(self, topic, msg):
if not self.imei:
self.imei = modem.getDevImei()
- self.imei = "876226002021444"#视频通话测试账号
+ # self.imei = "876226002021444"#视频通话测试账号
+ # self.imei = "826226524724963"#视频通话测试账号
# self.imei = "860132060128634" #860132060128634
return self.imei
def set_sos_flag(self, event, msg):
self.sos_flag = msg
-
+ EventMesh.publish("set_sos_state_out")
if self.sos_flag == 1:
number = EventMesh.publish("get_dial_sos_number")
def set_callnumer_cb(self, event, msg):
if self.sos_flag == 1:
+ EventMesh.publish("set_sos_state_out")
self.callnumer = msg
self.call_timer.start(5000, 0, self.call_timer_cb)#延迟10S 继续拨打
def call_timer_cb(self, *args, **kwargs):
+ EventMesh.publish("set_sos_state_out")
+ flag = EventMesh.publish("get_call_state")
+ fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识
+ video_state = EventMesh.publish("get_video_state")
+ if flag != 0 or fall_down != 0 or video_state != 0:#防止不会被中断不会继续拨打sos号码正在通话或者打电话中,跌倒报警 视频通话中不允许拨打sos
+ if self.sos_flag == 1:
+ self.call_timer.start(5000, 0, self.call_timer_cb)#延迟10S 继续拨打
+ return
+ else:
+ self.call_timer.stop()
+ return
+
if self.sos_flag == 1:
+ self.call_timer.stop()
EventMesh.publish("save_phonename",str(self.callnumer))
EventMesh.publish("save_phonenum",str(self.callnumer))
phone_num = EventMesh.publish("get_phonenum")
EventMesh.publish("sos_out_call_center_cb",phone_num)#电话拨出去
+ else:
+ self.call_timer.stop()
def close_call_time(self, event, msg):
self.call_timer.stop()
self.video_timer = 0
self.video_init = 0
-
+ self.video_network_end = 0 #网络不好或者信号较差菊风底层挂断当前视频通话
self.videoInfo_queue = Queue()
_thread.stack_size(10*1024)
_thread.start_new_thread(self.videoInfo_queue_thread, ())
EventMesh.subscribe("app_rtalk_cb",self.app_rtalk_cb)#app拒绝视频通话
- EventMesh.subscribe("video_answer_cb",self.video_answer_cb)#æ\89\8b表端æ\8e¥å\90¬è§\86é¢\91é\80\9aè¯\9d
+ EventMesh.subscribe("video_answer_cb",self.video_answer_cb)#接听视频通话
- EventMesh.subscribe("video_reject_cb",self.video_reject_cb)#手表端挂断视频通话
+ EventMesh.subscribe("video_newwork_reject_cb",self.video_newwork_reject_cb)#端挂断视频通话
+ EventMesh.subscribe("video_dev_reject_cb",self.video_dev_reject_cb)#手表端挂断视频或者语音通话
EventMesh.subscribe("video_no_network",self.video_no_network)#打着突然掉网或者未绑定设备 每10s检测一次
def call_viode_book_num(self, event, msg):#默认拨打视频通话列表第一个
self.video_led_state = 0
- EventMesh.publish("set_vedio_init")
+ self.video_network_end = 0
EventMesh.publish("clear_video_timer_state")
if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#未联网提示关机
if len(self.videobook) != 0:#已联网未添加账号
call_type = EventMesh.publish("get_vedio_call_type")#呼叫类型
tokens_data = EventMesh.publish("get_vedio_tokens_data")#tookens数据#云米平台不需要tokens
+ # jrtc.init()
+ # jrtc.config_server("119.3.54.56:1050")
+ # jrtc.config("e99697f86096a74dbf635096", "us145a", "1234567890abcdef", "")
+ # jrtc.open("us144a", "",[],[15,120,240,320])
+ # jrtc.set_cam_angle(jrtc.CAM_ROTATE_180)
+ # jrtc.init()
+ # jrtc.config_server("119.3.54.56:1050")
+ # jrtc.config("e99697f86096a74dbf635096", "us144a", "1234567890abcdef", "")
+ # jrtc.open("us145c", "",[],[15,120,240,320])
+
+
uid = str(call_id)
ticket = str(meet_id)
jrtc.init()
# jrtc.config_server("119.3.54.56:1050")#测试服地址
tokens = str(tokens_data)
- appkey = "efe9f8800a39d96244234097"#小见
+ appkey = "efe9f8800a39d96244234097"#
uid_key = "25v9C652123QL3N8"
# appkey = "249e7d505516af0a7ed44097"
jrtc.open(uid,ticket,[],[15,120,240,320])
- jrtc.set_rotate(jrtc.CAM_ROTATE_90)
+ jrtc.set_cam_angle(jrtc.CAM_ROTATE_180)
self.video_count = 0
self.video_state_time = 0
video_state = EventMesh.publish("get_video_state")#这个函数获取为了防止不进回调不置0
get_video_state = EventMesh.publish("get_video_in_out_state")
dev_mode = EventMesh.publish("get_dev_app_mode")
- # print("call_state",call_state,video_state)
if self.video_led_state == 1 or self.video_timer == 1:#手表挂断不在进入
self.timer.stop()
return
self.video_state = 0
self.video_state_time = 0
self.timer.stop()
- EventMesh.publish("video_reject_cb",5)#挂断视频通话
+ EventMesh.publish("video_newwork_reject_cb",5)#挂断视频通话
return
if call_state == 5:#已经接通出画面了
self.video_count = 0
self.video_answer = 4
EventMesh.publish("set_video_in_out_state",0)
- # self.timer.stop()
if self.video_state_time == 0:
self.video_state_time = 1
EventMesh.publish("stop_led_timer")#设置参数
if get_video_state == 0 and call_state != 4 and self.video_answer == 0:
EventMesh.publish("video_answer_mode_timer_cb",3)#
-
if call_state == 0:
- # print("no call_state")
self.timer.stop()
- EventMesh.publish("video_reject_cb",1)
+ EventMesh.publish("video_newwork_reject_cb",1)
else:
self.video_state_time = 0
self.video_count = 0
self.timer.stop()
EventMesh.publish("set_video_state", 0)
- EventMesh.publish("video_reject_cb",1)
+ EventMesh.publish("video_newwork_reject_cb",1)
def video_waite_event_time_cb(self,*argc):#正在接听中,请稍候
EventMesh.publish("video_answer_mode_timer_cb",1)
def video_no_network(self,event,msg):#视频通话无网络
if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#
if EventMesh.publish("get_video_state") != 0:
- EventMesh.publish("video_reject_cb",None)
+ EventMesh.publish("video_newwork_reject_cb",None)
pass
def video_answer_cb(self,event,msg):#手表端拒绝视频通话
- EventMesh.publish("set_video_in_out_state",0)
EventMesh.publish("stop_led_timer")#关闭亮灯模式
EventMesh.publish("close_timer_all")##关闭统一的计时器
- EventMesh.publish("set_vedio_init")#
+ EventMesh.publish("set_video_in_out_state",0)
EventMesh.publish("open_vedio_infor")#启动视频通话的SDK相关配置
def clear_video_timer_state(self,event,msg):#清除标识
self.video_timer = 0
-
- def video_reject_cb(self,event,msg):#手表端挂断视频通话
- if self.video_timer == 0:
- # print("close_jrtc_event start",self.video_timer)
+ self.video_network_end = 0
+
+ def video_newwork_reject_cb(self,event,msg):#信号不好底层SDK挂断
+ if self.video_led_state != 2:#2表示app挂断
+ if self.video_network_end == 1:
+ return
+ self.video_network_end = 1
+ self.video_timer = 1
+ self.video_init = 0
EventMesh.publish("stop_led_timer")#设置参数
EventMesh.publish("close_timer_all")#
EventMesh.publish("close_video_timer")
meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
call_type = int(EventMesh.publish("get_vedio_call_type"))#
- # print("video_reject_cb1111",self.video_led_state,self.video_answer)
- # print("close_jrtc_event ens")
- if msg == 2:
- self.video_led_state = 1
- EventMesh.publish("dev_video_end_timer_cb")#手表设备已挂断
- else:
- self.video_led_state = 0
- EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断
- EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
- self.video_timer = 1
- call_state = jrtc.get_state()
- # print("close_jrtc_event ens1",call_state)
jrtc.close(0)
- # print("close_jrtc_event ens2",call_state)
+ if self.video_led_state == 0:
+ EventMesh.publish("video_answer_mode_timer_cb",4)#提示对方已挂断
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+
+
+ def video_dev_reject_cb(self,event,msg):#手表主动挂断
+ if self.video_timer == 0:
+ self.video_init = 0
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish("close_timer_all")#
+ EventMesh.publish("close_video_timer")
+ EventMesh.publish("set_video_state", 0)
+ EventMesh.publish("set_dev_app_mode", 0)
+ EventMesh.publish("set_video_in_out_state",0)
+ call_id = str(EventMesh.publish("get_vedio_call_id"))#
+ meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
+ call_type = int(EventMesh.publish("get_vedio_call_type"))#
+
+ self.video_led_state = 1
+ jrtc.close(0)
+ self.video_timer = 1
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+
-
def set_app_dev_end_state(self,event,msg):#app拒绝视频通话
self.video_led_state = 0 #手表挂断不在进入
def app_rtalk_cb(self,event,msg):#app拒绝视频通话
dev_mode = EventMesh.publish("get_dev_app_mode")#如果是app主动挂断需要提示音频文件
video_state = EventMesh.publish("get_video_state")#清除视频通话状态
- # print("app_rtalk_cb return 1",self.video_led_state,dev_mode,video_state)
- if self.video_led_state == 1 or self.video_timer == 1:#手表挂断不在进入
+ if self.video_led_state != 0 or self.video_timer != 0:#手表挂断不在进入
return
- # print("app_rtalk_cb return 2",self.video_led_state,dev_mode,video_state)
+
+ self.video_init = 0
self.video_timer = 1
- self.video_led_state = 0
+ self.video_led_state = 2
EventMesh.publish(constants.EVENT.SYSTEM_UP)#
-
-
- video_in_out_state = EventMesh.publish("get_video_in_out_state")#设置参数
- if video_in_out_state != 0:
- EventMesh.publish("stop_led_timer")#设置参数
- EventMesh.publish("close_timer_all")#
- EventMesh.publish("set_video_in_out_state",0)#清除视频通话拨进还是拨出的状态
+ EventMesh.publish("stop_led_timer")#设置参数
+ EventMesh.publish("close_timer_all")#
EventMesh.publish("close_video_timer")
- # print("app_rtalk_cb ",dev_mode,self.video_led_state,video_state)
EventMesh.publish("set_dev_app_mode", 0)
EventMesh.publish("set_video_state",0)#清除视频通话状态
EventMesh.publish("set_video_in_out_state",0)#清除视频通话拨进还是拨出的状态
-
EventMesh.publish("video_answer_mode_timer_cb",4)##提示对方已挂断
- video_state = EventMesh.publish("get_video_state")
- # print("app_rtalk_cb end",video_state)
+ jrtc.close(0)
def jrtc_cb(close_sta):#注册回调
print("jrtc callback:", close_sta)
if close_sta == 0 or close_sta == 1:
EventMesh.publish("set_video_state", 0)
EventMesh.publish("set_video_in_out_state",0)
- # if EventMesh.publish("get_app_dev_end_state") == 0:
- # jrtc.close(0)
+ EventMesh.publish("set_vedio_init")
+ jrtc.close(0)
jrtc.set_callback(jrtc_cb)
EventMesh.publish("set_com",self.server_port)
EventMesh.publish("set_new_key", str(secretKey))#获取pid和key
EventMesh.publish("set_new_pid",str(pid))#获取pid和key
- self.reconnect_timer_cb()#重连设备
+ # self.reconnect_timer_cb()#重连设备
+ print("self.reconnect_flag",self.reconnect_flag)
+ self.reconnect_flag = 0
+ self.reconnect()#重连设备
EventMesh.publish("set_server_state",1)#获取修改服务器状态
data_tmp = data_tmp.split(']')[0] #去掉]
EventMesh.publish(constants.EVENT.SET_PING, data_tmp.split(',')[1])
if EventMesh.model == 'D15':
- EventMesh.publish(constants.PROTOCOL.JPREG_SEND)
+ if str(data_tmp) == "1":
+ EventMesh.publish(constants.PROTOCOL.JPREG_SEND)
+ EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND)
class KA_ProtoCol(ProtoCol):
"""心跳"""
send_data = EventMesh.publish("get_new_pid")+"*%s*0007*CALLING"%(self.imei)
MD5_SIGN = self.pack_MD5_head(send_data)
data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
- print("CALLING:send data:%s"%(data))
+ # print("CALLING:send data:%s"%(data))
# print("WLKEY!!!!!!!!!!!!!")
# 通过socket发送到服务器端
EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
fall_down = EventMesh.publish("get_fall_down_state")#跌倒报警标识
usb_state = EventMesh.publish("get_usb")#
video_state = EventMesh.publish("get_video_state")
- usb_state = 0
- if flag != 0 or usb_state == 1 or usb_state == 3 or fall_down != 0 or video_state != 0: #电话在打入或者 在充电不允许视频通话
+ sos_dialing = EventMesh.publish("get_sos_state_out")#正在拨打sos电话
+ if flag != 0 or usb_state == 1 or usb_state == 3 or fall_down != 0 or video_state != 0 or sos_dialing != 0: #电话在打入或者 在充电不允许视频通话
EventMesh.publish(constants.PROTOCOL.CALLING_SEND,1)
- EventMesh.publish("set_video_in_out_state", 0)
- EventMesh.publish("set_video_state", 0)
- EventMesh.publish("set_dev_app_mode", 0)#
else:
EventMesh.publish(constants.PROTOCOL.CALLING_SEND,0)
EventMesh.publish("set_video_state", 6)
send_data = EventMesh.publish("get_new_pid")+"*%s*0008*RCALLING"%(self.imei)
MD5_SIGN = self.pack_MD5_head(send_data)
data = "[%s%s,%s,%s,%d]"%(str(MD5_SIGN),send_data,msg[0],msg[1],msg[2])
- print("RCALLING:send data:%s"%(data))
+ # print("RCALLING:send data:%s"%(data))
# print("WLKEY!!!!!!!!!!!!!")
# 通过socket发送到服务器端
EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
- print("RCALLING:send data end:%s"%(data))
+ # print("RCALLING:send data end:%s"%(data))
def recv(self, event, msg):
"""
@param msg: 接收到的下行数据
"""
# b'[SZKW*876226002021444*007B*AGTALK,0,01lqlyqzzQHpfwv5g7jFVC2H6Ha2tHFpMlfSm5sd2uo7o55JEcc=OVxewje6MjP0NgEODwsLDwkJCwkLCA0NDQ==,8762260020214441701226895]'
- print("AGTALK!!!!!!!!!!!!!")
+ # print("AGTALK!!!!!!!!!!!!!")
msg = msg[1:-1]
msg_tmp = msg.decode('ascii')
msg_tmp_d = msg_tmp.split(',')
call_state = int(msg_tmp_d[1])#返回是否可以视频通话
if call_state == 0:#可正常通话
if EventMesh.publish("get_video_state") != 0:
- print("AGTALK!!!!!!!!!!!!!answer")
+ # print("AGTALK!!!!!!!!!!!!!answer")
tokens_data = msg_tmp_d[2]#会议id
meet_id = msg_tmp_d[3]#会议id
EventMesh.publish("set_vedio_meet_id", meet_id)#
EventMesh.publish("set_vedio_tokens_data", tokens_data)#
- EventMesh.publish("set_vedio_init")#
EventMesh.publish("open_vedio_infor")
else:
meet_id = msg_tmp_d[3]#会议id
EventMesh.publish("set_vedio_meet_id", meet_id)#
EventMesh.publish("set_vedio_tokens_data", tokens_data)#
- EventMesh.publish("video_reject_cb",None)#挂断视频通话
- print("AGTALK no!!!!!!!!!!!!!")
+ EventMesh.publish("video_newwork_reject_cb",None)#挂断视频通话
+ # print("AGTALK no!!!!!!!!!!!!!")
print("AGTALK!!!!!!!!!!!!!")
send_data = EventMesh.publish("get_new_pid")+"*%s*0005*RTALK"%(self.imei)
MD5_SIGN = self.pack_MD5_head(send_data)
data = "[%s%s,%d,%s]"%(str(MD5_SIGN),send_data,msg[0],msg[1])
- print("AGTALK:send data:%s"%(data))
+ # print("AGTALK:send data:%s"%(data))
# print("WLKEY!!!!!!!!!!!!!")
# 通过socket发送到服务器端
EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
-import uos
-import ql_fs
-import EventMesh
-if ql_fs.path_exists("/ext") == False:
- ldev = uos.VfsLfs1(32, 32, 32, "ext_fs",0,3)
- uos.mount(ldev,'/ext')
-res = uos.statvfs("/ext")
-res = list(res)
-
-from btn_device_ec800m import BtnDevice
-
-import lvgl as lv
+# import lvgl as lv
+from machine import LCD, Pin
import utime
-import osTimer
-import pm
-import ql_fs
-from machine import Pin
from misc import PWM
-import uos
-from machine import I2C
-from Hsensor import GH3018
-from Gsensor import SC7A20
-btn_device = BtnDevice()
-btn_device.start()
-i2c0 = I2C(I2C.I2C0, I2C.FAST_MODE)
-WHO_AM_I = bytearray([0x01, 0])
-I2C_SLAVE_ADDR = 0x49
-r_data = bytearray(2)
-data = bytearray([0x60A0, 0]) #休眠
-i2c0.write(I2C_SLAVE_ADDR, WHO_AM_I, 1, data, 2)
-def gsensor_cb(self, para):
- EventMesh.debug_log("gsensor_cb:{}".format(para))
-gsensor = SC7A20()
-EventMesh.debug_log("DeviceInfoManager:1.0")
-gsensor.activate()
-EventMesh.debug_log("DeviceInfoManager:1.1")
-gsensor.init()
-EventMesh.debug_log("DeviceInfoManager:2")
-gsensor.set_callback(gsensor_cb)
-hsensor = GH3018()
-hsensor.activate()
-hsensor.init()
-hsensor.open_blood_oxygen()
-utime.sleep(5)
-# PWM_backlight = PWM(PWM.PWM1, PWM.ABOVE_MS, 0, 1)
-# PWM_backlight.open()
-hsensor.close()
-#lcd_ctrl.write(0)
+import camera
+import jrtc
+
+jrtc.init()
+jrtc.config_server("119.3.54.56:1050")
+jrtc.config("e99697f86096a74dbf635096", "us144a", "1234567890abcdef", "")
+jrtc.open("us145c", "",[],[15,120,240,320])
+
+# jrtc.init()
+# jrtc.config_server("119.3.54.56:1050")
+# jrtc.config("e99697f86096a74dbf635096", "us145a", "1234567890abcdef", "")
+# jrtc.open("us144a", "",[],[15,129,128,128])
+jrtc.set_cam_angle(jrtc.CAM_ROTATE_180)
-pm.autosleep(1)
-EventMesh.debug_log("test end2")
\ No newline at end of file
+print("jrtc closed !!!!...")
ui.add_screen(_ui.VdieoVoiceScreen())
ui.add_screen(_ui.VoiceShowScreen())
ui.add_screen(_ui.voiceInCallScreen())
+ ui.add_screen(_ui.videoModeScreen())
+ ui.add_screen(_ui.voiceOutCallScreen())
from pp_main import allppPopupScreen,delOnePopupScreen,ppListScreen,noppPopupScreen,delppsucessPopupScreen,ppMainScreen,addfaileppPopupScreen,ppMainPopupScreen,addppPopupScreen,addedppPopupScreen,ownaddppPopupScreen
ui.add_screen(ppMainScreen())
data_tmp = msg.decode('ascii')
data_tmp = data_tmp.split(']')[0] #去掉]
EventMesh.publish(constants.PROTOCOL.JPREG_SEND)
+ EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND)
EventMesh.publish(constants.EVENT.SET_PING, data_tmp.split(',')[1])
class KA_ProtoCol(ProtoCol):
tokens_data = msg_tmp_d[4]#tokens
EventMesh.publish("set_vedio_call_id", call_id)#
EventMesh.publish("set_vedio_meet_id", meet_id)#
- EventMesh.publish("set_vedio_call_type", call_type)#
+ EventMesh.publish("set_vedio_call_type", int(call_type))#
EventMesh.publish("set_vedio_tokens_data", tokens_data)#
get_ui = EventMesh.publish("get_UI_high_priority")
meet_id = msg_tmp_d[3]#会议id
EventMesh.publish("set_vedio_meet_id", meet_id)#
EventMesh.publish("set_vedio_tokens_data", tokens_data)#
+ EventMesh.publish("clear_jrtc_init_state")
EventMesh.publish("open_vedio_infor")
+
else:
+ EventMesh.publish("set_UI_high_priority",0)
+ EventMesh.publish("clear_jrtc_init_state")
EventMesh.publish("return_prev_screen")
print("AGTALK!!!!!!!!!!!!!")
send_data = EventMesh.publish("get_new_pid")+"*%s*0005*RTALK"%(self.imei)
MD5_SIGN = self.pack_MD5_head(send_data)
data = "[%s%s,%d,%s]"%(str(MD5_SIGN),send_data,msg[0],msg[1])
- print("AGTALK:send data:%s"%(data))
+ print("RTALK:send data:%s"%(data))
# print("WLKEY!!!!!!!!!!!!!")
# 通过socket发送到服务器端
EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
msg_tmp_d = msg_tmp.split(',')
screen_NAME = EventMesh.publish("get_screen_NAME")
if screen_NAME != None:
- if screen_NAME == "vedioing" or screen_NAME == "voiceing" or screen_NAME == "video_outcall" or screen_NAME == "vedio_incall" or screen_NAME == "voice_incall":
- # EventMesh.publish("close_jrtc_event")
+ if screen_NAME == "vedioing" or screen_NAME == "voiceing" or screen_NAME == "video_outcall" \
+ or screen_NAME == "vedio_incall" or screen_NAME == "voice_incall" or screen_NAME == "voice_outcall":
+ EventMesh.publish("close_jrtc_event",None)
EventMesh.publish("set_UI_high_priority", 0)
EventMesh.publish("return_prev_screen")
self.second_count = 0
self.time_out = 0
self.meta_type = "popup"
+ EventMesh.subscribe("set_dev_end_video",self.set_dev_end_video)
+ EventMesh.subscribe("get_dev_end_video",self.get_dev_end_video)
def initialization(self):
EventMesh.publish("close_jrtc_event")
EventMesh.publish("return_prev_screen")
+
+ def get_dev_end_video(self,event,msg):#手表挂断app
+ return self.statu_open
+
+ def set_dev_end_video(self,event,msg):#手表挂断app
+ self.statu_open = msg
def fun(self,*argc):
EventMesh.publish("system_sleep_rest")#防止黑屏
self.second_count+=1
self.show_time()
- # print("call_state",call_state)
- if call_state == 0 and self.statu_open == 0:
- self.timer.stop()
-
- call_id = str(EventMesh.publish("get_vedio_call_id"))#
- meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
- call_type = int(EventMesh.publish("get_vedio_call_type"))#
- EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
- # EventMesh.publish("load_screen", {"screen": "main_menu"})
- EventMesh.publish("set_UI_high_priority", 0)
- EventMesh.publish("close_jrtc_event")
- EventMesh.publish("return_prev_screen")
-
- return
if call_state != 5:
self.time_out+=1
- if self.time_out >= 60 or (call_state == 0 and self.time_out >= 5):
+ if self.time_out >= 60 or (call_state == 0 and self.statu_open == 0 and self.second_count != 0 and self.time_out >= 5 and EventMesh.publish("get_jrtc_init_state") == 1):
self.time_out = 0
self.timer.stop()
def jrtc_cb(close_sta):
print("jrtc callback:", close_sta)
if close_sta == 0 or close_sta == 1:
- pass
- # jrtc.close(0)
+ jrtc.close(0)
+
jrtc.set_callback(jrtc_cb)
class VedioShowScreen(Screen):#正在视频通话中
#
self.show_label = 0
self.second_count = 0
self.time_out = 0
+ self.jrtc_init_state = 0
self.meta_type = "popup"
EventMesh.subscribe("open_vedio_infor",self.open_vedio_infor)
EventMesh.subscribe("close_jrtc_event",self.close_jrtc_event)
+ EventMesh.subscribe("clear_jrtc_init_state",self.clear_jrtc_init_state)#清楚jrtcinit标志防止重复init
+ EventMesh.subscribe("get_jrtc_init_state",self.get_jrtc_init_state)#获取jrtcinit标志防止重复init
def open_vedio_infor(self,event,msg):
- call_id = EventMesh.publish("get_vedio_call_id")#对方的账号
- meet_id = EventMesh.publish("get_vedio_meet_id")#共有的会议id
- call_type = EventMesh.publish("get_vedio_call_type")#呼叫类型
- tokens_data = EventMesh.publish("get_vedio_tokens_data")#tookens数据#云米平台不需要tokens
-
-
-
- # data = ['6951832', '876226002021444', '1', '01lqlyqzQ4Gozdz8OJv1Mij2Y3PBq2y3+rtIA26Ge+m2QHTc/Vk=gufkGNMBiYhPjbq1tLCwtLKysLKws7a2tg==']
- jrtc.init()
- # jrtc.config_server("119.3.54.56:1050")#测试服地址
- tokens = str(tokens_data)
- appkey = "efe9f8800a39d96244234097"#小见
- uid_key = "25v9C652123QL3N8"
-
- # appkey = "249e7d505516af0a7ed44097"
- # uid_key = "qQI4gkB9FxH8J2cb"
- imei = EventMesh.publish(constants.EVENT.GET_IMEI)
- oneself_id = str(imei)#自己的账号默认是imei号
- jrtc.config(appkey,oneself_id,uid_key,tokens)#只初始化一次发起通话
- uid = str(call_id)
- ticket = str(meet_id)
-
- print("uid ",uid,ticket,oneself_id)
- #jrtc.set_rotate(0)
- if call_type == 0:
- jrtc.open(uid,ticket,[],[])
- else:
- jrtc.open(uid,ticket,[15,129,128,128],[15,120,240,320])
+ if self.jrtc_init_state == 0:
+ self.jrtc_init_state = 1
+ EventMesh.publish("set_dev_end_video",0)
+ call_id = EventMesh.publish("get_vedio_call_id")#对方的账号
+ meet_id = EventMesh.publish("get_vedio_meet_id")#共有的会议id
+ call_type = EventMesh.publish("get_vedio_call_type")#呼叫类型
+ tokens_data = EventMesh.publish("get_vedio_tokens_data")#tookens数据#云米平台不需要tokens
+
+ # jrtc.init()
+ # jrtc.config_server("119.3.54.56:1050")
+ # jrtc.config("e99697f86096a74dbf635096", "us145a", "1234567890abcdef", "")
+ # jrtc.open("us144a", "",[15,129,128,128],[15,120,240,320])
+ # jrtc.set_cam_angle(jrtc.CAM_ROTATE_180)
+
+ # data = ['6951832', '876226002021444', '1', '01lqlyqzQ4Gozdz8OJv1Mij2Y3PBq2y3+rtIA26Ge+m2QHTc/Vk=gufkGNMBiYhPjbq1tLCwtLKysLKws7a2tg==']
+ jrtc.init()
+ tokens = str(tokens_data)
+ appkey = "efe9f8800a39d96244234097"#小见
+ uid_key = "25v9C652123QL3N8"
+
+ # appkey = "249e7d505516af0a7ed44097"
+ # uid_key = "qQI4gkB9FxH8J2cb"
+ imei = EventMesh.publish(constants.EVENT.GET_IMEI)
+ oneself_id = str(imei)#自己的账号默认是imei号
+ jrtc.config(appkey,oneself_id,uid_key,tokens)#只初始化一次发起通话
+ uid = str(call_id)
+ ticket = str(meet_id)
+
+ print("uid ",uid,ticket,oneself_id)
+ #jrtc.set_rotate(0)
+ if call_type == 0:#语音通话不需要设置参数
+ jrtc.open(uid,ticket,[],[])
+ else:
+ jrtc.open(uid,ticket,[15,129,128,128],[15,120,240,320])
+ jrtc.set_cam_angle(jrtc.CAM_ROTATE_180)
+
def close_jrtc_event(self,event,msg):
- call_state = jrtc.get_state()
- # print("close_jrtc_event1",call_state)
- # jrtc.remove_img()
- # print("close_jrtc_event2",call_state)
+ print("close_jrtc_event")
+
jrtc.close(0)
- # print("close_jrtc_event3",call_state)
+ pass
+ def clear_jrtc_init_state(self,event,msg):
+ self.jrtc_init_state = 0
+ pass
+
+ def get_jrtc_init_state(self,event,msg):
+ return self.jrtc_init_state
pass
def initialization(self):
- jrtc.set_rotate(jrtc.CAM_ROTATE_90)
+
global camera_video_answer_screen,video_img_test,camera_video_answer_btn_label,camera_video_answer_label,camera_video_answer_second_label,camera_video_answer_btn,vcamera_video_answer_btn_label
if camera_video_answer_screen == None:
camera_video_answer_screen = lv.obj()
self.meta = camera_video_answer_screen
call_state = jrtc.get_state()
-
self.second_count = 0
self.statu_open = 0
-
self.time_out = 0
- call_state = jrtc.get_state()
EventMesh.publish("set_UI_high_priority", 1)
if call_state == 5:#接通
def close_cb(self,e):
self.statu_open = 1
+ EventMesh.publish("set_dev_end_video",1)
call_id = str(EventMesh.publish("get_vedio_call_id"))#
meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
call_type = int(EventMesh.publish("get_vedio_call_type"))#
video_img_test.clear_flag(lv.obj.FLAG.HIDDEN)
self.second_count+=1
self.show_time()
- # print("call_state",call_state)
- if call_state == 0 and self.statu_open == 0:
- self.timer.stop()
-
- call_id = str(EventMesh.publish("get_vedio_call_id"))#
- meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
- call_type = int(EventMesh.publish("get_vedio_call_type"))#
- EventMesh.publish("set_UI_high_priority", 0)
- EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
- EventMesh.publish("set_UI_high_priority", 0)
- EventMesh.publish("close_jrtc_event")
- EventMesh.publish("return_prev_screen")
-
- return
-
+ print("video call_state",call_state)
if call_state != 5:
self.time_out+=1
- if self.time_out >= 60 or (call_state == 0 and self.time_out >= 5):
+ if self.time_out >= 60 or (call_state == 0 and self.time_out >= 5 and self.second_count != 0 and self.jrtc_init_state == 1):
self.time_out = 0
self.timer.stop()
-
+ print("video call_state",call_state)
call_id = str(EventMesh.publish("get_vedio_call_id"))#
meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
call_type = int(EventMesh.publish("get_vedio_call_type"))#
EventMesh.publish("set_UI_high_priority", 0)
EventMesh.publish("close_jrtc_event")
EventMesh.publish("return_prev_screen")
-
-
-
def show_time(self):
if self.second_count >= 99*60:
self.call_timer.stop()
self.aud.stop()
EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("clear_jrtc_init_state")
EventMesh.publish("open_vedio_infor")
EventMesh.publish("load_screen", {"screen": "voiceing"})
self.pro_state = 0
self.meta = None
self.timeout = 0
+ EventMesh.subscribe("test_answer",self.test_answer)
def initialization(self):
global vedio_call_screen,vedio_call_img,vedio_call_name_label,vedio_call_answer,vedio_call_hangup,vedio_call_label
self.call_timer.stop()
self.aud.stop()
EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("clear_jrtc_init_state")
+ EventMesh.publish("open_vedio_infor")
+ EventMesh.publish("load_screen", {"screen": "vedioing"})
+
+ def test_answer(self,event,msg):
+ self.call_timer.stop()
+ self.aud.stop()
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("clear_jrtc_init_state")
EventMesh.publish("open_vedio_infor")
EventMesh.publish("load_screen", {"screen": "vedioing"})
self.timer1 = osTimer()
self.time_count = 0
self.second_count = 0
+ self.answer = 0
def initialization(self):
self.time_count = 0
self.second_count = 0
+ self.answer = 0
EventMesh.publish("set_UI_high_priority", 1)
call_state = jrtc.get_state()
# print("video_outcall",call_state)
pass
def fun_cb(self,*argc):
call_state = jrtc.get_state()
- # print("video_outcall",call_state)
+ print("video_outcall",call_state)
EventMesh.publish("system_sleep_rest")#防止黑屏
if call_state == 5:
video_outcall_img_test.clear_flag(lv.obj.FLAG.HIDDEN)
video_outcall_call.set_pos(0, 50)
self.second_count += 1
self.show_time()
- if call_state != 5:
+ self.answer = 1
+
+ if call_state != 5:#未接通 1分钟未接通挂断或者 接通后app 网络不好也主动手表挂断
self.time_count+=1
- if self.time_count >= 1*60 or (call_state == 0 and self.time_count >= 5):
+ if self.time_count >= 1*60 or (call_state == 0 and self.time_count >= 5 and self.second_count != 0):
self.time_count = 0
self.timer1.stop()
call_id = str(EventMesh.publish("get_vedio_call_id"))#
def btn8_press(self):
pass
+
+voice_outcall_screen = None
+voice_outcall_img = None
+voice_outcall_name = None
+voice_outcall_hangup_imgbtn = None
+voice_outcall_call = None
+voice_outcall_img_test = None
+voice_outcall_hangup_imgbtnlabel = None
+class voiceOutCallScreen(Screen):#等待对方接接听中
+ NAME = "voice_outcall"
+
+ def __init__(self):
+ super().__init__()
+ self.meta = None
+ self.meta_type = "popup"
+ self.timer1 = osTimer()
+ self.time_count = 0
+ self.second_count = 0
+ self.answer = 0
+
+
+ def initialization(self):
+ EventMesh.publish("set_UI_high_priority", 1)
+ self.time_count = 0
+ global voice_outcall_screen,voice_outcall_img,voice_outcall_hangup_imgbtnlabel,voice_outcall_name ,voice_outcall_call,voice_outcall_hangup_imgbtn
+ if voice_outcall_screen == None:
+ voice_outcall_screen = lv.obj()
+ print("voice_outcall_screen")
+ voice_outcall_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ voice_outcall_name = lv.label(voice_outcall_screen)
+ voice_outcall_name.set_pos(0, 20)
+ voice_outcall_name.set_size(LCD_X, 20)
+ voice_outcall_name.set_text(" ")
+ voice_outcall_name.set_long_mode(lv.label.LONG.DOT)
+ voice_outcall_name.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ voice_outcall_name.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ voice_outcall_call = lv.label(voice_outcall_screen)
+ voice_outcall_call.set_pos(0, 50)
+ voice_outcall_call.set_size(LCD_X, 40)
+ voice_outcall_call.set_text("正在等待对方接听中...")
+ voice_outcall_call.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ voice_outcall_call.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ voice_outcall_hangup_imgbtn = lv.img(voice_outcall_screen)
+ voice_outcall_hangup_imgbtn.set_size(32, 32)
+ voice_outcall_hangup_imgbtn.set_src("U:/static/hang_up.png")
+ voice_outcall_hangup_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+ voice_outcall_hangup_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+ voice_outcall_hangup_imgbtn.set_pos(48, 90)
+
+ voice_outcall_hangup_imgbtnlabel = lv.label(voice_outcall_screen)
+ voice_outcall_hangup_imgbtnlabel.set_pos(18, 50)
+ voice_outcall_hangup_imgbtnlabel.set_text(" ")
+ voice_outcall_hangup_imgbtnlabel.set_size(90, 78)
+ voice_outcall_hangup_imgbtnlabel.add_flag(lv.obj.FLAG.CLICKABLE)
+
+ voice_outcall_hangup_imgbtnlabel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
+ lv.EVENT.SHORT_CLICKED, None)
+
+ voice_outcall_hangup_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
+ lv.EVENT.SHORT_CLICKED, None)
+
+
+
+ self.meta = voice_outcall_screen
+ if voice_outcall_name != None:
+ voice_outcall_name.set_text(self.meta_info)#名称
+
+ self.time_count = 0
+ self.second_count = 0
+ self.answer = 0
+ EventMesh.publish("set_UI_high_priority", 1)
+ call_state = jrtc.get_state()
+ # print("video_outcall",call_state)
+ if call_state == 5:
+ # video_outcall_img_test.clear_flag(lv.obj.FLAG.HIDDEN)
+ voice_outcall_name.set_text("正在通话中...")#
+ voice_outcall_name.set_pos(0, 20)
+ else:
+ # video_outcall_img_test.add_flag(lv.obj.FLAG.HIDDEN)
+ voice_outcall_call.set_text("正在等待对方接听中...")
+ voice_outcall_call.set_pos(0, 50)
+ voice_outcall_name.set_text(self.meta_info)#名称
+ voice_outcall_name.set_pos(0, 20)
+
+ self.timer1.start(1*1000,1,self.fun_cb)
+
+ def post_processor_after_initialization(self):
+ pass
+
+ def hangup(self,e):
+ self.timer1.stop()
+ call_id = str(EventMesh.publish("get_vedio_call_id"))#
+ meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
+ call_type = int(EventMesh.publish("get_vedio_call_type"))#
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+ # EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("load_screen", {"screen": "videolist"})
+
+ pass
+ def fun_cb(self,*argc):
+ call_state = jrtc.get_state()
+ print("voice_outcall",call_state)
+ EventMesh.publish("system_sleep_rest")#防止黑屏
+ if call_state == 5:
+ voice_outcall_name.set_text("正在通话中...")#
+ voice_outcall_name.set_pos(0, 20)
+ voice_outcall_call.set_pos(0, 50)
+ self.second_count += 1
+ self.show_time()
+
+
+ if call_state != 5:
+ self.time_count+=1
+ if self.time_count >= 1*60 or (call_state == 0 and self.time_count >= 5 and self.second_count != 0):
+ self.time_count = 0
+ self.timer1.stop()
+ call_id = str(EventMesh.publish("get_vedio_call_id"))#
+ meet_id = str(EventMesh.publish("get_vedio_meet_id"))#
+ call_type = int(EventMesh.publish("get_vedio_call_type"))#
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+ # EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("load_screen", {"screen": "videolist"})
+
+ def show_time(self):
+
+ if self.second_count >= 99*60:
+ total_hour = self.second_count//3600#小时
+ total_min = (self.second_count%3600)//60#分钟
+ total_sec = (self.second_count%3600)%60#秒
+ voice_outcall_call.set_text("{}:{}:{}".format("%02d"%(total_hour),"%02d"%(total_min),"%02d"%(total_sec)))
+
+ else:
+ total_min = self.second_count//60
+ total_sec = self.second_count%60
+ voice_outcall_call.set_text("{}:{}".format("%02d"%(total_min),"%02d"%(total_sec)))
+
+ def Close(self):
+ self.timer1.stop()
+
+ def done_return(self):
+ pass
+ #EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+ def btn1_release(self):
+ pass
+ #EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+ def btn8_press(self):
+ pass
+
+
+
+
videolist_screen = None
videolist_cont = None
videolist_top_title = None
videolist_top_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
- videolist_none_label = lv.label(videolist_screen_list_screen)
- videolist_none_label.set_pos(0, 20)
+ videolist_none_label = lv.label(videolist_screen)
+ videolist_none_label.set_pos(0, 60)
videolist_none_label.set_size(LCD_X, 60)
- videolist_none_label.set_text("无网络或者无SIM卡或者无添加账号")
+ videolist_none_label.set_text("无SIM卡或未添加账号")
videolist_none_label.set_long_mode(lv.label.LONG.WRAP)
videolist_none_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
videolist_none_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
if videolist_screen == None:
return
if EventMesh.publish(constants.EVENT.GET_CONNECT) == 0:#有卡时触发sos报警 无卡时自动关机
- self.videolist_detail_list.clear_flag(lv.obj.FLAG.HIDDEN)
- videolist_none_label.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
+ self.videolist_detail_list.add_flag(lv.obj.FLAG.HIDDEN)
+ videolist_none_label.clear_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
else:
#读取json文件中的键作为label文本;
if self.check_json == True and len(self.videobook) != 0:
self.is_sliding = 0
if EventMesh.publish(constants.EVENT.GET_CONNECT) == 1:#有卡时触发sos报警 无卡时自动关机
msg_text = e.get_target().get_child(1).get_text()
- EventMesh.publish("publish_message_event_ui",{"func":self.calling,"data":msg_text})
+ # EventMesh.publish("publish_message_event_ui",{"func":self.calling,"data":msg_text})
+ EventMesh.publish("load_screen", {"screen": "vedio_mode","meta":msg_text})
else:
EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
def calling(self,msg_text):
- _msg = msg_text
- print("calling",_msg)
- EventMesh.publish("set_vedio_call_id", _msg)#
- EventMesh.publish("set_vedio_call_type", 1)#
- EventMesh.publish(constants.PROTOCOL.AGTALK_SEND,[1,_msg])
- EventMesh.publish("load_screen", {"screen": "video_outcall","meta":_msg})
+ pass
+ # _msg = msg_text
+ # print("calling",_msg)
+ # EventMesh.publish("set_vedio_call_id", _msg)#
+ # EventMesh.publish("set_vedio_call_type", 1)#
+ # EventMesh.publish(constants.PROTOCOL.AGTALK_SEND,[1,_msg])
+ # EventMesh.publish("load_screen", {"screen": "video_outcall","meta":_msg})
def done_return(self):
+video_select_mode_screen = None
+video_select_mode_label1 = None
+video_select_mode_label2 = None
+video_select_mode_btn_label1 = None
+video_select_mode_name = None
+video_select_mode_btn =None
+video_select_mode_btn1 = None
+class videoModeScreen(Screen):#通话模式选择
+ #
+ NAME = "vedio_mode"
+
+ def __init__(self):
+ super().__init__()
+ self.meta = None
+ self.timer = osTimer()
+ self.meta_type = "popup"
+ self.count = 0
+ self.is_sliding = 0
+
+ def initialization(self):
+ global video_select_mode_screen,video_select_mode_btn1,video_select_mode_btn,video_select_mode_label1,video_select_mode_label2,video_answer_btn_label1,video_select_mode_name
+ self.count = 0
+ self.is_sliding = 0
+ if video_select_mode_screen == None:
+ video_select_mode_screen = lv.obj()
+ print("video_select_mode_screen")
+ video_select_mode_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_select_mode_name = lv.label(video_select_mode_screen)
+ video_select_mode_name.set_pos(0, 20)
+ video_select_mode_name.set_text(" ")
+ video_select_mode_name.set_size(128, 40)
+ video_select_mode_name.add_flag(lv.obj.FLAG.CLICKABLE)
+ video_select_mode_name.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ video_select_mode_name.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_select_mode_btn = lv.btn(video_select_mode_screen)
+ video_select_mode_btn.set_pos(4, 60)
+ video_select_mode_btn.set_size(120, 26)
+ video_select_mode_btn.add_style(style_press_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+ video_select_mode_btn.add_style(style_press_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+ video_select_mode_btn.set_style_radius(30,0)
+
+ video_select_mode_label1 = lv.label(video_select_mode_btn)
+ video_select_mode_label1.set_text("语音通话")
+ video_select_mode_label1.set_size(128, 25)
+ video_select_mode_label1.set_pos(0,5)
+ video_select_mode_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ video_select_mode_label1.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ # video_select_mode_label1 = lv.label(video_select_mode_screen)
+ # video_select_mode_label1.set_pos(0, 60)
+ # video_select_mode_label1.set_text("语音通话")
+ # video_select_mode_label1.set_size(128, 30)
+ # video_select_mode_label1.add_flag(lv.obj.FLAG.CLICKABLE)
+ # video_select_mode_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ # video_select_mode_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_select_mode_btn1 = lv.btn(video_select_mode_screen)
+ video_select_mode_btn1.set_pos(4, 90)
+ video_select_mode_btn1.set_size(120, 26)
+ video_select_mode_btn1.add_style(style_press_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+ video_select_mode_btn1.add_style(style_press_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+ video_select_mode_btn1.set_style_radius(30,0)
+
+ video_select_mode_label2 = lv.label(video_select_mode_btn1)
+ video_select_mode_label2.set_text("视频通话")
+ video_select_mode_label2.set_size(128, 25)
+ video_select_mode_label2.set_pos(0,5)
+ video_select_mode_label2.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ video_select_mode_label2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ # video_select_mode_label2 = lv.label(video_select_mode_screen)
+ # video_select_mode_label2.set_pos(0, 90)
+ # video_select_mode_label2.set_text("视频通话")
+ # video_select_mode_label2.set_size(128, 38)
+ # video_select_mode_label2.add_flag(lv.obj.FLAG.CLICKABLE)
+ # video_select_mode_label2.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ # video_select_mode_label2.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ self.meta = video_select_mode_screen
+
+ video_select_mode_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling_vedio_cb(e,0)),
+ lv.EVENT.SHORT_CLICKED, None)
+ video_select_mode_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling_vedio_cb(e,0)), lv.EVENT.PRESSING, None)
+
+ video_select_mode_btn1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling_vedio_cb(e,1)),
+ lv.EVENT.SHORT_CLICKED, None)
+ video_select_mode_btn1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling_vedio_cb(e,1)), lv.EVENT.PRESSING, None)
+
+ if self.meta_info != None:
+ if len(str(self.meta_info)) != 0:
+ video_select_mode_name.set_text("{}".format(self.meta_info))
+ else:
+ video_select_mode_name.set_text(" ")
+ else:
+ video_select_mode_name.set_text(" ")
+
+ self.timer.start(1*1000,1,self.fun)
+
+
+ def fun(self,*argc):
+ self.count+=1
+ if self.count <= 30:
+ EventMesh.publish("system_sleep_rest")#防止黑屏
+ else:
+ self.timer.stop()
+ EventMesh.publish("return_prev_screen")
+ pass
+ def calling_vedio_cb(self,e,data):#视频通话
+ code = e.get_code()
+ if code == lv.EVENT.PRESSING:
+ #print("PRESSING")
+ self.is_sliding += 1
+
+ elif code == lv.EVENT.SHORT_CLICKED:
+ #utime.sleep_ms(10)
+ print("1self.is_sliding",self.is_sliding)
+ if self.is_sliding <= 5 and self.is_sliding != 0:#如果是在滑动中则不需要点击事件
+ self.is_sliding = 0
+ if data == 1:
+ msg_text = [self.meta_info,1]
+ EventMesh.publish("publish_message_event_ui",{"func":self.calling,"data":msg_text})
+ else:
+ msg_text = [self.meta_info,0]
+ EventMesh.publish("publish_message_event_ui",{"func":self.calling,"data":msg_text})
+ self.is_sliding = 0
+ pass
+
+ def calling(self,msg_text):
+ _msg = msg_text[0]
+ mode = msg_text[1]
+ print("calling",msg_text,_msg,mode)
+ if mode == 1:#0是语音 1是视频通话
+ EventMesh.publish("load_screen", {"screen": "video_outcall","meta":_msg})
+ else:
+ EventMesh.publish("load_screen", {"screen": "voice_outcall","meta":_msg})
+
+ EventMesh.publish("set_vedio_call_id", _msg)#
+ EventMesh.publish("set_vedio_call_type", mode)#
+ EventMesh.publish(constants.PROTOCOL.AGTALK_SEND,[mode,_msg])
+
+ def Close(self):
+ self.timer.stop()
+
+ def done_return(self):
+ pass
+ EventMesh.publish("return_prev_screen")
+
+ def btn1_release(self):
+ EventMesh.publish("return_prev_screen")
+ pass
+
+ def btn8_press(self):
+ EventMesh.publish("return_prev_screen")
+ pass
style_screen_calendar_1_extra_header_main_default = lv.style_t()
def server_init(server_type = None):
#服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为
if server_type == None:
- server_type = 1
+ server_type = 2
#print("server_init:server_type:{}".format(server_type))
d_server_addr = "api.xcloudtech.com"
d_server_port = 9000
# PID = "SZKW"
elif server_type == 2:
- d_server_addr = "8.134.110.49"
+ d_server_addr = "iot.socket.thisiot.com"
+ d_server_port = 9999
+ d_md5_key = "SZYhyGhroQ3xFKFWZq1g"
+ d_PID = "oxLwDqcwJCtiPSRu"
+
+ elif server_type == 3:
+
+ d_server_addr = "8.134.110.49"
d_server_port = 30346
d_md5_key = "3JyCjsw4ryXKzjzudayY"
d_PID = "qAELPTKmFanR4RHe"
self.pwk_count += 1
#
if(self.pwk_count >= 1): #防抖100ms
- if self.pwk_count > (15000//100): #长按
- self.pwk_count = 0
- self.pwk_press = 0
- self.__pwk_timer.stop()
- self.GPIO26_flag = 0
- # print("power end")
- Power.powerDown()
-
- return
- elif self.pwk_count > (3000//100): #长按
- screen_NAME = EventMesh.publish("get_screen_NAME")
- if screen_NAME != None:
- if screen_NAME == "no_sim_screen" or screen_NAME == "imei_new":
- if 1:
- if self.GPIO26_flag == 0:
- self.GPIO26_flag = 1
- Power.powerRestart()
- return
- if self.GPIO26_status == 1:#松开
- self.__pwk_timer.stop()
- self.pwk_count = 0
- self.pwk_press = 0
- self.GPIO26_flag = 0
- return
+ # if self.pwk_count > (15000//100): #长按
+ # self.pwk_count = 0
+ # self.pwk_press = 0
+ # self.__pwk_timer.stop()
+ # self.GPIO26_flag = 0
+ # # print("power end")
+ # Power.powerDown()
+
+ # return
+ if self.pwk_count > (5000//100): #长按
+ # screen_NAME = EventMesh.publish("get_screen_NAME")
+ # if screen_NAME != None:
+ # if screen_NAME == "no_sim_screen" or screen_NAME == "imei_new":
+ # if 1:
+ if self.GPIO26_flag == 0:
+ self.GPIO26_flag = 1
+ EventMesh.publish("load_screen", {"screen": "poweroff"})
+ return
+ if self.GPIO26_status == 1:#松开
+ self.__pwk_timer.stop()
+ self.pwk_count = 0
+ self.pwk_press = 0
+ self.GPIO26_flag = 0
+ return
if self.GPIO26_status == 1:#松开
self.__pwk_timer.stop()
if self.no_smi_count > (15*60) and self.no_smi_state == 0:
self.no_smi_count = 0
self.no_smi_state = 1
- EventMesh.publish("load_screen", {"screen": "no_sim_auto_screen"})
+ # EventMesh.publish("load_screen", {"screen": "no_sim_auto_screen"})
else:
self.no_smi_count = 0
self.no_smi_state = 0
def fun(self,*argc):
EventMesh.publish("system_sleep_rest")#防止黑屏
self.count+=1
- if self.count > 30:
+ if self.count >= 30:
self.count = 0
self.timer.stop()
- EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"})
+ EventMesh.publish("return_prev_screen")
def Close(self):
self.count = 0
def initialization(self):
- EventMesh.publish("set_UI_high_priority",1)
+ #EventMesh.publish("set_UI_high_priority",1)
global no_sim_screen,no_sim_screenn_label,no_sim_screenn_img
if no_sim_screen == None :
no_sim_screen = lv.obj()
no_sim_screenn_label = lv.label(no_sim_screen)
no_sim_screenn_label.set_pos(0, 220)
no_sim_screenn_label.set_size(240, 80)
- no_sim_screenn_label.set_text("请插入SIM卡,插卡后长按【POWER】键3S重启")
+ no_sim_screenn_label.set_text("请插入SIM卡,长按【开关】5S关机再重启")
no_sim_screenn_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
no_sim_screenn_label.set_long_mode(lv.label.LONG.WRAP)
no_sim_screenn_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
pass
def btn8_press(self):
- flag = EventMesh.publish("get_lcd_state")
- if flag == 1:
- EventMesh.publish(constants.EVENT.SYSTEM_SLEEP)
- else:
- EventMesh.publish(constants.EVENT.SYSTEM_UP)
+ EventMesh.publish("set_UI_high_priority",0)
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
pass
+ # flag = EventMesh.publish("get_lcd_state")
+ # if flag == 1:
+ # EventMesh.publish(constants.EVENT.SYSTEM_SLEEP)
+ # else:
+ # EventMesh.publish(constants.EVENT.SYSTEM_UP)
+ # pass
def btn1_press(self):
pass
EventMesh.subscribe("get_login_exit",self.get_login_exit)
def initialization(self):
- EventMesh.publish("set_UI_high_priority",1)
+ #EventMesh.publish("set_UI_high_priority",1)
imei = EventMesh.publish(constants.EVENT.GET_IMEI)
iccid = str(sim.getIccid())
EventMesh.publish(constants.EVENT.SYSTEM_UP)
def btn8_press(self):
- flag = EventMesh.publish("get_lcd_state")
- if flag == 1:
- EventMesh.publish(constants.EVENT.SYSTEM_SLEEP)
- else:
- EventMesh.publish(constants.EVENT.SYSTEM_UP)
+ EventMesh.publish("set_UI_high_priority",0)
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
no_network_screen = None
def initialization(self):
- EventMesh.publish("set_UI_high_priority",1)
+ #EventMesh.publish("set_UI_high_priority",1)
global no_network_screen ,no_network_screen_label,no_network_screen_img
if no_network_screen == None :
no_network_screen = lv.obj()
pass
def btn8_press(self):
- flag = EventMesh.publish("get_lcd_state")
- if flag == 1:
- EventMesh.publish(constants.EVENT.SYSTEM_SLEEP)
- else:
- EventMesh.publish(constants.EVENT.SYSTEM_UP)
- pass
+ EventMesh.publish("set_UI_high_priority",0)
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
def btn1_press(self):
pass