def server_init(server_type = None):
#服务器选择1,防走丢,2大锤,3三基同创,4童信 5云米
if server_type == None:
- server_type = 2
+ server_type = 1
#print("server_init:server_type:{}".format(server_type))
d_server_addr = "api.xcloudtech.com"
d_server_port = 9000
self.reconnect_flag = 0
def publish_timer_cb(self, *args):
EventMesh.publish(constants.PROTOCOL.LK_SEND)
- self.authen_set()
+ # self.authen_set()
def authen_set(self):
sever_state = EventMesh.publish("get_server_state")#获取修改服务器状态
if sever_state != None:
secretKey = data_tmp["secretKey"]#
pid = data_tmp["bid"]#产品型号
port = data_tmp["port"]#端口号
-
- # host = "device.miwitracker.com"#童信
- # port = 8505
- # d_md5_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
+ host = "api.xcloudtech.com"#童信
+ port = 9000
+ secretKey = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP"
+ pid = "SZKW"
if secretKey != '':
EventMesh.publish("set_new_key", str(secretKey))#获取pid和key
if pid != '':
if data != None:
try:
self.sock.send(data)
- print("TCP:send data2 len:{}".format(len(data)))
+ print("TCP:send data2 len:{}".format(data))
except Exception as e:
self.reconnect()
self.socket_send_queue.put(data)#重新把数据加回队列
TYPE = "TK"
+ def send(self, event, msg):
+ # print("TK send:{}".format(msg))
+ if len(str(msg)) == 1:
+
+ len_size = len(str(msg))+len("TK,")
+ # 实例:[XT*334588000000156*0009*TK,1]
+ send_data = EventMesh.publish("get_new_pid")+"*%s*%04X*TK"%(self.imei,len_size)
+ MD5_head_data = EventMesh.publish("get_new_pid")+"*%s*%04X*%s"%(self.imei,len_size,"TK")
+ MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+ data = "[%s%s,%d]"%(str(MD5_SIGN),send_data,msg)
+ print("TK:data:%s"%(data))
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ else:
+ # [SZKW*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
+ #[XT*YYYYYYYYYYYYYYY*LEN*TKS,秒数(十进制),AMR 格式音频数据]
+ arm_data = msg[1]
+ arm_sec = msg[0]
+ # print("TK_ProtoCol:msgtype:{} arm_sec:{}".format(len(msg[1]),arm_sec))
+
+ arm = bytearray()
+ for i in range(len(arm_data)):
+ if arm_data[i] == 0x7d:
+ arm.extend(b'\x7d\x01')
+ elif arm_data[i] == 0x5b :
+ arm.extend(b'\x7d\x02')
+ elif arm_data[i] == 0x5d :
+ arm.extend(b'\x7d\x03')
+ elif arm_data[i] == 0x2c :
+ arm.extend(b'\x7d\x04')
+ elif arm_data[i] == 0x2a :
+ arm.extend(b'\x7d\x05')
+ else :
+ arm.append(arm_data[i])
+
+ datalen = len(arm) + len("TK,")+len(str(arm_sec))+1
+ #Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
+ send_data = bytearray(EventMesh.publish("get_new_pid")+"*%s*%04X*TK,%d,"%(self.imei,datalen,arm_sec))
+ send_data.extend(arm)
+ MD5_head_data = EventMesh.publish("get_new_pid")+"*%s*%04X*%s"%(self.imei,datalen,"TK")
+ MD5_SIGN = self.pack_MD5_head(MD5_head_data)
+ data = bytearray('[')
+ data.extend(MD5_SIGN)
+ data.extend(send_data)
+ data.extend(']')
+ # print("TK:send data:%s MD5_head_data:%s"%(data,MD5_head_data))
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data)
+
+
+ def recv(self, event, msg):
+ """
+
+ ("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
+ @param event: 微聊
+ @param msg: 接收到的下行数据
+ [SZKW*860132060004322*20BD*TK,#!AMR...]
+ """
+ #Wechat_log("K_ProtoCol:recv:data:{}".format(msg))
+ # print("TK recv:{}".format(msg))
+ msg_tmp = msg.decode('ascii')
+ str = msg_tmp.split('TK,')
+ # Wechat_log("TK_ProtoCol:recv:len:{} {} {}".format(len(msg),len(str),msg_tmp.find("#!AMR")))
+ if msg_tmp.find("#!AMR") != -1: #是否是服务器下发音频数据
+ # Wechat_log("TK_ProtoCol:recv:datalen{}".format(len(msg)))
+ arm_data = bytearray(str[1])#获取amr输出
+ get_wechat_data = EventMesh.publish("get_wechat_data")
+
+ MXA_MSG = get_wechat_data[0]
+ wechat_recode_list = get_wechat_data[1]
+ wechat_num = wechat_recode_list["num"]
+ # Wechat_log("TK_ProtoCol:datalen:{} {} {}".format(wechat_num,MXA_MSG,wechat_recode_list))
+
+ if wechat_num >= MXA_MSG:
+ wechat_num = 0
+ if wechat_num == 0:
+ wechat_num += 1
+ elif wechat_num > 0:
+ wechat_num += 1
+
+
+ print("num_total:datalen:{} {}".format(MXA_MSG,wechat_recode_list))
+ wechat_recode_list["%02d"%(wechat_num)] = "R:{}".format(3)
+ wechat_recode_list['num'] = wechat_num
+ EventMesh.publish("set_wechat_data",[MXA_MSG,wechat_recode_list])
+ #写语音文件数据
+ screen_NAME = EventMesh.publish("get_screen_NAME")
+ get_lcd_state = EventMesh.publish("get_lcd_state")
+ if screen_NAME != "wechat" or get_lcd_state == 0:
+ EventMesh.publish("load_screen", {"screen": "wechat_popup"})
+ else:
+ EventMesh.publish("wechat_updata_list_show")
+ # path = "/ext/static/storage_file/audio_amr/amr/{}.wav".format(wechat_num)
+ path = "/usr/static/storage_file/{}.wav".format(wechat_num)
+ with open(path,"w") as fd:
+ arm = bytearray()
+ j = 0
+ for i in range(len(arm_data)):
+ if arm_data[j] == 0x7d and arm_data[j+1] == 0x01:
+ arm.extend(b'\x7d')
+ j+=1
+ elif arm_data[j] == 0x7d and arm_data[j+1] == 0x02:
+ arm.extend(b'\x5b')
+ j+=1
+ elif arm_data[j] == 0x7d and arm_data[j+1] == 0x03:
+ arm.extend(b'\x5d')
+ j+=1
+ elif arm_data[j] == 0x7d and arm_data[j+1] == 0x04:
+ arm.extend(b'\x2c')
+ j+=1
+ elif arm_data[j] == 0x7d and arm_data[j+1] == 0x05:
+ arm.extend(b'\x2a')
+ j+=1
+ else :
+ arm.append(arm_data[j])
+ j+=1
+ if j >= len(arm_data):
+ break
+ fd.write(arm)
+ EventMesh.publish(constants.PROTOCOL.TK_SEND,1)
+
+
+
+
+class TKS_ProtoCol(ProtoCol):
+ """微聊"""
+ TYPE = "TKS"
+
+
def send(self, event, msg):
# print("TK send:{}".format(msg))
if len(str(msg)) == 1:
else :
arm.append(arm_data[i])
- datalen = len(arm) + 4+len(str(arm_sec))+1
+ datalen = len(arm) +len("TKS,")+len(str(arm_sec))+1
#Wechat_log("len(str(arm_sec)):{}".format(len(str(arm_sec))+1))
send_data = bytearray(EventMesh.publish("get_new_pid")+"*%s*%04X*TKS,%d,"%(self.imei,datalen,arm_sec))
send_data.extend(arm)
#Wechat_log("K_ProtoCol:recv:data:{}".format(msg))
# print("TK recv:{}".format(msg))
msg_tmp = msg.decode('ascii')
- str = msg_tmp.split('TK,')
+ str = msg_tmp.split('TKS,')
# Wechat_log("TK_ProtoCol:recv:len:{} {} {}".format(len(msg),len(str),msg_tmp.find("#!AMR")))
if msg_tmp.find("#!AMR") != -1: #是否是服务器下发音频数据
# Wechat_log("TK_ProtoCol:recv:datalen{}".format(len(msg)))
if j >= len(arm_data):
break
fd.write(arm)
- EventMesh.publish(constants.PROTOCOL.TK_SEND,1)
+ EventMesh.publish(constants.PROTOCOL.TKS_SEND,1)
-
-
+
class MESSAGE_ProtoCol(ProtoCol):
"""微聊"""
@param event:
@param msg: 接收到的下行数据
"""
- # b'[SZKW*867387060319166*000A*KEYBRD]'
+ # b'[SZKW*876226002021444*0048*MEMBERS,0036003900350031003800330032002C563F563FD83CDF410020D83CDF42002C]'
print("MEMBERS!!!!!!!!!!!!!",msg)
- # EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND)
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp = msg_tmp.split(',')
-# [XT*YYYYYYYYYYYYYYY*LEN*AGTALK,通话类型,对方账号]
-# 通话类型:0表示语音通话,1表示视频通话
-# 实例:
-# XT*334588000000156*0007*AGTALK,0,d3e2f759f9d5af3858f3530b]
-# 或[XT*334588000000156*0007*AGTALK,1,d3e2f759f9d5af3858f3530b]
-# 注:如果佰锐视频,则账号为佰锐账号(整型)
-# 平台回复:[XT*设备ID*LEN*AGTALK,结果,Token,声网频道名/会议号(如有的话,没有则不带)]
-# 结果:0表示可正常通话,-1表示余额不足,不能通话,1表示对方不在线或未登陆成功
-# 实例:[XT*334588000000156*0006*AGTALK,0,efef2323423423,123]或[XT*334588000000156*0006*AGTALK,1]
-class AGTALK_ProtoCol(ProtoCol):#设备发起视频通话
- """"""
- TYPE = "AGTALK"
- def send(self, event, msg):
-
- # [XT*334588000000156*0005*WLKEY]
- send_data = EventMesh.publish("get_new_pid")+"*%s*0006*AGTALK"%(self.imei)
- MD5_SIGN = self.pack_MD5_head(send_data)
- data = "[%s%s]"%(str(MD5_SIGN),send_data)
- # print("WLKEY:data:%s"%(data))
- # print("WLKEY!!!!!!!!!!!!!")
- # 通过socket发送到服务器端
- EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+ videobook = {}
+ msg_tmp = msg_tmp[1:]
+ msg_tmp = msg_tmp[0]
- def recv(self, event, msg):
- """
- @param event:
- @param msg: 接收到的下行数据
- """
- # b'[SZKW*867387060319166*000A*KEYBRD]'
- print("AGTALK!!!!!!!!!!!!!",msg)
+ j = 0
+ i = 0
+ videobook_old = {}
+ videobook_name_tmp = UnicodeHexStr_To_Utf8Str(msg_tmp)
+ lst = videobook_name_tmp.split(",")
+
+ print("msg_tmp:{} phonebook_oldtmp:{} type:{}".format(msg_tmp,videobook_name_tmp,lst))
+ # 0 1 2 3
+ for vediobook_tmp in lst:
+
+ if (j % 3) == 0:#账号
+ videobook_old = vediobook_tmp
+ elif (j % 3) == 1:#名称
+ i+=1
+ videobook_name_cont= "{}:{}".format("%03d"%(i),videobook_old)
+ videobook[videobook_name_cont] = vediobook_tmp
+ j+=1
+ print("videobook!!!:{}".format(str(videobook)))
+ # print("phonebook!!!:{}".format(str(phonebook)))
+ with open("/usr/static/storage_file/videobook.json","w",encoding="utf-8") as fd:
+ ujson.dump(videobook,fd)
+ print("创建视频通话账号")
+
+ EventMesh.publish("set_videobook_list",[1,videobook])
+ EventMesh.publish("video_updata_list_show")
# EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND)
-# [XT*YYYYYYYYYYYYYYY*LEN*AGTALK,通话类型,对方账号]
-# 通话类型:0表示语音通话,1表示视频通话
-# 实例:
-# XT*334588000000156*0007*AGTALK,0,d3e2f759f9d5af3858f3530b]
-# 或[XT*334588000000156*0007*AGTALK,1,d3e2f759f9d5af3858f3530b]
-# 注:如果佰锐视频,则账号为佰锐账号(整型)
-# 平台回复:[XT*设备ID*LEN*AGTALK,结果,Token,声网频道名/会议号(如有的话,没有则不带)]
-# 结果:0表示可正常通话,-1表示余额不足,不能通话,1表示对方不在线或未登陆成功
-# 实例:[XT*334588000000156*0006*AGTALK,0,efef2323423423,123]或[XT*334588000000156*0006*AGTALK,1]
-class CALLING_ProtoCol(ProtoCol):#设备发起视频通话
+# [X*Y*LEN*CALLING,呼叫者id,会议id,通话类型,Token]
+
+# 设备回复
+# [X*Y*LEN*CALLING,音视频状态]
+# 音视频状态:为0表示正常可通讯状态,否则填上用音视频返回的状态码,比如200,如果未获取到返回状态码,则填1
+class CALLING_ProtoCol(ProtoCol):#app发起视频通话
""""""
TYPE = "CALLING"
def send(self, event, msg):
@param msg: 接收到的下行数据
"""
# b'[SZKW*867387060319166*000A*KEYBRD]'
- print("AGTALK!!!!!!!!!!!!!",msg)
+ print("CALLING!!!!!!!!!!!!!",msg)
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp_d = msg_tmp.split(',')
+ call_id = msg_tmp_d[1]#id
+ meet_id = msg_tmp_d[2]#会议id
+ call_type = msg_tmp_d[3]#会议id
+ 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_tokens_data", tokens_data)#
+
+
+ # EventMesh.publish("set_vedio_infor",[call_id,meet_id,call_type,tokens_data])#
EventMesh.publish(constants.PROTOCOL.CALLING_SEND,0)
- EventMesh.publish("load_screen", {"screen": "camera_answer"})
+ EventMesh.publish("load_screen", {"screen": "vedio_incall"})
# [XT*YYYYYYYYYYYYYYY*LEN*RCALLING,呼叫者id,会议id/声网频道名(没有则留空,但位置保留),音频还是视频(0为音频,1为视频)]
# 实例:
# [XT*设备ID*LEN*RCALLING]
# 实例:[XT*334588000000156*0009*RCALLING]
#
-class RCALLING_ProtoCol(ProtoCol):#设å¤\87æ\8c\82æ\96
+class RCALLING_ProtoCol(ProtoCol):#设å¤\87æ\8b\92æ\8e¥æ\8e¥å\90¬
""""""
TYPE = "RCALLING"
def send(self, event, msg):
# [XT*334588000000156*0005*WLKEY]
send_data = EventMesh.publish("get_new_pid")+"*%s*0008*RCALLING"%(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))
+ data = "[%s%s,%s,%s,%d]"%(str(MD5_SIGN),send_data,msg[0],msg[1],msg[2])
+ print("RCALLING:send data:%s"%(data))
# print("WLKEY!!!!!!!!!!!!!")
# 通过socket发送到服务器端
EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
@param event:
@param msg: 接收到的下行数据
"""
- # b'[SZKW*867387060319166*000A*KEYBRD]'
- print("AGTALK!!!!!!!!!!!!!",msg)
- EventMesh.publish(constants.PROTOCOL.CALLING_SEND,0)
- EventMesh.publish("load_screen", {"screen": "camera_answer"})
+ # b'[SZKW*867387060319166*000A*RCALLING]'
+ print("RCALLING!!!!!!!!!!!!!")
+
+class AGTALK_ProtoCol(ProtoCol):#设备发起视频通话与app接听视频通话
+ """"""
+ TYPE = "AGTALK"
+ def send(self, event, msg):
+
+ # [XT*334588000000156*0005*WLKEY]
+ send_data = EventMesh.publish("get_new_pid")+"*%s*0006*AGTALK"%(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("WLKEY!!!!!!!!!!!!!")
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ def recv(self, event, msg):
+ """
+ @param event:
+ @param msg: 接收到的下行数据
+ """
+ # b'[SZKW*876226002021444*007B*AGTALK,0,01lqlyqzzQHpfwv5g7jFVC2H6Ha2tHFpMlfSm5sd2uo7o55JEcc=OVxewje6MjP0NgEODwsLDwkJCwkLCA0NDQ==,8762260020214441701226895]'
+
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp_d = msg_tmp.split(',')
+ call_state = int(msg_tmp_d[1])#id
+
+ if call_state == 0:#可正常通话
+ 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("open_vedio_infor")
+ # EventMesh.publish("set_UI_high_priority", 0)
+ # EventMesh.publish("load_screen", {"screen": "vedio_answer"})
+ # EventMesh.publish("set_vedio_infor",[call_id,meet_id,call_type,tokens_data])#
+
+
+
+ print("AGTALK!!!!!!!!!!!!!")
+
+
+class RTALK_ProtoCol(ProtoCol):#app拒接视频通话
+ """"""
+ TYPE = "RTALK"
+ def send(self, event, msg):
+
+ # [XT*334588000000156*0005*WLKEY]
+ 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("WLKEY!!!!!!!!!!!!!")
+ # 通过socket发送到服务器端
+ EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data)
+
+ def recv(self, event, msg):
+ """
+ @param event:
+ @param msg: 接收到的下行数据
+ """
+ # b'[SZKW*867387060319166*000A*RTALK]'
+ print("RTALK!!!!!!!!!!!!!")
+ # [SZKW*876226002021444*003A*RTALK,3ef20e64f3abb84b27f7d764,8762260020214441701226522,1]'
+ msg = msg[1:-1]
+ msg_tmp = msg.decode('ascii')
+ msg_tmp_d = msg_tmp.split(',')
+ screen_NAME = EventMesh.publish("get_screen_NAME")
+ if screen_NAME != None:
+ if screen_NAME == "video_outcall":
+ # EventMesh.publish("close_jrtc_event")
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("load_screen", {"screen": "videolist"})
+
+
class ProtoColResolver(object):
def __init__(self):
def handler(self, data):
# 这里接收数据
- # print("handler -> {}".format(data))
+ print("handler -> {}".format(data))
# if data.startswith('Init;'):
# data = data[5:]
# EventMesh.publish(constants.EVENT.SET_KEY, {"value": ujson.loads(data)['KEY']})
def btn8_press(self):
EventMesh.publish("watch_top_show")
EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+
+
# -------------------------------------------temperature screen----------------------------------------------------------
temperature_screen = None
# volum_slider_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e)), lv.EVENT.VALUE_CHANGED, None)
# volum_slider_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e)), lv.EVENT.RELEASED, None)
- down_show_bright_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"brightness")), lv.EVENT.CLICKED, None)
- down_show_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"totalvolume")), lv.EVENT.CLICKED, None)
- down_show_setting_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"setting")), lv.EVENT.CLICKED, None)
-
- def img_cb(self,e,msg):
- if msg == "brightness":
- # volum_slider_1.add_flag(lv.obj.FLAG.HIDDEN)
- # brightress_slider_1.clear_flag(lv.obj.FLAG.HIDDEN)
- EventMesh.publish("load_screen", {"screen": "brightness"})
- elif msg == "totalvolume":
- # brightress_slider_1.add_flag(lv.obj.FLAG.HIDDEN)
- # volum_slider_1.clear_flag(lv.obj.FLAG.HIDDEN)
- EventMesh.publish("load_screen", {"screen": "totalvolume"})
- else:
- if msg == 'setting':
- EventMesh.publish("load_screen", {"screen": "setting"})
- pass
+ down_show_bright_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"brightness")), lv.EVENT.SHORT_CLICKED, None)
+ down_show_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"totalvolume")), lv.EVENT.SHORT_CLICKED, None)
+ down_show_setting_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"setting")), lv.EVENT.SHORT_CLICKED, None)
+ down_show_bright_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"brightness")), lv.EVENT.PRESSING, None)
+ down_show_volume_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"totalvolume")), lv.EVENT.PRESSING, None)
+ down_show_setting_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e,"setting")), lv.EVENT.PRESSING, None)
- # def change_bright(self,e):#调节亮度
- # code = e.get_code()
- # value_slider = brightress_slider_1.get_value()
- # if code == lv.EVENT.RELEASED:
- # value_slider = brightress_slider_1.get_value()
- # print("bright value_slider",value_slider)
-
+ def img_cb(self,e,msg):
+ code = e.get_code()
+ indev = lv.indev_get_act()
+ lv.indev_t.wait_release(indev)
+ dir = lv.indev_t.get_gesture_dir(indev)
+ # LV_DIR_TOP
+ if code == lv.EVENT.GESTURE:
+ if dir == lv.DIR.BOTTOM:
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
- # def change_volum(self,e):#调节音量
- # code = e.get_code()
- # value_slider = volum_slider_1.get_value()
- # if code == lv.EVENT.RELEASED:
- # value_slider = volum_slider_1.get_value()
- # print("volum value_slider",value_slider)
-
-
+ elif code == lv.EVENT.SHORT_CLICKED:
+ if msg == "brightness":
+ # volum_slider_1.add_flag(lv.obj.FLAG.HIDDEN)
+ # brightress_slider_1.clear_flag(lv.obj.FLAG.HIDDEN)
+ EventMesh.publish("load_screen", {"screen": "brightness"})
+ elif msg == "totalvolume":
+ # brightress_slider_1.add_flag(lv.obj.FLAG.HIDDEN)
+ # volum_slider_1.clear_flag(lv.obj.FLAG.HIDDEN)
+ EventMesh.publish("load_screen", {"screen": "totalvolume"})
+ else:
+ if msg == 'setting':
+ EventMesh.publish("load_screen", {"screen": "setting"})
+ pass
tmp = file.split('/')[3]
tmp = tmp.split("_camera")[0]
time = int(tmp)
- album_data = EventMesh.publish("get_camera_num")
- album_data_tmp = {}
- album_data_tmp["timeSec"] = time
- album_data[time] = album_data_tmp
- EventMesh.publish("set_camera_num",album_data)
+ album_data = int(EventMesh.publish("get_camera_num"))
+
+ EventMesh.publish("set_camera_num",album_data+1)
+ EventMesh.publish("save_album_succ",1)
pass
pass
dec = camera.camCapture(0,240,320,1,128,128)
EventMesh.publish("load_screen", {"screen": "main_menu"})
+ def btn1_release(self):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+ pass
+
+ def btn8_press(self):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+ pass
+
+delete_album_popup_screen = None
+delete_album_label_popup_screen = None
+class deletealbumScreen(Screen):#删除图片
+ #
+ NAME = "delete_album"
+
+ def __init__(self):
+ super().__init__()
+ self.meta = None
+ self.meta_type = "popup"
+
+
+ def initialization(self):
+ global delete_album_popup_screen ,delete_album_label_popup_screen
+
+
+ if delete_album_popup_screen == None:
+ delete_album_popup_screen = lv.obj()
+ print("delete_album_popup_screen")
+ delete_album_popup_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ delete_album_label_popup_screen = lv.label(delete_album_popup_screen)
+ delete_album_label_popup_screen.set_pos(0, 50)
+ delete_album_label_popup_screen.set_size(128, 40)
+ delete_album_label_popup_screen.set_text("删除成功")
+ delete_album_label_popup_screen.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+ delete_album_label_popup_screen.set_long_mode(lv.label.LONG.WRAP)
+ delete_album_label_popup_screen.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ self.meta = delete_album_popup_screen
+
+
+ def done_click(self):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+ pass
+
+
+ def done_return(self):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+
def btn1_release(self):
EventMesh.publish("load_screen", {"screen": "main_menu"})
pass
self.preview1 = None
self.timer = osTimer()
self.timer2 =osTimer()
+ self.timer3 = osTimer()
self.camera_num = 0
+ EventMesh.subscribe("save_album_succ",self.save_album_succ)
def initialization(self):
global camera_popup_screen ,camera_popup_label
-
+ state = dec.open()
if camera_popup_screen == None:
camera_popup_screen = lv.obj()
print("Lowpower_screen")
camera_popup_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+ img_test = lv.img(camera_popup_screen)
+ # img_test.set_src("U:/hang_up.png")
+ ret = dec.set_img(img_test)
+ print("set img:", ret)
+ img_test.align(lv.ALIGN.CENTER, 0, 0)
+ img_test.set_size(128,128)
+
+ camera_camera_btn = lv.img(camera_popup_screen)
+ camera_camera_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+ camera_camera_btn.set_pos(48, 90)
+ camera_camera_btn.set_size(30,30)
+ camera_camera_btn.set_src("U:/static/camera_btn.png")
+ # camera_camera_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_click(e)), lv.EVENT.CLICKED, None)
+
+ camera_camera_album_btn = lv.img(camera_popup_screen)
+ camera_camera_album_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+ camera_camera_album_btn.set_pos(100, 10)
+ camera_camera_album_btn.set_size(20,20)
+ camera_camera_album_btn.set_src("U:/static/camera_album_btn.png")
+ # camera_camera_album_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_album_click(e)), lv.EVENT.CLICKED, None)
+
+ camera_camera_return_btn = lv.img(camera_popup_screen)
+ camera_camera_return_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+ camera_camera_return_btn.set_pos(0, 10)
+ camera_camera_return_btn.set_size(18,18)
+ camera_camera_return_btn.set_src("U:/static/RED_RETURN_PNG.png")
+ # camera_camera_return_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_album_click(e)), lv.EVENT.CLICKED, None)
+
+ camera_camera_return_btn_label = lv.label(camera_popup_screen)
+ camera_camera_return_btn_label.set_pos(0, 0)
+ camera_camera_return_btn_label.set_size(40, 40)
+ camera_camera_return_btn_label.set_text(" ")
+ camera_camera_return_btn_label.add_flag(lv.obj.FLAG.CLICKABLE)
+ camera_camera_return_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_return_click(e)), lv.EVENT.CLICKED, None)
+
+ camera_camera_album_btn_label = lv.label(camera_popup_screen)
+ camera_camera_album_btn_label.set_pos(80, 0)
+ camera_camera_album_btn_label.set_size(48, 40)
+ camera_camera_album_btn_label.set_text(" ")
+ camera_camera_album_btn_label.add_flag(lv.obj.FLAG.CLICKABLE)
+ camera_camera_album_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_album_click(e)), lv.EVENT.CLICKED, None)
+
+ camera_camera_btn_label = lv.label(camera_popup_screen)
+ camera_camera_btn_label.set_pos(40, 88)
+ camera_camera_btn_label.set_size(50, 40)
+ camera_camera_btn_label.set_text(" ")
+ camera_camera_btn_label.add_flag(lv.obj.FLAG.CLICKABLE)
+ camera_camera_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_click(e)), lv.EVENT.CLICKED, None)
+
camera_popup_label = lv.label(camera_popup_screen)
- camera_popup_label.set_pos(0, 20)
+ camera_popup_label.set_pos(0, 40)
camera_popup_label.set_size(128, 20)
- camera_popup_label.set_text("点击屏幕保存")
+ camera_popup_label.set_text("保存成功")
camera_popup_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
camera_popup_label.set_long_mode(lv.label.LONG.WRAP)
camera_popup_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ camera_popup_label.add_flag(lv.obj.FLAG.HIDDEN)
+
self.meta = camera_popup_screen
album_data = EventMesh.publish("get_camera_num")
- if len(album_data) >= 2:#相册已满
+ if int(album_data) >= 1:#相册已满
EventMesh.publish("load_screen", {"screen": "camera_full"})
pass
-
-
- state = dec.open()
- img_test = lv.img(camera_popup_screen)
- img_test.set_src("U:/static/hang_up.png")
- ret = jrtc.set_img(img_test)
- print("set img:", ret)
- img_test.set_pos(48, 90)
- img_test.set_size(32,32)
+ if camera_popup_label != None:
+ camera_popup_label.add_flag(lv.obj.FLAG.HIDDEN)
self.timer.start(1*1000,1,self.fun)
- print("state",state)
+
+ def save_album_succ(self,event,msg):
+ global camera_popup_label
+ if camera_popup_label != None:
+ if msg == 1:
+ camera_popup_label.clear_flag(lv.obj.FLAG.HIDDEN)
+ else:
+ camera_popup_label.add_flag(lv.obj.FLAG.HIDDEN)
+
+ self.timer3.start(1*2000,0,self.save_suc_album)#延迟1s保存图片
+ pass
def fun(self,*argc):
EventMesh.publish("system_sleep_rest")#防止黑屏
+ def camera_click(self,e):
+ self.timer3.stop()
+ EventMesh.publish("save_album_succ",2)
+ album_data = EventMesh.publish("get_camera_num")
+ if int(album_data) >= 1:#相册已满
+ EventMesh.publish("load_screen", {"screen": "camera_full"})
+ return
+ self.timer2.start(1*1000,0,self.save_album)#延迟1s保存图片
+ def camera_album_click(self,e):
+ EventMesh.publish("load_screen", {"screen": "camera_album"})
+ def camera_return_click(self,e):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
def Close(self):
self.timer.stop()
+ self.timer2.stop()
+ self.timer3.stop()
state = dec.close()
- def done_click(self):
- self.timer2.start(1*1000,0,self.save_album)#延迟1s保存图片
- pass
+ def save_suc_album(self,*argc):
+ EventMesh.publish("save_album_succ",2)
+ # def done_click(self):
+ # self.timer2.start(1*1000,0,self.save_album)#延迟1s保存图片
+ # pass
def save_album(self,*argc):
album_data = EventMesh.publish("get_camera_num")
- if len(album_data) < 2:
+ if int(album_data) <= 1:
date_tmp = utime.localtime()
time_tmp = utime.mktime(date_tmp)
- dec.start(50,50, "U:/static/album/%d_camera"%(time_tmp))
+ dec.start(128,128, "static/album/1_camera")
else:
EventMesh.publish("load_screen", {"screen": "camera_full"})
camera_album_popup_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
camera_album_popup_label = lv.label(camera_album_popup_screen)
- camera_album_popup_label.set_pos(0, 5)
+ camera_album_popup_label.set_pos(0, 60)
camera_album_popup_label.set_size(128, 20)
- camera_album_popup_label.set_text("相册预览")
+ camera_album_popup_label.set_text("还没有照片")
camera_album_popup_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
camera_album_popup_label.set_long_mode(lv.label.LONG.WRAP)
camera_album_popup_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
camera_album_popup_img1 = lv.img(camera_album_popup_screen)
- camera_album_popup_img1.set_pos(5, 30)
- camera_album_popup_img1.set_size(50, 50)
- camera_album_popup_img1.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img1.add_flag(lv.obj.FLAG.CLICKABLE)
- # camera_album_popup_img1.set_zoom(160)
- camera_album_popup_img1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,0)), lv.EVENT.CLICKED, None)
+ camera_album_popup_img1.set_pos(0, 0)
+ camera_album_popup_img1.set_size(128, 128)
+
+ # camera_album_popup_img1.add_flag(lv.obj.FLAG.HIDDEN)
+ # camera_album_popup_img1.add_flag(lv.obj.FLAG.CLICKABLE)
+ # # camera_album_popup_img1.set_zoom(256)
+ # camera_album_popup_img1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,0)), lv.EVENT.CLICKED, None)
camera_album_popup_img2 = lv.img(camera_album_popup_screen)
- camera_album_popup_img2.set_pos(65, 30)
- camera_album_popup_img2.set_size(50, 50)
- camera_album_popup_img2.add_flag(lv.obj.FLAG.HIDDEN)
+ camera_album_popup_img2.set_pos(51, 100)
+ camera_album_popup_img2.set_size(25, 25)
camera_album_popup_img2.add_flag(lv.obj.FLAG.CLICKABLE)
- # camera_album_popup_img2.set_zoom(160)
- camera_album_popup_img2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,1)), lv.EVENT.CLICKED, None)
+ camera_album_popup_img2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,0)), lv.EVENT.CLICKED, None)
camera_album_popup_img3 = lv.img(camera_album_popup_screen)
- camera_album_popup_img3.set_pos(5, 90)
- camera_album_popup_img3.set_size(50, 50)
- camera_album_popup_img3.add_flag(lv.obj.FLAG.HIDDEN)
+ camera_album_popup_img3.set_pos(0, 10)
+ camera_album_popup_img3.set_size(18,18)
camera_album_popup_img3.add_flag(lv.obj.FLAG.CLICKABLE)
- # camera_album_popup_img3.set_zoom(160)
- camera_album_popup_img3.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,2)), lv.EVENT.CLICKED, None)
-
- camera_album_popup_img4 = lv.img(camera_album_popup_screen)
- camera_album_popup_img4.set_pos(50, 90)
- camera_album_popup_img4.set_size(65, 50)
- camera_album_popup_img4.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img4.add_flag(lv.obj.FLAG.CLICKABLE)
- # camera_album_popup_img4.set_zoom(160)
- camera_album_popup_img4.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,3)), lv.EVENT.CLICKED, None)
-
- camera_album_popup_img5 = lv.img(camera_album_popup_screen)
- camera_album_popup_img5.set_pos(5, 140)
- camera_album_popup_img5.set_size(50, 50)
- camera_album_popup_img5.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img5.add_flag(lv.obj.FLAG.CLICKABLE)
- # camera_album_popup_img5.set_zoom(160)
- camera_album_popup_img5.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,4)), lv.EVENT.CLICKED, None)
+ camera_album_popup_img3.set_src("U:/static/RED_RETURN_PNG.png")
+ camera_album_popup_img3.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,1)), lv.EVENT.CLICKED, None)
self.meta = camera_album_popup_screen
- read_album = {}
+ read_album = 0
read_album = EventMesh.publish("get_camera_num")
- sort_new = {}
- sort_new = sorted(read_album.keys())#按照key的升序排序
- count = 0
- camera_album_popup_img1.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img2.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img3.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img4.add_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img5.add_flag(lv.obj.FLAG.HIDDEN)
-
- # print("sort_new read_album ",sort_new,read_album)
- for i in range(0,len(sort_new)):
- key = sort_new[i]
- value = int(read_album[key]["timeSec"])
- print(value)
- check_img = ql_fs.path_exists("/usr/static/album/%d_camera.jpg"%(value))
- if check_img == True :#图片存着
- print("图片存在显示")
- pass
- else:
- print("图片不存在不显示循环下一个显示")
- continue
-
- if count == 0:
- camera_album_popup_img1.clear_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img1.set_src("U:/static/album/%d_camera.jpg"%(value)) #'U:/6_camera.jpeg'
- pass
- elif count == 1:
- camera_album_popup_img2.clear_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img2.set_src("U:/static/album/%d_camera.jpg"%(value))#'U:/6_camera.jpeg'
- pass
- elif count == 2:
- camera_album_popup_img3.clear_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img3.set_src("U:/static/album/%d_camera.jpg"%(value))#'U:/6_camera.jpeg'
- pass
- elif count == 3:
- camera_album_popup_img4.clear_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img4.set_src("U:/static/album/%d_camera.jpg"%(value))#'U:/6_camera.jpeg'
- pass
- elif count == 4:
- camera_album_popup_img5.clear_flag(lv.obj.FLAG.HIDDEN)
- camera_album_popup_img5.set_src("U:/static/album/%d_camera.jpg"%(value))#'U:/6_camera.jpeg'
- pass
- count+=1
+ print("read_album",read_album)
+ if int(read_album) != 0:
+ camera_album_popup_img1.clear_flag(lv.obj.FLAG.HIDDEN)
+ camera_album_popup_img1.set_src("U:/static/album/1_camera.jpg") #'U:/6_camera.jpeg'"U:/static/album/1_camera.jpg"
+ camera_album_popup_img2.clear_flag(lv.obj.FLAG.HIDDEN)
+ camera_album_popup_img2.set_src("U:/static/album_delete.png")
+ camera_album_popup_label.add_flag(lv.obj.FLAG.HIDDEN)
+ else:
+ camera_album_popup_img1.add_flag(lv.obj.FLAG.HIDDEN)
+ camera_album_popup_img2.add_flag(lv.obj.FLAG.HIDDEN)
+ camera_album_popup_label.clear_flag(lv.obj.FLAG.HIDDEN)
+
def click_album(self,e,i):
- read_album = {}
- read_album = EventMesh.publish("get_camera_num")
- if len(read_album) != 0 and i < len(read_album):
- sort_new = {}
- sort_new = sorted(read_album.keys())
- key = sort_new[i]
- value = int(read_album[key]["timeSec"])
- self.meta_info = value
- print(self.meta_info,i)
- EventMesh.publish("load_screen", {"screen": "album_preview","meta": self.meta_info})#点击进入相册预览大图显示
- print(i)
+ if i == 0:
+ check_img = ql_fs.path_exists("/usr/static/album/1_camera.jpg")
+ if check_img == True :#图片存在
+ uos.remove("/usr/static/album/1_camera.jpg")#删除单张图片
+ album_data = int(EventMesh.publish("get_camera_num"))
+
+ EventMesh.publish("set_camera_num",album_data-1)
+
+ EventMesh.publish("load_screen", {"screen": "delete_album"})
+ return
+
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+ # read_album = {}
+ # read_album = EventMesh.publish("get_camera_num")
+ # if len(read_album) != 0 and i < len(read_album):
+ # sort_new = {}
+ # sort_new = sorted(read_album.keys())
+ # key = sort_new[i]
+ # value = int(read_album[key]["timeSec"])
+ # self.meta_info = value
+ # print(self.meta_info,i)
+ # EventMesh.publish("load_screen", {"screen": "album_preview","meta": self.meta_info})#点击进入相册预览大图显示
+ # print(i)
pass
def Close(self):
album_preview_popup_img = lv.img(album_preview_popup_screen)
- album_preview_popup_img.set_pos(39, 5)
- album_preview_popup_img.set_size(50,50)
+ album_preview_popup_img.set_pos(0, 0)
+ album_preview_popup_img.set_size(120,120)
# album_preview_popup_img.set_zoom(400)
album_preview_popup_delet_label = lv.label(album_preview_popup_screen)
def confirm_pop(self,e):#确认删除
# album_num = int(self.meta_info.split(':')[1])
- album_num_tmp = None
- album_num_tmp = int(self.meta_info)
- print(album_num_tmp)
+ # album_num_tmp = None
+ # album_num_tmp = int(self.meta_info)
+ # print(album_num_tmp)
- check_img = ql_fs.path_exists("/usr/static/album/%d_camera.jpg"%(album_num_tmp))
- if check_img == True :#图片存在
- uos.remove("/usr/static/album/%d_camera.jpg"%(album_num_tmp))#删除单张图片
- read_album = {}
- read_album = EventMesh.publish("get_camera_num")#删除的同时把数据部分也清掉
- print("img is exit1",read_album)
- if read_album != {}:
- key_tmp = album_num_tmp
- del read_album[key_tmp]#删除内容
- EventMesh.publish("set_camera_num",read_album)
- print("img is exit2",read_album)
- pass
- else:#图片不存在
- print("img is not exit")
- pass
+ # check_img = ql_fs.path_exists("/usr/static/album/%d_camera.jpg"%(album_num_tmp))
+ # if check_img == True :#图片存在
+ # uos.remove("/usr/static/album/%d_camera.jpg"%(album_num_tmp))#删除单张图片
+ # read_album = {}
+ # read_album = EventMesh.publish("get_camera_num")#删除的同时把数据部分也清掉
+ # print("img is exit1",read_album)
+ # if read_album != {}:
+ # key_tmp = album_num_tmp
+ # del read_album[key_tmp]#删除内容
+ # EventMesh.publish("set_camera_num",read_album)
+ # print("img is exit2",read_album)
+ # pass
+ # else:#图片不存在
+ # print("img is not exit")
+ # pass
EventMesh.publish("load_screen", {"screen": "camera_album"})#点击回到相册界面
pass
camera_video_screen = None
camera_video_label = None
-class cameraVdieoScreen(Screen):#相机拍照二级界面
+class cameraVdieoScreen(Screen):#
#
NAME = "camera_video"
+video_answer_screen = None
+video_answer_label = None
+video_answer_btn1 = None
+video_answer_btn_label1 = None
+class cameraVdieoAnswerScreen(Screen):#接听画面
+ #
+ NAME = "vedio_answer"
+
+ def __init__(self):
+ super().__init__()
+ self.meta = None
+ self.timer = osTimer()
+ self.count = 0
+
+ def initialization(self):
+ global video_answer_screen ,video_answer_btn_label1
+ self.count = 0
+ if video_answer_screen == None:
+ video_answer_screen = lv.obj()
+ print("video_answer_screen")
+ video_answer_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_answer_btn_label1 = lv.label(video_answer_screen)
+ video_answer_btn_label1.set_pos(0, 50)
+ video_answer_btn_label1.set_text("正在接听中...")
+ video_answer_btn_label1.set_size(128, 40)
+ video_answer_btn_label1.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ video_answer_btn_label1.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+ self.meta = video_answer_screen
+ self.timer.start(1*1000,1,self.fun)
+
+ def fun(self,*argc):
+ call_state = jrtc.get_state()
+ if call_state == 5:
+ self.timer.stop()
+ EventMesh.publish("load_screen", {"screen": "vedioing"})
+ return
+ if call_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"))#
+
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+ return
+ print("vedio_answer call_state",call_state)
+ self.count+=1
+ if self.count >= 20:
+ EventMesh.publish("close_jrtc_event")
+ self.timer.stop()
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+ return
+
+ EventMesh.publish("system_sleep_rest")#防止黑屏
+
+
+ def Close(self):
+ self.timer.stop()
+
+ def done_return(self):
+ pass
+ # EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+
+ def btn1_release(self):
+ # EventMesh.publish("load_screen", {"screen": "main_menu"})
+ pass
+
+ def btn8_press(self):
+ # EventMesh.publish("load_screen", {"screen": "main_menu"})
+ pass
+
camera_video_answer_screen = None
camera_video_answer_label = None
camera_video_answer_btn = None
-class cameraVdieoAnswerScreen(Screen):#相机拍照二级界面
+vcamera_video_answer_btn_label = None
+camera_video_answer_label = None
+def jrtc_cb(close_sta):
+ print("jrtc callback:", close_sta)
+ if close_sta == 0 or close_sta == 1:
+ jrtc.close(1)
+jrtc.set_callback(jrtc_cb)
+class VedioShowScreen(Screen):#正在视频通话中
#
- NAME = "camera_answer"
+ NAME = "vedioing"
def __init__(self):
super().__init__()
self.preview1 = None
self.timer = osTimer()
self.statu_open = -1
- self.count = 0
-
- def initialization(self):
- global camera_video_answer_screen ,camera_video_answer_label,camera_video_answer_btn
- self.count = 0
+ self.show_label = 0
+ EventMesh.subscribe("open_vedio_infor",self.open_vedio_infor)
+ EventMesh.subscribe("close_jrtc_event",self.close_jrtc_event)
+
+ 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数据
+
+
+ print("vedio infor",call_id,meet_id,call_type,tokens_data)
+ # data = ['6951832', '876226002021444', '1', '01lqlyqzQ4Gozdz8OJv1Mij2Y3PBq2y3+rtIA26Ge+m2QHTc/Vk=gufkGNMBiYhPjbq1tLCwtLKysLKws7a2tg==']
jrtc.init()
- jrtc.config_server("119.3.54.56:1050")
- jrtc.config("6c06d1b0d9015e47ec144097", "us145b", "1234567890abcdef", "")
- self.statu_open = jrtc.open("us144a", "",[15,120,240,320],[15,129,128,128])
+ # jrtc.config_server("119.3.54.56:1050")#测试服地址
+ tokens = str(tokens_data)
+ oneself_id = str(876226002021444)#自己的账号
+ jrtc.config("efe9f8800a39d96244234097", oneself_id, "25v9C652123QL3N8", tokens)
+ uid = str(call_id)
+ ticket = str(meet_id)
+
+ print("uid ",uid,ticket,tokens)
+ jrtc.open(uid,ticket,[15,120,240,320],[15,129,128,128])
+
+ pass
+ def close_jrtc_event(self,event,msg):
+ call_state = jrtc.get_state()
+ print("close_jrtc_event",call_state)
+ jrtc.close(1)
+ pass
+
+ def initialization(self):
+ global camera_video_answer_screen ,camera_video_answer_label,camera_video_answer_btn,vcamera_video_answer_btn_label
if camera_video_answer_screen == None:
camera_video_answer_screen = lv.obj()
print("camera_video_answer_screen")
camera_video_answer_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-
-
img_test = lv.img(camera_video_answer_screen)
- # img_test.set_src("U:/hang_up.png")
ret = jrtc.set_img(img_test)
- print("set img:", ret)
img_test.align(lv.ALIGN.CENTER, 0, 0)
img_test.set_size(128,128)
+ # camera_video_answer_label = lv.label(camera_video_answer_screen)
+ # camera_video_answer_label.set_pos(0, 50)
+ # camera_video_answer_label.set_text("正在接听中...")
+ # camera_video_answer_label.set_size(128, 40)
+ # camera_video_answer_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ # camera_video_answer_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
camera_video_answer_btn = lv.img(camera_video_answer_screen)
camera_video_answer_btn.add_flag(lv.obj.FLAG.CLICKABLE)
camera_video_answer_btn.set_pos(48, 90)
camera_video_answer_btn.set_size(32,32)
camera_video_answer_btn.set_src("U:/static/hang_up.png")
camera_video_answer_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.close_cb(e)), lv.EVENT.CLICKED, None)
+
self.meta = camera_video_answer_screen
-
+ # camera_video_answer_label.clear_flag(lv.obj.FLAG.HIDDEN)
+ # camera_video_answer_btn.add_flag(lv.obj.FLAG.HIDDEN)
+ self.statu_open = 0
self.timer.start(1*1000,1,self.fun)
def close_cb(self,e):
- if self.statu_open == 0:
- jrtc.close(1)
- EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,0)
- EventMesh.publish("load_screen", {"screen": "main_menu"})
+ self.statu_open = 1
+ EventMesh.publish("close_jrtc_event")
+
+ 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"})
def fun(self,*argc):
EventMesh.publish("system_sleep_rest")#防止黑屏
+ call_state = jrtc.get_state()
+ print("call_state",call_state)
+ if call_state == 0 and self.statu_open == 0:
+ self.timer.stop()
+ EventMesh.publish("close_jrtc_event")
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+
def Close(self):
+vedio_call_screen = None
+vedio_call_img = None
+vedio_call_name_label = None
+vedio_call_answer = None
+vedio_call_hangup = None
+vedio_call_label = None
+# CALL_LOG_MAX = 50
+class vedioCallingCallScreen(Screen):#视频通话打入中
+ NAME = "vedio_incall"
+
+ def __init__(self):
+ super().__init__()
+ self.CALL_LOG_MAX = CALL_LOG_MAX
+ self.read_data = {}
+ self.meta_type = "popup"
+ self.aud = audio.Audio(0)
+ self.call_timer = osTimer()
+ self.call_timer1 = osTimer()
+ self.name = None
+ self.phonebook = {}
+ self.pro_state = 0
+ self.meta = None
+ self.timeout = 0
+
+ def initialization(self):
+ global vedio_call_screen,vedio_call_img,vedio_call_name_label,vedio_call_answer,vedio_call_hangup,vedio_call_label
+ if vedio_call_screen == None :
+ # -------------------------------------------vedio_call screen----------------------------------------------------------
+ vedio_call_screen = lv.obj()
+ print("vedio_call_screen")
+ vedio_call_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ vedio_call_label = lv.label(vedio_call_screen)
+ vedio_call_label.set_pos(0, 10)
+ vedio_call_label.set_text("是否接听视频通话")
+ vedio_call_label.set_size(128, 40)
+ vedio_call_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ vedio_call_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+ # vedio_call_img = lv.img(vedio_call_screen)
+ # vedio_call_img.set_pos(48, 10)
+ # vedio_call_img.set_size(32, 32)
+ # vedio_call_img.set_src("U:/static/IMAGE_NOTICE_CALL.png")
+ # vedio_call_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ vedio_call_name_label = lv.label(vedio_call_screen)
+ vedio_call_name_label.set_pos(0, 50)
+ vedio_call_name_label.set_text(" ")
+ vedio_call_name_label.set_size(128, 40)
+ vedio_call_name_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ vedio_call_name_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ vedio_call_answer = lv.img(vedio_call_screen)
+ vedio_call_answer.set_size(32, 32)
+ vedio_call_answer.add_flag(lv.obj.FLAG.CLICKABLE)
+ vedio_call_answer.set_pos(84, 85)
+ vedio_call_answer.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+ vedio_call_answer.set_src("U:/static/answer.png")
+
+ vedio_call_hangup = lv.img(vedio_call_screen)
+ vedio_call_hangup.set_size(32, 32)
+ vedio_call_hangup.add_flag(lv.obj.FLAG.CLICKABLE)
+ vedio_call_hangup.set_pos(11, 85)
+ vedio_call_hangup.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+ vedio_call_hangup.set_src("U:/static/hang_up.png")
+
+ vedio_call_answer.add_event_cb(lambda e: EventMesh.callback_wrapper(self.answer(e)),
+ lv.EVENT.CLICKED, None)
+ vedio_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
+ lv.EVENT.CLICKED, None)
+ self.meta = vedio_call_screen
+ EventMesh.publish("set_UI_high_priority", 1)
+ call_id = str(EventMesh.publish("get_vedio_call_id"))#
+
+ vedio_call_name_label.set_text(call_id)
+
+
+ def post_processor_after_initialization(self):
+ global vedio_call_screen,vedio_call_img,vedio_call_name_label,vedio_call_answer,vedio_call_hangup
+ self.call_timer.start(6000, 1, self.call_timer_cb)
+ self.timeout = 0
+ self.call_timer1.start(1*1000, 1, self.get_video_state)
+ self.aud.play(1, 1, 'U:/static/R_CALL_mp3.mp3') #播放来电铃声
+
+ def call_timer_cb(self,e):
+ self.aud.play(1, 1, 'U:/static/R_CALL_mp3.mp3') #播放来电铃声
+
+ def get_video_state(self,e):
+ call_state = jrtc.get_state()
+ print("vedio_incall",call_state)
+ self.timeout+=1
+ if self.timeout >= 1*60:
+ self.timeout = 0
+ self.call_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("set_UI_high_priority", 0)
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+ def answer(self,e):
+ self.call_timer.stop()
+ self.aud.stop()
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("open_vedio_infor")
+ EventMesh.publish("load_screen", {"screen": "vedio_answer"})
+
+ def Close(self):
+ self.call_timer.stop()
+ self.call_timer1.stop()
+ self.aud.stop()
+
+ def hangup(self,e):
+ EventMesh.publish("set_UI_high_priority", 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"))#
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type])
+
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
-# class cameraVdieoScreen(Screen):#视频通话
-# #
-# NAME = "camera_video"
+ def btn1_release(self):
+ 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
+
+ def done_left_to_right(self):
+ pass
+
+ def done_right_to_left(self):
+ pass
+
+ def done_bottom_to_top(self):
+ pass
+
+ def done_top_to_bottom(self):
+ pass
-# def __init__(self):
-# super().__init__()
-# self.meta = camera_video_screen
-# self.preview1 = None
-# self.timer = osTimer()
-# self.open_preview1 = 0
-
-# def initialization(self):
-# global camera_video_screen,camera_video_label_screen
-# print("Lowpower_screen")
-# if camera_video_screen == None:
-# camera_video_screen = lv.obj()
-# print("Lowpower_screen")
-# camera_video_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
-
-# camera_video_label_screen = lv.label(camera_video_screen)
-# camera_video_label_screen.set_pos(0, 40)
-# camera_video_label_screen.set_size(128, 40)
-# camera_video_label_screen.set_text(" ")
-# camera_video_label_screen.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-# camera_video_label_screen.set_long_mode(lv.label.LONG.WRAP)
-# camera_video_label_screen.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
-
-# # self.meta = camera_video_screen
-
-# if EventMesh.publish(constants.EVENT.GET_CONNECT) != 0:#未联网提示关机
-# self.preview1 = camera.camPreview(0,240,320,128,128,1)
-# state = self.preview1.open()
-# self.timer.start(1*1000,1,self.fun)
-# camera_video_label_screen.set_text(" ")
-# self.open_preview1 = 1
-# print("init preview!!!!!!!!")
-# else:
-# self.open_preview1 = 0
-# camera_video_label_screen.set_text("无SIM卡或无网络")
-
-# def fun(self,*argc):
-# pass
-# # EventMesh.publish("system_sleep_rest")#防止黑屏
-
-
-# def Close(self):
-# self.timer.stop()
-# if self.open_preview1 == 1:
-# self.timer.stop()
-# self.preview1.close()
-
-# def done_click(self):
-# pass
-
-
-
-
-# def done_return(self):
-# EventMesh.publish("load_screen", {"screen": "main_menu"})
+ def done_return(self):
+ pass
+
+video_outcall_screen = None
+video_outcall_img = None
+video_outcall_name = None
+video_outcall_hangup_imgbtn = None
+video_outcall_call = None
+class videoOutCallScreen(Screen):#正在拨号中...未打出
+ NAME = "video_outcall"
+
+ def __init__(self):
+ super().__init__()
+ self.meta = None
+ self.meta_type = "popup"
+ self.timer1 = osTimer()
+ self.time_count = 0
+ self.timer2 = osTimer()
+ self.CALL_LOG_MAX = CALL_LOG_MAX
+ self.read_call_log = {}
+
+ def initialization(self):
+ EventMesh.publish("set_UI_high_priority", 1)
+ self.time_count = 0
+ global video_outcall_screen,video_outcall_img,video_outcall_name ,video_outcall_call,video_outcall_hangup_imgbtn
+ if video_outcall_screen == None:
+ video_outcall_screen = lv.obj()
+ print("video_outcall_screen")
+ video_outcall_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ # img_test = lv.img(video_outcall_screen)
+ # ret = jrtc.set_img(img_test)
+ # img_test.align(lv.ALIGN.CENTER, 0, 0)
+ # img_test.set_size(128,128)
+
+ # dialing_popup_img = lv.img(video_outcall_screen)
+ # dialing_popup_img.set_pos(32, 5)
+ # dialing_popup_img.set_size(64, 64)
+ # dialing_popup_img.set_src("U:/static/IMAGE_NOTICE_CALL.png")
+ # dialing_popup_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_outcall_name = lv.label(video_outcall_screen)
+ video_outcall_name.set_pos(0, 15)
+ video_outcall_name.set_size(LCD_X, 20)
+ video_outcall_name.set_text(" ")
+ video_outcall_name.set_long_mode(lv.label.LONG.DOT)
+ video_outcall_name.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ video_outcall_name.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_outcall_call = lv.label(video_outcall_screen)
+ video_outcall_call.set_pos(0, 50)
+ video_outcall_call.set_size(LCD_X, 40)
+ video_outcall_call.set_text("正在等待对方接听中...")
+ video_outcall_call.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ video_outcall_call.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ video_outcall_hangup_imgbtn = lv.img(video_outcall_screen)
+ video_outcall_hangup_imgbtn.set_size(32, 32)
+ video_outcall_hangup_imgbtn.set_src("U:/static/hang_up.png")
+ video_outcall_hangup_imgbtn.add_flag(lv.obj.FLAG.CLICKABLE)
+ video_outcall_hangup_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT)
+ video_outcall_hangup_imgbtn.set_pos(48, 90)
+ video_outcall_hangup_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)),
+ lv.EVENT.CLICKED, None)
+ self.meta = video_outcall_screen
+ if video_outcall_name != None:
+ video_outcall_name.set_text(self.meta_info)#名称
+ self.time_count = 0
+ self.timer1.start(1*1000,1,self.fun_cb)
+ # video_outcall_call.clear_flag(lv.obj.FLAG.HIDDEN)
+ # video_outcall_name.clear_flag(lv.obj.FLAG.HIDDEN)
+
+ def post_processor_after_initialization(self):
+ pass
+
+ def hangup(self,e):
+ 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("video_outcall",call_state)
+ EventMesh.publish("system_sleep_rest")#防止黑屏
+ if call_state == 5:
+ self.timer1.stop()
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("load_screen", {"screen": "vedioing"})
+ self.time_count+=1
+ if self.time_count >= 1*60:
+ self.time_count = 0
+ self.timer1.stop()
+ EventMesh.publish("set_UI_high_priority", 0)
+ EventMesh.publish("load_screen", {"screen": "videolist"})
+
+ 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_none_label = None
+videolist_screen_list_screen = None
+class videolistScreen(Screen):
+ NAME = "videolist"
+
+ def __init__(self):
+ super().__init__()
+ # -------------------------------------------popup_menu screen----------------------------------------------------------
+ self.meta = None
+ self.videobook = {}
+ self.count = 0
+ self.phone_num_count = 0
+ self.phone_num = {}
+ self.name = []
+ self.check_json = 0
+ self.timer = osTimer()
+ self.videolist_detail_list = None
+ EventMesh.subscribe("video_updata_list_show", self.video_updata_list_show)
+ self.MXA_phone_num = 50 #最大显示号码个数
+ self.videolist_detail_listt_dict = []
+ self.calling_btn = []
+ self.is_sliding = 0
+
+ def post_processor_before_initialization(self):
+ data = EventMesh.publish("get_videobook_list")
+ if data != None:
+ self.check_json = data[0]
+ self.videobook = data[1]
+ self.count = 0
+
+ def initialization(self):
+ self.is_sliding = 0
+ global videolist_screen,videolist_cont,videolist_top_title,videolist_none_label,videolist_screen_list_screen
+ if videolist_screen == None:
+ videolist_screen = lv.obj()
+ print("videolist_screen")
+ videolist_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+ videolist_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ videolist_screen_list_screen = lv.obj(videolist_screen)
+ videolist_screen_list_screen.set_pos(0, 30)
+ videolist_screen_list_screen.set_size(LCD_X, LCD_Y-30)
+ videolist_screen_list_screen.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+ videolist_screen_list_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+ videolist_top_title = lv.label(videolist_screen)
+ videolist_top_title.set_pos(0, 5)
+ videolist_top_title.set_size(LCD_X, 20)
+ videolist_top_title.set_text("视频通话账号")
+ videolist_top_title.set_long_mode(lv.label.LONG.WRAP)
+ videolist_top_title.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0)
+ videolist_top_title.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT)
-# def btn1_release(self):
-# EventMesh.publish("load_screen", {"screen": "main_menu"})
-# pass
+ videolist_none_label = lv.label(videolist_screen_list_screen)
+ videolist_none_label.set_pos(0, 20)
+ videolist_none_label.set_size(LCD_X, 40)
+ 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)
+
+ self.videolist_detail_list = lv.obj(videolist_screen_list_screen)
+ self.videolist_detail_list.set_pos(0, 0)
+ self.videolist_detail_list.set_size(LCD_X, LCD_Y-30+1)
+ self.videolist_detail_list.set_scrollbar_mode(lv.SCROLLBAR_MODE.OFF)
+ self.videolist_detail_list.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT)
+ for i in range(self.MXA_phone_num):
+ contact_btn = lv.btn(self.videolist_detail_list)
+ contact_btn.add_flag(lv.obj.FLAG.CLICKABLE)
+ contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling_cb(e)),
+ lv.EVENT.CLICKED, None)
+ contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling_cb(e)), lv.EVENT.PRESSING, None)
+ contact_btn.add_flag(lv.obj.FLAG.HIDDEN)
+ # contact_btn.add_style(style_press_btn, lv.PART.MAIN | lv.STATE.PRESSED)
+
+ contact_btn_label_1 = lv.label(contact_btn)
+ contact_btn_label_1.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+ contact_btn_label_2 = lv.label(contact_btn)
+ # contact_btn_label_2.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+ contact_btn_label_3 = lv.label(contact_btn)
+ contact_btn_label_3.add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+ self.videolist_detail_listt_dict.append({"contact_btn":contact_btn,"contact_btn_label_1":contact_btn_label_1,"contact_btn_label_2":contact_btn_label_2,"contact_btn_label_3":contact_btn_label_3})
+ self.meta = videolist_screen
+ self.count = 0
+ self.btn_create_list_show(0)
+
+ def video_updata_list_show(self,event,msg):
+ self.post_processor_before_initialization()
+ self.timer.start(1 * 1000, 0, self.OutTime_s)
+
+ def OutTime_s(self,e):
+ self.btn_create_list_show(1)
+
+ def btn_create_list_show(self,state):
+ EventMesh.publish("publish_message_event_ui",{"func":self.btn_create_list_show_screen,"data":state})
+
+ def btn_create_list_show_screen(self,state):
+ global videolist_screen,videolist_cont,videolist_top_title,videolist_none_label,videolist_screen_list_screen
+ print("btn_create_list_show_screen!!!!!!!!!!!")
+ 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)#隐藏空文本
+ else:
+ #读取json文件中的键作为label文本;
+ if self.check_json == True and len(self.videobook) != 0:
+ self.videolist_detail_list.clear_flag(lv.obj.FLAG.HIDDEN)
+ videolist_none_label.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
+ j =0
+ print("self.videobook sorted :{} len(self.videobook) :{}".format(sorted(self.videobook.keys()),len(self.videobook)))
+ phonebook_keys = sorted(self.videobook.keys())
+
+
+ if len(self.videobook) > self.MXA_phone_num:
+ j = len(self.videobook) - self.MXA_phone_num
+ for i in range(self.MXA_phone_num): #字典 key value
+ if(j >= len(self.videobook)):
+ self.videolist_detail_listt_dict[i]["contact_btn"].add_flag(lv.obj.FLAG.HIDDEN)
+ continue
+ name = self.videobook[phonebook_keys[j]]
+ key_tmp = phonebook_keys[j]
+
+ print("name :{} key_tmp:{}".format(name,key_tmp))
+
+ #contact_btn = lv.btn(self.contact_detail_list)
+ self.videolist_detail_listt_dict[i]["contact_btn"].set_size(LCD_X,45)
+ self.videolist_detail_listt_dict[i]["contact_btn"].set_pos(0,47*i )
+ self.videolist_detail_listt_dict[i]["contact_btn"].set_style_bg_color(lv.color_make(0xff, 0xff, 0xff), lv.PART.MAIN | lv.STATE.DEFAULT)
+ # add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT)
+ # contact_btn.add_style(style_contact_btn_pressed, lv.PART.MAIN | lv.STATE.PRESSED)
+ # self.contact_detail_listt_dict[i]["contact_btn"].add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)),
+ # lv.EVENT.CLICKED, None)
+
+ #contact_btn_label_1 = lv.label(contact_btn)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_1"].set_pos(0, 0)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_1"].set_size(LCD_X-15, 16)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_1"].set_text(key_tmp[4:])
+ self.videolist_detail_listt_dict[i]["contact_btn_label_1"].set_long_mode(lv.label.LONG.CLIP)
+ # self.videolist_detail_listt_dict[i]["contact_btn_label_1"].set_long_mode(lv.label.LONG.DOT)
+ # self.videolist_detail_listt_dict[i]["contact_btn_label_1"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+ #contact_btn_label_2 = lv.label(contact_btn)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_2"].set_pos(0, 0)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_2"].set_size(0, 0)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_2"].set_text(key_tmp[4:])
+
+
+ #contact_btn_label_3 = lv.label(contact_btn)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_3"].set_pos(0, 20)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_3"].set_size(LCD_X-15, 16)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_3"].set_text(name)
+ self.videolist_detail_listt_dict[i]["contact_btn_label_3"].set_long_mode(lv.label.LONG.CLIP)
+ # self.videolist_detail_listt_dict[i]["contact_btn_label_3"].add_style(style_font_youyuan_20_black, lv.PART.MAIN | lv.STATE.DEFAULT)
+
+
+ self.videolist_detail_listt_dict[i]["contact_btn"].clear_flag(lv.obj.FLAG.HIDDEN)
+ #self.contact_detail_listt_dict[i]["contact_btn"].scroll_to_view(lv.ANIM.OFF)
+ j+=1
+
+ if state == 1:
+ self.videolist_detail_listt_dict[i]["contact_btn"].scroll_to_view(lv.ANIM.OFF)
+
+ else:
+ if videolist_screen_list_screen != None:
+ videolist_none_label.clear_flag(lv.obj.FLAG.HIDDEN) #显示空文本
+ if self.videolist_detail_list != None:
+ self.videolist_detail_list.add_flag(lv.obj.FLAG.HIDDEN)#隐藏空文本
+
+
+ def calling_cb(self,e):
+ code = e.get_code()
+ if code == lv.EVENT.PRESSING:
+ #print("PRESSING")
+ self.is_sliding += 1
+
+ elif code == lv.EVENT.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 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})
+ else:
+ EventMesh.publish("load_screen", {"screen": "no_sim_popup_screen"})
+
+ self.is_sliding =0
+
+
+ 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})
+
+
+ def done_return(self):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+ def btn1_release(self):
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+ def btn8_press(self):
+ EventMesh.publish("watch_top_show")
+ EventMesh.publish("load_screen", {"screen": "main_menu"})
+
+
+
+
+
+
-# def btn8_press(self):
-# EventMesh.publish("load_screen", {"screen": "main_menu"})
-# pass
style_screen_calendar_1_extra_header_main_default = lv.style_t()
style_screen_calendar_1_extra_header_main_default.init()