From: dxy15521469561 <1731678236@qq.com> Date: Sat, 16 Dec 2023 09:47:28 +0000 (+0800) Subject: K01视频通话测试 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=747574d306e0cbe54a95bb8dbcd05b537432fb24;p=mirrors%2FASR1603_G5.git K01视频通话测试 --- diff --git a/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a b/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a index 3a835ed2..cb427729 100644 Binary files a/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a and b/2.sdk/Helios_SDK/components/juphoon/lib/libjrtc.a differ diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_capture.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_capture.c index 71733291..2ea8ead0 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_capture.c +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_capture.c @@ -47,7 +47,9 @@ WHEN WHO WHAT,WHERE,WHY #include "jpeglib.h" #include "jpeg_operation.h" +#if MICROPY_QPY_CAMERA_LVGL_PREVIEW #include "lvgl.h" +#endif #include "helios_debug.h" #define CAPTURE_LOG(msg, ...) custom_log("capture", msg, ##__VA_ARGS__) @@ -76,6 +78,7 @@ typedef struct _preview_obj_t { static preview_obj_t *capture_obj = NULL; static Helios_CAMConfig camconfig = {0}; +static int camera_angle = CAM_SW_ROTATE_90; // 摄像头旋转角度 #define CHECK_CMAERA_IS_OPEN (capture_obj->is_open ? TRUE:FALSE) @@ -223,6 +226,7 @@ uint16_t rgb_buffer[128*128] = {0}; #if MICROPY_QPY_CAMERA_LVGL_PREVIEW lv_obj_t *camera_img = NULL; int open_capture = 0; +lv_img_dsc_t camera_img_dsc; #endif char CAM_rotate = 1; @@ -233,7 +237,7 @@ STATIC mp_obj_t camera_set_rotate(mp_obj_t self_in,mp_obj_t val1) return mp_obj_new_int(1); } STATIC MP_DEFINE_CONST_FUN_OBJ_2(camera_set_rotate_obj, camera_set_rotate); -lv_img_dsc_t camera_img_dsc; + void rgb565_decode_handle(void * argv) { uint8_t *buff_addr = NULL; int ret = -1; @@ -354,6 +358,17 @@ STATIC mp_obj_t remove_img(mp_obj_t self_in) { } STATIC MP_DEFINE_CONST_FUN_OBJ_1(remove_img_obj, remove_img); #endif + +STATIC mp_obj_t mp_capture_set_cam_angle(mp_obj_t self_in, mp_obj_t angle_j) { + int cam_angle = mp_obj_get_int(angle_j); + if ((cam_angleCAM_SW_ROTATE_270)) { + mp_raise_ValueError("Camera rotation Angle is out of range!!!"); + } + + camera_angle = mp_obj_get_int(angle_j); + return mp_obj_new_int(1); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_2(mp_capture_set_cam_angle_obj, mp_capture_set_cam_angle); /****************************end add********************************/ STATIC mp_obj_t camera_open(mp_obj_t self_in) @@ -371,7 +386,6 @@ STATIC mp_obj_t camera_open(mp_obj_t self_in) self->is_open = TRUE; } -#if MICROPY_QPY_CAMERA_LVGL_PREVIEW Helios_ThreadAttr attr = {0}; if (get_picture_q == 0) { get_picture_q = Helios_MsgQ_Create(1, sizeof(uint8_t)); @@ -389,7 +403,9 @@ STATIC mp_obj_t camera_open(mp_obj_t self_in) mp_raise_ValueError("create interrupt handle task failed\n"); } } -#endif +#if MICROPY_QPY_CAMERA_LVGL_PREVIEW + Helios_camera_scandecode_start(); +#endif return mp_obj_new_int(error); } STATIC MP_DEFINE_CONST_FUN_OBJ_1(camera_capture_open_obj, camera_open); @@ -503,6 +519,11 @@ STATIC const mp_rom_map_elem_t Preview_locals_dict_table[] = { {MP_ROM_QSTR(MP_QSTR_set_img), MP_ROM_PTR(&set_img_obj)}, {MP_ROM_QSTR(MP_QSTR_remove_img), MP_ROM_PTR(&remove_img_obj)}, #endif + {MP_ROM_QSTR(MP_QSTR_set_cam_angle), MP_ROM_PTR(&mp_capture_set_cam_angle_obj)}, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_0), MP_ROM_INT(CAM_SW_ROTATE_0) }, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_90), MP_ROM_INT(CAM_SW_ROTATE_90) }, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_180), MP_ROM_INT(CAM_SW_ROTATE_180) }, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_270), MP_ROM_INT(CAM_SW_ROTATE_270) }, }; STATIC MP_DEFINE_CONST_DICT(camCapture_locals_dict, Preview_locals_dict_table); diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_preview.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_preview.c index 0fb9096b..713c91cc 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_preview.c +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_preview.c @@ -43,7 +43,6 @@ WHEN WHO WHAT,WHERE,WHY #if MICROPY_QPY_CAMERA_CAMPREVIEW #include "helios_camera.h" -#include "lvgl.h" #include "jpeg_operation.h" #include "helios_debug.h" diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_scandecode.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_scandecode.c index ed962971..2e7dffa6 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_scandecode.c +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/camera_scandecode.c @@ -56,7 +56,7 @@ WHEN WHO WHAT,WHERE,WHY #endif #ifdef CONFIG_DECODE_QINGYA -#if !defined(PLAT_ASR) && !defined(PLAT_ASR_1606) +#if !defined(PLAT_ASR) && !defined(PLAT_ASR_1606) || defined(PLAT_ASR_1609) || defined(PLAT_ASR_1602) #include "ql_api_decoder.h" #endif #endif @@ -194,7 +194,7 @@ zbar_image_scanner_t *scanner = NULL; #endif #ifdef CONFIG_DECODE_QINGYA -#if defined(PLAT_ASR) || defined(PLAT_ASR_1606) +#if defined(PLAT_ASR) || defined(PLAT_ASR_1606) || defined(PLAT_ASR_1609) || defined(PLAT_ASR_1602) void camDecode(unsigned char* raw, int width, int height) { diff --git a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modVideoCall_juphoon.c b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modVideoCall_juphoon.c index d2026d82..19c0fe86 100644 --- a/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modVideoCall_juphoon.c +++ b/2.sdk/Helios_SDK/services/microPython/ports/quectel/core/source/modVideoCall_juphoon.c @@ -50,6 +50,13 @@ static Helios_LCDInitStruct init_data = {0}; #define YEND 0xD3 #define PWM_FREQ 10000 #define PWM_DUTY 0.2 + + +#define JRTC_ROTATE_0 (0) +#define JRTC_ROTATE_90 (90) +#define JRTC_ROTATE_180 (180) +#define JRTC_ROTATE_270 (270) + /** 通话错误值 */ struct jrtc_t @@ -403,7 +410,15 @@ STATIC mp_obj_t mp_jrtc_get_state(void) } STATIC MP_DEFINE_CONST_FUN_OBJ_0(mp_jrtc_get_state_obj, mp_jrtc_get_state); - +STATIC mp_obj_t mp_jrtc_set_cam_angle(mp_obj_t angle_j) { + int cam_angle = mp_obj_get_int(angle_j); + if ((cam_angleJRTC_ROTATE_270)) { + mp_raise_ValueError("Camera rotation Angle is out of range!!!"); + } + _jrtc_cam_angle = cam_angle; + return mp_obj_new_int(1); +} +STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_jrtc_set_cam_angle_obj, mp_jrtc_set_cam_angle); /* 定义的modjrtc本地字典 */ STATIC const mp_rom_map_elem_t jrtc_globals_table[] = { @@ -418,6 +433,11 @@ STATIC const mp_rom_map_elem_t jrtc_globals_table[] = { {MP_ROM_QSTR(MP_QSTR_remove_img), MP_ROM_PTR(&remove_img_obj)}, {MP_ROM_QSTR(MP_QSTR_get_state), MP_ROM_PTR(&mp_jrtc_get_state_obj)}, {MP_ROM_QSTR(MP_QSTR_set_rotate), MP_ROM_PTR(&mp_jrtc_set_rotate_obj)}, + {MP_ROM_QSTR(MP_QSTR_set_cam_angle), MP_ROM_PTR(&mp_jrtc_set_cam_angle_obj)}, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_0), MP_ROM_INT(JRTC_ROTATE_0) }, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_90), MP_ROM_INT(JRTC_ROTATE_90) }, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_180), MP_ROM_INT(JRTC_ROTATE_180) }, + { MP_ROM_QSTR(MP_QSTR_CAM_ROTATE_270), MP_ROM_INT(JRTC_ROTATE_270) }, }; /* 把modjrtc_globals_table注册到 mp_module_modjrtc_globals里面去 */ diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py index 88b2e6db..5d7ea8d8 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/constants.py @@ -131,6 +131,12 @@ class PROTOCOL: REMIND_CH_REST_SEND = "REMIND_CH_REST_SEND" REMIND_CH_REST_RECV = "REMIND_CH_REST_RECV" + + SLEEP_DATA_SEND = "SleepReport_SEND" + SLEEP_DATA_RECV = "SleepReport_RECV" + + SLEEPTIME_SEND = "SLEEPTIME_SEND" + SLEEPTIME_RECV = "SLEEPTIME_RECV" class EVENT: diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py index 5e2b1e89..f326bb5f 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/main_init.py @@ -193,6 +193,8 @@ def main_init(): pcr.add_support(protocol.REMIND_CH_SLEEP_ProtoCol()) pcr.add_support(protocol.REMIND_CH_HOME_ProtoCol()) pcr.add_support(protocol.REMIND_CH_REST_ProtoCol()) + pcr.add_support(protocol.SLEEP_DATA_ProtoCol()) + pcr.add_support(protocol.SLEEPTIME_ProtoCol()) sm = protocol.SockManager() sm.add_support_resolver(pcr) diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py index 4b36dd9a..bdb0178b 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/protocol.py @@ -23,7 +23,7 @@ import usys def server_init(server_type = None): - #服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为 + #服务器选择1,防走丢,2大锤,3三基同创,4童信,5云米,6荣为 8:ds未知 dey.hinwatch. com:9968 9:183.62.239.121:31869 if server_type == None: server_type = 1 #EventMesh.debug_log("server_init:server_type:{}".format(server_type)) @@ -67,6 +67,12 @@ def server_init(server_type = None): elif server_type == 99: d_server_addr = "lab.xcloudtech.com" d_server_port = 9000 + elif server_type == 8: + d_server_addr = "dev.hxinwatch.com" + d_server_port = 9968 + elif server_type == 9: + d_server_addr = "183.62.239.121" + d_server_port = 31869 return [d_server_addr,d_server_port,d_md5_key,d_PID] from queue import Queue @@ -492,7 +498,8 @@ class PING_ProtoCol(ProtoCol): class KA_ProtoCol(ProtoCol): """心跳""" TYPE = "KA" - + count = 0 + roll_count = 0 def send(self, event, msg): #"{:04d}-{:02d}-{:02d}".format(*utime.localtime()[0:3]) #[XT*YYYYYYYYYYYYYYY*LEN*KA,日期,步数,翻滚次数,电量百分数,车载里程数(km)] 实例:[XT*334588000000156*0014*KA,120414,50,100,100,100.12] @@ -517,9 +524,39 @@ class KA_ProtoCol(ProtoCol): old_step = step # step = EventMesh.publish(constants.EVENT.GET_STEP)[0] # 电池电量百分比 + bat_tmp = EventMesh.publish("screen_get_battery") + sleep_time = EventMesh.publish("get_storage_config","sleep_time") + if sleep_time != None: + if len(sleep_time) != 0: + hour = utime.localtime()[3] + min = utime.localtime()[4] + cur_time = hour*60+min + start_hour = int(sleep_time["start_hour"]) + start_min = int(sleep_time["start_min"]) + start_total = start_hour*60+start_min + + end_hour = int(sleep_time["end_hour"]) + end_min = int(sleep_time["end_min"]) + end_total = end_hour*60+end_min + # EventMesh.debug_log("ka roll_:",hour,min,cur_time,start_total,end_total) + if cur_time >= start_total and cur_time <= end_total: + self.roll_count = int(hour) + if self.roll_count == 0: + self.roll_count+=1 + else: + self.roll_count = 0 + else: + self.roll_count = 0 + else: + self.roll_count = 0 + + + # EventMesh.debug_log("ka roll_count:",roll_count) + + battery_caption = bat_tmp[1] - send_data = "KA,%s,%d,%d,%d"%(date,step,0,battery_caption) + send_data = "KA,%s,%d,%d,%d"%(date,step,self.roll_count,battery_caption) send_len = len(send_data) send_data = self.PID+"*%s*%04X*%s"%(self.imei,send_len,send_data) @@ -2597,8 +2634,87 @@ class WLKEY_ProtoCol(ProtoCol):#白名单开关 EventMesh.publish(constants.PROTOCOL.WLKEY_SEND) +# 终端发送: +# [XT*YYYYYYYYYYYYYYY*LEN*SLEEP_DATA,清醒时间(分钟),浅睡时间(分钟),深睡时间(分钟),日期(年月日)] +# 实例: [XT*334588000000156*0004*SLEEP_DATA,120,240,360,20221008] +# 实例表示:上传睡眠数据 +#[XT*334588000000156*0010*SleepReport,2022-02-09,80,2,532,164,164,25,25,25,25,21:45-0-164-155-3,22:00-1-162-155-0,22:15-2-162-155-0] +class SLEEP_DATA_ProtoCol(ProtoCol):#睡眠时间 + """ + 白名单开关 + [XT*YYYYYYYYYYYYYYY*LEN*WLKEY,ONOFF] ONOFF: 1:开启,0:关闭,2:30秒后自动接听。 + 实例:[XT*334588000000156*0008*WLKEY,1] + 终端回复 + [XT*YYYYYYYYYYYYYYY*LEN*WLKEY] + 实例:[XT*334588000000156*0006*WLKEY] + """ + TYPE = "SleepReport" + + def send(self, event, msg): + send_data = self.PID+"*%s*0000b*SleepReport"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s,%s]"%(str(MD5_SIGN),send_data,msg) + EventMesh.debug_log("SLEEP_DATA:send:%s"%(data)) + # 通过socket发送到服务器端 + EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) + + def recv(self, event, msg): + + EventMesh.debug_log("SLEEP_DATA!!!!!!!!!") + # msg = msg[1:-1] + # msg_tmp = msg.decode('ascii') + # msg_data = msg_tmp.split(',') + # EventMesh.debug_log("WLKEY_ProtoCol".format(msg_data[1])) + # EventMesh.publish("set_storage_config",["WLKEY",msg_data[1]]) + + + # EventMesh.publish(constants.PROTOCOL.WLKEY_SEND) + +class SLEEPTIME_ProtoCol(ProtoCol):#睡眠时间 + """ + 白名单开关 + [XT*YYYYYYYYYYYYYYY*LEN*WLKEY,ONOFF] ONOFF: 1:开启,0:关闭,2:30秒后自动接听。 + 实例:[XT*334588000000156*0008*WLKEY,1] + 终端回复 + [XT*YYYYYYYYYYYYYYY*LEN*WLKEY] + 实例:[XT*334588000000156*0006*WLKEY] + """ + TYPE = "SLEEPTIME" + + def send(self, event, msg): + send_data = self.PID+"*%s*00009*SLEEPTIME"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + EventMesh.debug_log("SLEEPTIME:send:%s"%(data)) + # 通过socket发送到服务器端 + EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) + + def recv(self, event, msg): + # 实例:[XT*5678901234*0014*SLEEPTIME,23:30-7:30] + EventMesh.debug_log("SLEEPTIME!!!!!!!!!") + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_data = msg_tmp.split(',')[1] + data = {} + if len(msg_data) == 0: + EventMesh.publish("set_storage_config",["sleep_time",data]) + pass + else: + sleep_start = msg_data.split("-")[0] + sleep_end = msg_data.split("-")[1] + start_hour = int(sleep_start.split(":")[0]) + start_min = int(sleep_start.split(":")[1]) + + end_hour = int(sleep_end.split(":")[0]) + end_min = int(sleep_end.split(":")[1]) + data = {"start_hour":start_hour,"start_min":start_min,"end_hour":end_hour,"end_min":end_min} + # EventMesh.debug_log("SLEEPTIME".format(data)) + EventMesh.publish("set_storage_config",["sleep_time",data]) + # sleep_time = EventMesh.publish("get_storage_config","sleep_time") + # EventMesh.debug_log("sleep_time:{}".format(sleep_time)) + EventMesh.publish(constants.PROTOCOL.SLEEPTIME_SEND) class ProtoColResolver(object): def __init__(self): diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py index 70399393..b27a855a 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/alarm.py @@ -363,7 +363,7 @@ class ClockManager(Abstract): alarm_list[idx]["enabled"] = False with open("/usr/static/storage_file/alarm_msg.json", 'w+',encoding='utf-8') as fd: ujson.dump(alarm_list,fd) - EventMesh.publish("set_rtc_alarm") + #设置下一个闹钟,定时开关机功能 if 0 : msg_data = EventMesh.publish("get_boot_off_time") @@ -553,11 +553,12 @@ class PopupAlarmScreen(Screen): def exit_alarm_page(self,*arges): EventMesh.publish("system_sleep_rest") self.alarm_count+=1 - if self.alarm_count > 5*60: + if self.alarm_count > 100: self.alarm_count = 0 self.aud.stop() self.timer.stop() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) return self.aud.play(1, 1, 'U:/static/R_VOLUME_SET_1.mp3') #播放声音 @@ -568,35 +569,43 @@ class PopupAlarmScreen(Screen): def done_left_to_right(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_right_to_left(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_bottom_to_top(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_top_to_bottom(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_return(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_click(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn8_press(self): self.close_timer() - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) #闹钟列表 style_common_pressed = lv.style_t() @@ -656,7 +665,7 @@ class ClkListScreen(Screen): _btn.add_style(alarm_main_default, lv.PART.MAIN|lv.STATE.DEFAULT) _btn.add_flag(lv.obj.FLAG.CLICKABLE) _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_alarm(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) _btn_label1 = lv.label(_btn) _btn_label2 = lv.label(_btn) @@ -669,43 +678,41 @@ class ClkListScreen(Screen): def initialization(self): EventMesh.publish("read_alarminjson") - EventMesh.publish("set_rtc_alarm") print("n闹钟列表初始化!!") self.alarm_draw_btn() def update_show_info(self,event,msg): - EventMesh.publish("read_alarminjson") + # EventMesh.publish("read_alarminjson") self.timer.start(1*1000,0,self.delay_update) def delay_update(self,*agrs): - EventMesh.publish("set_rtc_alarm") + self.alarm_draw_btn() def alarm_draw_btn(self): - global alarm_list - self.clock_list = alarm_list - IFEXIST = ql_fs.path_exists("/usr/static/storage_file/alarm_msg.json") - if IFEXIST == True: - if self.clock_list: + get_alarm_data = EventMesh.publish("get_storage_config","normal_alarm") + if get_alarm_data != None and get_alarm_data != []: + if len(get_alarm_data) != 0: no_add_alarm.add_flag(lv.obj.FLAG.HIDDEN) num = 0 count = 0 - clock_nums = len(self.clock_list)-2#3-2 = 1 0 + clock_nums = len(get_alarm_data)#3-2 = 1 0 # for i ,each in enumerate(self.clock_list): - for i in range(0,self.MXA_clk_num): + i=0 + for i in range(self.MXA_clk_num): if i >= clock_nums: self.contact_detail_listt_dict[i]["_btn"].add_flag(lv.obj.FLAG.HIDDEN) continue - each = self.clock_list[2+i] - num = each["idx"] + hour = get_alarm_data[i]["hour"] + min = get_alarm_data[i]["min"] + + # repeart = get_alarm_data[i]["repeart"] + + day = get_alarm_data[i]["day"] + - if count >= 3: - break - repeart = each["repeart"]# - if repeart >= 10: - continue print("alarm!!!!!!!!!!") #_btn = lv.btn(self.alarm_show_list) self.contact_detail_listt_dict[count]["_btn"].set_size(120,35) @@ -714,24 +721,23 @@ class ClkListScreen(Screen): #_btn_label1 = lv.label(_btn) self.contact_detail_listt_dict[count]["_btn_label1"].set_pos(20, 0) self.contact_detail_listt_dict[count]["_btn_label1"].set_size(0, 0) - self.contact_detail_listt_dict[count]["_btn_label1"].set_text(str(num)) + self.contact_detail_listt_dict[count]["_btn_label1"].set_text(" ") #_btn_label2 = lv.label(_btn) self.contact_detail_listt_dict[count]["_btn_label2"].set_pos(10, 0) self.contact_detail_listt_dict[count]["_btn_label2"].set_size(97, 20) - self.contact_detail_listt_dict[count]["_btn_label2"].set_text("%02d" % each["hour"] + ":"+"%02d" % each["minute"]) + self.contact_detail_listt_dict[count]["_btn_label2"].set_text("%02d" % hour + ":"+"%02d" %min) self.contact_detail_listt_dict[count]["_btn_label2"].set_style_text_align(lv.TEXT_ALIGN.LEFT, 0) - _new_list = sorted(each["days"]) - repeart = each["repeart"] + _new_list = sorted(day) _output = [self.weekdays_list[x] for x in _new_list] #_btn_label3 = lv.label(_btn) self.contact_detail_listt_dict[count]["_btn_label3"].set_pos(10, 18) self.contact_detail_listt_dict[count]["_btn_label3"].set_size(128-8, 20) - print("_new_list:{} repeart:{}".format(_new_list,repeart)) - if repeart == 1: + print("_new_list:{}".format(_new_list)) + if day == []: self.contact_detail_listt_dict[count]["_btn_label3"].set_text("一次") - elif repeart == 2: + elif len(day) > 6: self.contact_detail_listt_dict[count]["_btn_label3"].set_text("每天") else: self.contact_detail_listt_dict[count]["_btn_label3"].set_text(",".join(_output)) @@ -791,7 +797,8 @@ class ClkListScreen(Screen): # print("sw_event_cb ~~~") def done_return(self): - EventMesh.publish("load_screen", {"screen": "toolbox"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "toolbox"}) @@ -809,9 +816,9 @@ class ClkListScreen(Screen): # def __init__(self): # super().__init__() # self.meta = clk_edit_screen -# clk_edit_weekday.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_weekday(e)), lv.EVENT.CLICKED, None) -# clk_edit_time.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_time(e)), lv.EVENT.CLICKED, None) -# clk_delete_alarm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delete_alarm(e)), lv.EVENT.CLICKED, None) +# clk_edit_weekday.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_weekday(e)), lv.EVENT.SHORT_CLICKED, None) +# clk_edit_time.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_time(e)), lv.EVENT.SHORT_CLICKED, None) +# clk_delete_alarm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delete_alarm(e)), lv.EVENT.SHORT_CLICKED, None) # def initialization(self): # print("hahahahh",self.meta_info["idx"]) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appFactoryMode.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appFactoryMode.py index dd97ddbd..7d9f1134 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appFactoryMode.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appFactoryMode.py @@ -85,9 +85,9 @@ class FactoryModeScreen(Screen): def __init__(self): super().__init__() self.meta = factorymode_screen - factorymode_location.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeLocation"})), lv.EVENT.CLICKED, None) - factorymode_bat_test.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeBatTest"})), lv.EVENT.CLICKED, None) - factorymode_step.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModestep"})), lv.EVENT.CLICKED, None) + factorymode_location.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeLocation"})), lv.EVENT.SHORT_CLICKED, None) + factorymode_bat_test.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModeBatTest"})), lv.EVENT.SHORT_CLICKED, None) + factorymode_step.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "FactoryModestep"})), lv.EVENT.SHORT_CLICKED, None) def done_return(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py index 63837faa..086d71fd 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/appWechat.py @@ -223,7 +223,7 @@ class WechatScreen(Screen): wechat_obj.add_flag(lv.obj.FLAG.HIDDEN) wechat_btn.add_flag(lv.obj.FLAG.CLICKABLE) wechat_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.play_label_cb(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.wechat_list_dict.append({"num":i,"wechat_obj":wechat_obj,"wechat_btn":wechat_btn,"_btn_label1":_btn_label1,"_btn_label2":_btn_label2,"_btn_img":_btn_img}) EventMesh.subscribe("wechat_updata_list_show", self.wechat_updata_list_show) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py index 2eda62d6..47ca5992 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/calculator.py @@ -658,7 +658,8 @@ class calculatorScreen(Screen): def done_return(self): - EventMesh.publish("load_screen", {"screen": "toolbox"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py index 49a69271..657aa31a 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/constants.py @@ -146,6 +146,18 @@ class PROTOCOL: RTALK_SEND = "RTALK_SEND" RTALK_RECV = "RTALK_RECV" + JMEMBERS_SEND = "JMEMBERS_SEND" + JMEMBERS_RECV = "JMEMBERS_RECV" + + RINGING_SEND = "RINGING_SEND" + RINGING_RECV = "RINGING_RECV" + + HANGUP_SEND = "HANGUP_SEND" + HANGUP_RECV = "HANGUP_RECV" + + CALLCANCEL_SEND ="CALLCANCEL_SEND" + CALLCANCEL_RECV = "CALLCANCEL_RECV" + class EVENT: CHANNEL_SOCKET_SEND = "CHANNEL_SOCKET_SEND" START_LOCATION = "START_LOCATION" diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py index ae05827a..bb8465ce 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/main_init.py @@ -159,13 +159,15 @@ def main_init(): ui.add_screen(calculatorScreen()) ui.add_screen(_ui.cameraScreen()) ui.add_screen(_ui.cameraalbumScreen()) - ui.add_screen(_ui.cameraVdieoScreen()) ui.add_screen(_ui.albumPreviewScreen()) ui.add_screen(_ui.cameraFullScreen()) ui.add_screen(_ui.restore_confirmScreen()) ui.add_screen(_ui.down_Screen()) ui.add_screen(_ui.up_Screen()) ui.add_screen(_ui.videolistScreen()) + ui.add_screen(_ui.VdieoVoiceScreen()) + ui.add_screen(_ui.VoiceShowScreen()) + ui.add_screen(_ui.voiceInCallScreen()) from pp_main import allppPopupScreen,delOnePopupScreen,ppListScreen,noppPopupScreen,delppsucessPopupScreen,ppMainScreen,addfaileppPopupScreen,ppMainPopupScreen,addppPopupScreen,addedppPopupScreen,ownaddppPopupScreen ui.add_screen(ppMainScreen()) @@ -189,6 +191,8 @@ def main_init(): TEMP_ProtoCol,DLT_ProtoCol,WT_ProtoCol,UD_ProtoCol,REMIND_ProtoCol, CR_ProtoCol,KA_ProtoCol,FIND_ProtoCol,POWEROFF_ProtoCol,Time_ProtoCol,\ pp_ProtoCol,ppfriends_ProtoCol,revpp_ProtoCol,reqpp_ProtoCol,delpp_ProtoCol,ProtoColResolver,PHL_ProtoCol,MONITOR_ProtoCol,bootoff_ProtoCol,WDSTART_ProtoCol,LOWBAT_ProtoCol,sosHome_dial_ProtoCol,SockManager,NetManager + from protocol import CALLCANCEL_ProtoCol,HANGUP_ProtoCol,JMEMBERS_ProtoCol + import mgr as mgr print("init7:{}".format(utime.localtime())) @@ -293,10 +297,12 @@ def main_init(): pcr.add_support(JPREG_ProtoCol()) pcr.add_support(MEMBERS_ProtoCol()) + pcr.add_support(JMEMBERS_ProtoCol()) pcr.add_support(AGTALK_ProtoCol()) pcr.add_support(CALLING_ProtoCol()) pcr.add_support(RCALLING_ProtoCol()) pcr.add_support(RTALK_ProtoCol()) + # pcr.add_support(HANGUP_ProtoCol()) EventMesh.publish("load_screen", {"screen": "poweron"}) sm = SockManager() sm.add_support_resolver(pcr) @@ -316,7 +322,7 @@ def main_init(): if timeSecond != 0: next_alarm_time = utime.localtime(timeSecond) machine.RTC().datetime((next_alarm_time[0],next_alarm_time[1],next_alarm_time[2],next_alarm_time[6],next_alarm_time[3],next_alarm_time[4],next_alarm_time[5],0)) - EventMesh.publish("set_rtc_alarm") + diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py index d40ded7e..917430f8 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/mgr.py @@ -606,6 +606,10 @@ class DeviceInfoManager(Abstract): self.class_count = 0 self.old_temp_time = 0 self.sim_old_count = 0 + + self.normal_oldtotalmin = 0 + self.normal_flag = 0 + self.normal_count = 0 # #print("hsensor.open_heart:%d\r\n"%(self.hsensor.open_heart())) print("DeviceInfoManager:3") self.i2c0 = I2C(I2C.I2C0, I2C.FAST_MODE) @@ -1386,8 +1390,74 @@ class DeviceInfoManager(Abstract): else: # print("self.class_count",self.class_count) EventMesh.publish("get_class_in_time_page") + self.normal_alarm() + #普通闹钟 + def normal_alarm(self): + date_tmp = utime.localtime() + time_tmp = utime.mktime(date_tmp) + data = RTC().datetime() + hour = data[4] + min = data[5] + + week = int(data[3]) + + date1 = data[1] + date2 = data[2] + cur_total_min = int(hour)*60+int(min) + # EventMesh.debug_log("self.normal_oldtotalmin",self.normal_oldtotalmin,cur_total_min,self.alarm_flag) + if self.normal_oldtotalmin == 0: + self.normal_oldtotalmin = cur_total_min #549 + if self.normal_oldtotalmin != cur_total_min: #上次响过的闹钟分钟数不等于当前的分钟数据需要清零否则下一个不会响铃 + if self.normal_flag == 1: + self.normal_flag = 0 + self.normal_count = 0 + normal_alarm = [] + normal_alarm = EventMesh.publish("get_storage_config","normal_alarm") + # EventMesh.debug_log("sleep info2",sleep,cur_total_min) + if self.normal_flag == 1:#表示闹钟响过清除标志 + self.normal_count+=1 + if self.normal_count > 6: + self.normal_count = 0 + self.normal_flag = 0 + if normal_alarm != None: + if len(normal_alarm) != 0 and normal_alarm != []: + j = 0 + for i in range(len(normal_alarm)): + # EventMesh.debug_log("normal_alarm normal_alarm 33",normal_alarm,j) + normalalarm_hour = normal_alarm[j]["hour"] + normalalarm_min = normal_alarm[j]["min"] + normalalarm_day = normal_alarm[j]["day"] + normalalarm_enale = normal_alarm[j]["enable"] + normalalarm_totalmin = int(normalalarm_hour)*60+int(normalalarm_min) + # EventMesh.debug_log("wake alarm",normalalarm_hour,sleep_min,sleep_day,sleep_enale,sleep_totalmin,week) + if normalalarm_day == []:#单次闹钟只响一次 + if normalalarm_enale != 0: + if normalalarm_totalmin == cur_total_min:#14:00 + self.normal_count = 0 + self.normal_flag = 0 + normal_alarm[j]["enable"] = 0 + + # EventMesh.debug_log("wakeup wakeup1",sleep,j) + EventMesh.publish("set_storage_config",["normal_alarm",normal_alarm])#删除之后重新保存 + EventMesh.publish("push_update_alarm_show") + # new_data=EventMesh.publish("get_storage_config","normal_alarm") + # print("normal wakeup1",new_data,j) + EventMesh.publish("load_screen", {"screen": "popup_alarm"}) + break + else: + if normalalarm_enale != 0 and (week in normalalarm_day):#记录响过的时间分钟数 + if normalalarm_totalmin == cur_total_min and self.normal_flag == 0:#14:00 + self.normal_flag = 1 + self.normal_count = 0 + self.normal_oldtotalmin = normalalarm_totalmin + EventMesh.publish("load_screen", {"screen": "popup_alarm"}) + break + j+=1 + + + def get_sim_Status(self, event, msg): return sim.getStatus() @@ -1577,7 +1647,8 @@ class DeviceInfoManager(Abstract): def get_imei(self, topic, msg): if not self.imei: self.imei = modem.getDevImei() - self.imei = "876226002021444" + # self.imei = "876226002021444" + # self.imei = "860132060129194" return self.imei def get_cid(self, topic, msg): @@ -2763,9 +2834,9 @@ class getStorageDataManager(Abstract):#获取内存数据 # print("set_storage_key_data2:{}".format(self.config_data[msg[0]])) EventMesh.publish("publish_message_event_ui",{"func":self.set_storage_save,"data":0}) def set_storage_save(self, data): - print("set_storage_key_data2:{}".format(self.config_data)) - with open("/usr/static/storage_file/config.json",'w+',encoding="utf-8") as fd: - ujson.dump(self.config_data,fd) + # print("set_storage_key_data2:{}".format(self.config_data)) + with open("/usr/static/storage_file/config.json",'w+',encoding="utf-8") as fd: + ujson.dump(self.config_data,fd) def get_storage_data(self, event, msg): # print("get_storage_data:{}".format(self.config_data)) return self.config_data @@ -2773,7 +2844,7 @@ class getStorageDataManager(Abstract):#获取内存数据 # print("get_storage_key_data1:{}".format(msg)) b = msg in self.config_data.keys() if b == True: - print("get_storage_key_data2:{}".format(self.config_data[msg])) + # print("get_storage_key_data2:{}".format(self.config_data[msg])) return self.config_data[msg] else : return None @@ -2999,10 +3070,13 @@ class testSmsSetIPManager(Abstract):# def __init__(self): self.timer = osTimer() # self.newip = "test.iot.socket.thisiot.com" + # self.newip = "device.miwitracker.com" + # self.newcom = 8505 self.newip = "api.xcloudtech.com" + self.newcom = 9000 # "8.134.110.49"#默认大锤服务器 在大锤服务器更改要连接新的服务器地址 # self.newcom = 9999 - self.newcom = 9000 + # 31379 # self.new_key = "3JyCjsw4ryXKzjzudayY" @@ -3010,6 +3084,10 @@ class testSmsSetIPManager(Abstract):# self.new_key = "bZld0ALsZTt15tKEZhOlLPgbsO75BLTP" self.new_pid = "SZKW" + + # self.new_key = "" + # self.new_pid = "3G" + self.server_sate = 0 # d_server_addr = "api.xcloudtech.com" @@ -3315,121 +3393,36 @@ class setclassTimeManager(Abstract):#设置上课禁用时间 hour = data[4]#当前小时 min = data[5]#当前分钟 - cur_week = data[3]#星期几 - - - + cur_week = int(data[3])#星期几 cur_hour = hour cur_min = min - cur_total_min = cur_hour*60+cur_min + #print("cur_total_min",cur_total_min) - start_time1 = 0 - end_time1 = 0 - week1 = [] - enable1 = 0 - - start_time2 = 0 - end_time2 = 0 - week2 = [] - enable2 = 0 - - start_time3 = 0 - end_time3 = 0 - week3 = [] - enable3 = 0 - - start_time4 = 0 - end_time4 = 0 - week4 = [] - enable4 = 0 - self.class_state = 0 - # {'1': {'enabled': 1, 'end_hour': '17:00', 'start_hour': '10:00', 'week': [1, 2, 3, 4, 5]}, - # '0': {'enabled': 1, 'end_hour': '17:00', 'start_hour': '08:00', 'week': [1, 2, 3, 4, 5]}, - # '3': {'enabled': 1, 'end_hour': '17:00', 'start_hour': '08:00', 'week': [1, 2, 3, 4, 5]}, - # '2': {'enabled': 1, 'end_hour': '17:00', 'start_hour': '08:00', 'week': [1, 2, 3, 4, 5]}} - # print("self.class_buf time:",self.class_buf) - if len(self.class_buf) != 0: - #19:56; 9:16 - data1 = self.class_buf["0"] - start_time1 = int(data1["start_time"].split(":")[0])*60+int(data1["start_time"].split(":")[1]) - end_time1 = int(data1["end_time"].split(":")[0])*60 + int(data1["end_time"].split(":")[1]) - - week1 = data1["week"] - enable1 = data1["enable"] - - data2 = self.class_buf["1"] - start_time2 = int(data2["start_time"].split(":")[0])*60 + int(data2["start_time"].split(":")[1]) - end_time2 = int(data2["end_time"].split(":")[0])*60 + int(data2["end_time"].split(":")[1]) - - week2 = data2["week"] - enable2 = data2["enable"] - - data3 = self.class_buf["2"] - start_time3 = int(data3["start_time"].split(":")[0])*60 + int(data3["start_time"].split(":")[1]) - end_time3= int(data3["end_time"].split(":")[0])*60 + int(data3["end_time"].split(":")[1]) - - week3 = data3["week"] - enable3 = data3["enable"] - - data4 = self.class_buf["3"] - start_time4= int(data4["start_time"].split(":")[0])*60 + int(data4["start_time"].split(":")[1]) - end_time4 = int(data4["end_time"].split(":")[0])*60 + int(data4["end_time"].split(":")[1]) - - week4 = data4["week"] - enable4 = data4["enable"] - week1_state = 0 - week2_state = 0 - week3_state = 0 - week4_state = 0 - print("week4 ",cur_week,week1,week2,week3,week4,enable1,enable2,enable3,enable4) - # print("end_time1 ",start_time1,end_time1,start_time2,end_time2,start_time3,end_time3,start_time4,end_time4) - for i in range(0,7): - if ((cur_week in week1) and enable1 == 1): - week1_state = 1 - if ((cur_week in week2) and enable2 == 1): - week2_state = 1 - - if ((cur_week in week3) and enable3 == 1): - week3_state = 1 - - if ((cur_week in week4) and enable4 == 1): - week4_state = 1 - # print("week4_state ",cur_week,week1_state,week2_state,week3_state,week4_state,cur_week) - if week1 != [] or week2 != [] or week3 != [] or week4 != []: - if ((cur_week in week1) and enable1 == 1 and week1 != []) or ((cur_week in week2) and enable2 == 1 and week2 != []) or\ - ((cur_week in week3) and enable3 == 1 and week3 != []) or ((cur_week in week4) and enable4 == 1 and week4 != []): - if enable1 == 1 or enable2 == 1 or enable3 == 1 or enable4 == 1: - if (end_time1 > start_time1):#结束时间大于开始时间否则不通过 - if (cur_total_min <= end_time1 and cur_total_min >= start_time1 and enable1 == 1 and week1_state == 1):#当前时间大于开始小于结束时间而且星期在内,且使能1了 - self.class_state = 1 - print("class_in1") - break - if (end_time2 > start_time2):#结束时间大于开始时间否则不通过 - if (cur_total_min <= end_time2 and cur_total_min >= start_time2 and enable2 == 1 and week2_state == 1):#当前时间大于开始小于结束时间而且星期在内,且使能1了 - self.class_state = 1 - print("class_in2") - break - if (end_time3 > start_time3):#结束时间大于开始时间否则不通过 - if (cur_total_min <= end_time3 and cur_total_min >= start_time3 and enable3 == 1 and week3_state == 1):#当前时间大于开始小于结束时间而且星期在内,且使能1了 - self.class_state = 1 - print("class_in3") - break - if (end_time4 > start_time4):#结束时间大于开始时间否则不通过 - if (cur_total_min <= end_time4 and cur_total_min >= start_time4 and enable4 == 1 and week4_state == 1):#当前时间大于开始小于结束时间而且星期在内,且使能1了 - self.class_state = 1 - print("class_in4") - break - - - # if (end_time1 > start_time1 and enable1 == 1 and week1_state == 1) or (end_time2 > start_time2 and enable2 == 1 and week2_state == 1) or\ - # (end_time3 > start_time3 and enable3 == 1 and week3_state == 1) or (end_time4 > start_time4 and enable4 == 1 and week4_state == 1): - # if (cur_total_min <= end_time1 and cur_total_min >= start_time1 and enable1 == 1 and week1_state == 1) or (cur_total_min <= end_time2 and cur_total_min >= start_time2 and enable2 == 1 and week2_state == 1) or\ - # (cur_total_min <= end_time3 and cur_total_min >= start_time3 and enable3 == 1 and week3_state == 1) or (cur_total_min <= end_time4 and cur_total_min >= start_time4 and enable4 == 1 and week4_state == 1): - # self.class_state = 1 - # print("class_in1") - # break + class_info = EventMesh.publish("get_storage_config","class_alarm") + # print("10s class_inf o",class_info) + if class_info != None and class_info != []: + if len(class_info) != 0: + i = 0 + for i in range(len(class_info)): + start_hour = int(class_info[i]["start_hour"]) + start_min = int(class_info[i]["start_min"]) + end_hour = int(class_info[i]["end_hour"]) + end_min = int(class_info[i]["end_min"]) + enable = int(class_info[i]["enable"]) + day = class_info[i]["day"] + + start_total_min = start_hour*60+start_min + end_total_min = end_hour*60+end_min + + cur_total_min = cur_hour*60+cur_min + + if enable != 0 and cur_week in day:#使能并且星期在内 判断时间是否大于开始时间并且小于结束时间 + if cur_total_min >= start_total_min and cur_total_min <= end_total_min:# + self.class_state = 1 + print("enter class") + break return self.class_state def get_class_in_time_page(self, event, msg): @@ -3445,7 +3438,9 @@ class setclassTimeManager(Abstract):#设置上课禁用时间 else: if screen_NAME != None: if screen_NAME == "class_time": - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("set_UI_high_priority", 0) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py index d26c4914..a4544cff 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/pp_main.py @@ -78,7 +78,7 @@ class ppMainScreen(Screen): ppmain_name.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) ppmain_name.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) ppmain_name.add_event_cb(lambda e: EventMesh.callback_wrapper(self.addpp(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) delpp_img = lv.img(ppmain_screen) delpp_img.set_pos(5, 60) @@ -102,7 +102,7 @@ class ppMainScreen(Screen): delppmain_name.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) delppmain_name.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) delppmain_name.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delpp_cb(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.meta = ppmain_screen @@ -258,7 +258,7 @@ class ppListScreen(Screen): _btn.add_style(pp_main_default, lv.PART.MAIN|lv.STATE.DEFAULT) _btn.add_flag(lv.obj.FLAG.CLICKABLE) _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_pp(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.edit_pp(e)), lv.EVENT.PRESSING, None) @@ -399,7 +399,7 @@ class ppListScreen(Screen): #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -447,6 +447,7 @@ class delOnePopupScreen(Screen):#删除单个好友 self.timer_out=osTimer() self.count = 0 self.is_sliding = 0 + self.meta_type = "popup" def initialization(self): self.is_sliding = 0 @@ -477,7 +478,7 @@ class delOnePopupScreen(Screen):#删除单个好友 delComfriPopup_call_label1.set_text(" ") delComfriPopup_call_label1.add_flag(lv.obj.FLAG.CLICKABLE) delComfriPopup_call_label1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) delComfriPopup_call_label1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), lv.EVENT.PRESSING, None) @@ -487,7 +488,7 @@ class delOnePopupScreen(Screen):#删除单个好友 delComfriPopup_call_label2.set_text(" ") delComfriPopup_call_label2.add_flag(lv.obj.FLAG.CLICKABLE) delComfriPopup_call_label2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) delComfriPopup_call_label2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)), lv.EVENT.PRESSING, None) @@ -498,7 +499,7 @@ class delOnePopupScreen(Screen):#删除单个好友 delComfriPopup_call_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) delComfriPopup_call_label.add_flag(lv.obj.FLAG.CLICKABLE) delComfriPopup_call_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) delComfriPopup_call_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), lv.EVENT.PRESSING, None) delComfriPopup_call_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) @@ -510,7 +511,7 @@ class delOnePopupScreen(Screen):#删除单个好友 delconcelPopup_call_label.set_text("取消") delconcelPopup_call_label.add_flag(lv.obj.FLAG.CLICKABLE) delconcelPopup_call_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) delconcelPopup_call_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)), lv.EVENT.PRESSING, None) delconcelPopup_call_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) @@ -525,7 +526,7 @@ class delOnePopupScreen(Screen):#删除单个好友 #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -549,7 +550,7 @@ class delOnePopupScreen(Screen):#删除单个好友 #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -571,7 +572,8 @@ class delOnePopupScreen(Screen):#删除单个好友 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -624,7 +626,8 @@ class allppPopupScreen(Screen):#没有加好友弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -677,7 +680,8 @@ class noppPopupScreen(Screen):#没有加好友弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -729,7 +733,8 @@ class delppsucessPopupScreen(Screen):#没有加好友弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -776,7 +781,7 @@ class ppMainPopupScreen(Screen):#弹窗提示 ppPopup_imgbtn.set_pos(14, 5) self.meta = ppPopup_screen - EventMesh.publish(constants.EVENT.START_LOCATION,constants.PROTOCOL.PP_SEND) #开始WT定位 + EventMesh.publish(constants.EVENT.START_LOCATION,constants.PROTOCOL.PP_SEND) #开始碰碰 self.timer.start(1*1000,1,self.fun) self.timer_out.start(30*1000,0,self.timeout_fun) def fun(self,*argc): @@ -795,7 +800,8 @@ class ppMainPopupScreen(Screen):#弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -865,7 +871,8 @@ class addppPopupScreen(Screen):#弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -917,7 +924,8 @@ class addedppPopupScreen(Screen):#已加过好友弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -968,7 +976,8 @@ class ownaddppPopupScreen(Screen):#自己已过好友弹窗提示 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -1021,7 +1030,8 @@ class addfaileppPopupScreen(Screen):#交友失败 self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py index 8ed6663a..e5809c80 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/protocol.py @@ -841,114 +841,195 @@ class WT_ProtoCol(ProtoCol): EventMesh.publish("set_weather_data",[msg_date,msg_time,msg_weather_content,msg_type,msg_temp,msg_min_temp,msg_max_temp,msg_city,1]) EventMesh.publish("updata_weather_show") - -class REMIND_ProtoCol(ProtoCol): - """闹钟数据""" +class REMIND_ProtoCol(ProtoCol):#普通闹钟 + """ + + 平台发送: + [XT*YYYYYYYYYYYYYYY*LEN*REMIND,,时间1-开关,时间2-开关,周几] + 实例:[XT*334588000000156*0008*REMIND,,时间1-开关,时间2-开关,周几] + 终端回复: + [XT*YYYYYYYYYYYYYYY*LEN*REMIND] + """ TYPE = "REMIND" - - + def send(self, event, msg): - - # [SZKW*867387060319491*0008*REMIND] - send_data = EventMesh.publish("get_new_pid")+"*%s*0006*REMIND"%(self.imei) + send_data = self.PID+"*%s*0006*REMIND"%(self.imei) MD5_SIGN = self.pack_MD5_head(send_data) data = "[%s%s]"%(str(MD5_SIGN),send_data) - # print("REMIND_ProtoCol:send:%s"%(data)) + #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) # 通过socket发送到服务器端 EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) def recv(self, event, msg): - """ - @param event: 闹钟数据下发 - @param msg: 接收到的下行数据 - """ - - # b'SZKW*860132060004322*0035*REMIND,23-04-06,14:41:06,b6e0d4c6,1,27,-1,40,6DF157335E02' - # print("REMIND_ProtoCol RECV msg:%s"%(msg)) - alarm_new = [] - + # SZKW*860132060346475*0013*REMIND_CH_MEDICINE2,4-1 msg = msg[1:-1] msg_tmp = msg.decode('ascii') - msg_tmp = msg_tmp.split('REMIND,') - msg_tmp = msg_tmp[1] - - alarm_new = EventMesh.publish("read_alarminjson") - # print("alarm_list:{} msg_tmp:{}",alarm_new,msg_tmp) - k=1 + msg_tmp_new = msg_tmp.split('REMIND,')[1] count = 0 + for i in str(msg_tmp_new): + # print("i",i) + if i == ",": + count+=1 - for i in range(len(str(msg_tmp))):#寻找有多少个,号 - if msg_tmp[i] == ',':#, , , - k+=1 - # if len(alarm_new) < 5 : - # alarm_new = [] - # for i in range(5): - # alarm_new.append({'hour': 8, 'repeart': 10, 'idx': i, 'enabled': 0, 'days': [], 'minute': 39}) - # print("msg_tmp",len(msg_tmp),msg_tmp) - if len(msg_tmp) > 0: - if len(alarm_new) > 2: - for i in range(0,len(alarm_new)-2): - # print("alarm_new_tmp",alarm_new) - del alarm_new[2] - # print("alarm_new:{}",alarm_new) - if k > 3: - k = 3 - - for j in range(2,2+k):#0 1是开关机,234是闹钟 - alarm_day = [] - alarm_week = [] - alarm_total_data = [] - alarm_day_num = 1 - # print("j!!!!!!!!!!",j) - if k == 1: - if len(msg_tmp) != 0: - alarm_data = msg_tmp.split('-')#-作为分隔符 - alarm_switch = int(alarm_data[1])#开关 - alarm_day_num = int(alarm_data[2])#天 - alarm_time = alarm_data[0]#时间 - alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分 - alarm_time_hour = int(alarm_time_tmp[0]) - alarm_time_min = int(alarm_time_tmp[1]) - if alarm_day_num == 2:#每一天 - alarm_day = [1,2,3,4,5,6,0] - elif alarm_day_num == 3:#自定义 + if count != 0: + count+=1 + normal_alarm_save = [] + # # ("handler -> b'[SZKW*860132060346475*001C*REMIND,08:00-1-1,,]'",) + # b'[SZKW*860132060346475*001B*REMIND,08:00-1-1,,]'",) + # medicine_alarmday = str(msg_data[4]) + # alarmday=[] + alarm_day = [] + alarm_switch = 0 + + print("count",count,msg_tmp_new) + if count >= 3: + count = 3 + for i in range(0,count):#默认是三个时间多了也不保存 + alarm_day = [] + alarm_data = str(msg_tmp_new.split(',')[i]) + # print("i",i,sleep_data) + if len(alarm_data) != 0: + b = alarm_data.find('-') + if b != -1: + alarm_time = alarm_data.split('-')[0]#-作为分隔符 + alarm_switch = int(alarm_data.split('-')[1])#开关 + alarm_repeat = int(alarm_data.split('-')[2])#是单次还是每天 还是自定义 + + alarm_hour = int(alarm_time.split(":")[0])#时间 + alarm_min = int(alarm_time.split(":")[1])#冒号分隔时间 时 分 + + + if alarm_repeat == 2:#每一天 + alarm_day = [0,1,2,3,4,5,6] + elif alarm_repeat == 3:#自定义 + alarm_day_tmp = alarm_data.split('-')[3]#-作为分隔符 + if len(str(alarm_day_tmp)) != 0: for i in range(0,7): - if alarm_week[i] != '0': + if alarm_day_tmp[i] != '0': alarm_day.append(i) - if alarm_day_num == 0: - alarm_day_num = 1 - alarm_new.append({"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}) - else: - if len(msg_tmp) != 0: - alarm_total_data = msg_tmp.split(',')[count] - count+=1 - b = alarm_total_data.find('-') - if b != -1: - alarm_data = alarm_total_data.split('-')#-作为分隔符 - alarm_switch = int(alarm_data[1])#开关 - alarm_day_num = int(alarm_data[2])#天 - alarm_time = alarm_data[0]#时间 - alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分 - alarm_time_hour = int(alarm_time_tmp[0]) - alarm_time_min = int(alarm_time_tmp[1]) - if alarm_day_num == 2:#每一天 - alarm_day = [1,2,3,4,5,6,0] - elif alarm_day_num == 3:#自定义 - for i in range(0,7): - if alarm_week[i] != '0': - alarm_day.append(i) - if alarm_day_num == 0: - alarm_day_num = 1 - alarm_new.append({"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}) + else:#单次 1 + alarm_day=[] + # if alarm_switch = 0: + normal_alarm_save.append({"hour":alarm_hour,"min":alarm_min,"day":alarm_day,"enable":alarm_switch}) + + EventMesh.publish("set_storage_config",["normal_alarm",normal_alarm_save]) + normal_alarm = EventMesh.publish("get_storage_config","normal_alarm") + + print("recv REMIND_SEND:{} normal_alarm ;{}".format(msg,normal_alarm)) + + EventMesh.publish(constants.PROTOCOL.REMIND_SEND) + EventMesh.publish("clear_normal_alarm") + EventMesh.publish("push_update_alarm_show") + + + +# class REMIND_ProtoCol(ProtoCol): +# """闹钟数据""" +# TYPE = "REMIND" + + +# def send(self, event, msg): + +# # [SZKW*867387060319491*0008*REMIND] +# send_data = EventMesh.publish("get_new_pid")+"*%s*0006*REMIND"%(self.imei) +# MD5_SIGN = self.pack_MD5_head(send_data) +# data = "[%s%s]"%(str(MD5_SIGN),send_data) +# # print("REMIND_ProtoCol:send:%s"%(data)) +# # 通过socket发送到服务器端 +# EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) + +# def recv(self, event, msg): +# """ +# @param event: 闹钟数据下发 +# @param msg: 接收到的下行数据 +# """ + +# # b'SZKW*860132060004322*0035*REMIND,23-04-06,14:41:06,b6e0d4c6,1,27,-1,40,6DF157335E02' +# # print("REMIND_ProtoCol RECV msg:%s"%(msg)) +# alarm_new = [] + +# msg = msg[1:-1] +# msg_tmp = msg.decode('ascii') +# msg_tmp = msg_tmp.split('REMIND,') +# msg_tmp = msg_tmp[1] + +# alarm_new = EventMesh.publish("read_alarminjson") +# # print("alarm_list:{} msg_tmp:{}",alarm_new,msg_tmp) +# k=1 +# count = 0 + +# for i in range(len(str(msg_tmp))):#寻找有多少个,号 +# if msg_tmp[i] == ',':#, , , +# k+=1 +# # if len(alarm_new) < 5 : +# # alarm_new = [] +# # for i in range(5): +# # alarm_new.append({'hour': 8, 'repeart': 10, 'idx': i, 'enabled': 0, 'days': [], 'minute': 39}) +# # print("msg_tmp",len(msg_tmp),msg_tmp) +# if len(msg_tmp) > 0: +# if len(alarm_new) > 2: +# for i in range(0,len(alarm_new)-2): +# # print("alarm_new_tmp",alarm_new) +# del alarm_new[2] +# # print("alarm_new:{}",alarm_new) +# if k > 3: +# k = 3 + +# for j in range(2,2+k):#0 1是开关机,234是闹钟 +# alarm_day = [] +# alarm_week = [] +# alarm_total_data = [] +# alarm_day_num = 1 +# # print("j!!!!!!!!!!",j) +# if k == 1: +# if len(msg_tmp) != 0: +# alarm_data = msg_tmp.split('-')#-作为分隔符 +# alarm_switch = int(alarm_data[1])#开关 +# alarm_day_num = int(alarm_data[2])#天 +# alarm_time = alarm_data[0]#时间 +# alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分 +# alarm_time_hour = int(alarm_time_tmp[0]) +# alarm_time_min = int(alarm_time_tmp[1]) +# if alarm_day_num == 2:#每一天 +# alarm_day = [1,2,3,4,5,6,0] +# elif alarm_day_num == 3:#自定义 +# for i in range(0,7): +# if alarm_week[i] != '0': +# alarm_day.append(i) +# if alarm_day_num == 0: +# alarm_day_num = 1 +# alarm_new.append({"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}) +# else: +# if len(msg_tmp) != 0: +# alarm_total_data = msg_tmp.split(',')[count] +# count+=1 +# b = alarm_total_data.find('-') +# if b != -1: +# alarm_data = alarm_total_data.split('-')#-作为分隔符 +# alarm_switch = int(alarm_data[1])#开关 +# alarm_day_num = int(alarm_data[2])#天 +# alarm_time = alarm_data[0]#时间 +# alarm_time_tmp = alarm_time.split(':')#冒号分隔时间 时 分 +# alarm_time_hour = int(alarm_time_tmp[0]) +# alarm_time_min = int(alarm_time_tmp[1]) +# if alarm_day_num == 2:#每一天 +# alarm_day = [1,2,3,4,5,6,0] +# elif alarm_day_num == 3:#自定义 +# for i in range(0,7): +# if alarm_week[i] != '0': +# alarm_day.append(i) +# if alarm_day_num == 0: +# alarm_day_num = 1 +# alarm_new.append({"idx": j, "hour": alarm_time_hour, "minute": alarm_time_min, "days":alarm_day, "enabled": alarm_switch,"repeart":alarm_day_num}) - # print("alarm_new end:{}",alarm_new) +# # print("alarm_new end:{}",alarm_new) - with open("/usr/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd: - ujson.dump(alarm_new,fd) - EventMesh.publish("push_update_alarm_show") +# with open("/usr/static/storage_file/alarm_msg.json", 'w',encoding='utf-8') as fd: +# ujson.dump(alarm_new,fd) +# EventMesh.publish("push_update_alarm_show") - # EventMesh.publish("add_alarm",[0,msg_tmp]) - EventMesh.publish(constants.PROTOCOL.REMIND_SEND) +# # EventMesh.publish("add_alarm",[0,msg_tmp]) +# EventMesh.publish(constants.PROTOCOL.REMIND_SEND) @@ -1496,79 +1577,57 @@ class SILENCETIMEFS_ProtoCol(ProtoCol):#云米 @param event: @param msg: 接收到的下行数据 """ - class_in_buf = {"1": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []},\ - "0": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ - "3": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ - "2": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}} - + # [XT*YYYYYYYYYYYYYYY*LEN*SILENCETIME2,时间段-开关-自定义日期,时间段-开关-自定义日期,时 + # 间段-开关-自定义日期] + class_in_buf = [] + # b'[SZKW*860132060128139*004E*SILENCETIME2,00:00-09:00-1-0111110,15:00-22:00-0-1111111,00:00-23:00-0-0100001]' # class_in_buf.append({'start_hour': "16:54", 'week': [], 'idx': 0, 'enabled': 0, 'end_hour': "18:39"}) msg = msg[1:-1] msg_tmp = msg.decode('ascii') - msg_tmp_d = str(msg_tmp.split('SILENCETIMEFS,')[1]) + msg_tmp_d = str(msg_tmp.split('SILENCETIME2,')[1]) - count = 1 + count = 0 k = 0 - + i = 0 for i in range(len(str(msg_tmp_d))): if msg_tmp_d[i] == ',': count+=1 - if count > 4: - count = 4 - if len(msg_tmp_d) > 0: - for x in range(count):#21:10-7:30@0111110,21:10-7:30@0111110,21:10-7:30@0111110,21:10-7:30@0111110 - week = [] - if x >= 4: - break - if count > 1: - # 0100001 - msg_data = msg_tmp_d.split(',')[x] - print("SILENCETIMEFS count",msg_data) - b = msg_data.find('-') - if b != -1: - data = msg_data.split('-')#-作为分隔符 - time = data[1].split('@')#@作为分隔符 - print("data",data,time,data[0],time[0]) - start_time = data[0]#开始时间 - end_time = time[0]#结束时间 - enable = 1 - week_day = time[1] - for i in range(0,7): - if week_day[i] != '0': - week.append(i) - tmp={} - tmp["start_time"] = start_time - tmp["end_time"] = end_time - tmp["week"] = week - tmp["enable"] = enable - class_in_buf["{}".format(x)] = tmp - else: - if len(msg_tmp_d) != 0: - b = msg_tmp_d.find('-') - if b != -1: - - data = msg_tmp_d.split('-')#-作为分隔符 - time = data[1].split('@')#@作为分隔符 - print("data",data,time,data[0],time[0]) - start_time = data[0]#开始时间 - end_time = time[0]#结束时间 - enable = 1 - week_day = time[1] - for i in range(0,7): - if week_day[i] != '0': - week.append(i) - tmp={} - tmp["start_time"] = start_time - tmp["end_time"] = end_time - tmp["week"] = week - tmp["enable"] = enable - class_in_buf["{}".format(x)] = tmp + + count+=1 + if count >= 3: + count = 3 + print("class count",count) + for i in range(0,count):#00:00-09:00-1-0111110,15:00-22:00-0-1111111,00:00-23:00-0-0100001默认是三个时间多了也不保存 + alarm_day = [] + alarm_data = str(msg_tmp_d.split(',')[i]) + # print("i",i,sleep_data) + if len(alarm_data) != 0: + b = alarm_data.find('-') + if b != -1: + start_time = alarm_data.split('-')[0]#-作为分隔符 + end_time = alarm_data.split('-')[1]#-作为分隔符 + alarm_enable = int(alarm_data.split('-')[2])#是单次还是每天 还是自定义 - with open("/usr/static/storage_file/class_msg.json", 'w+',encoding='utf-8') as fd: - ujson.dump(class_in_buf,fd) + start_hour = int(start_time.split(":")[0])#时间 + start_min = int(start_time.split(":")[1])#冒号分隔时间 时 分 + end_hour = int(end_time.split(":")[0])#时间 + end_min = int(end_time.split(":")[1])#冒号分隔时间 时 分 + + alarm_day_tmp = alarm_data.split('-')[3]#-作为分隔符 + if len(str(alarm_day_tmp)) != 0: + for i in range(0,7): + if alarm_day_tmp[i] != '0': + alarm_day.append(i) + # if alarm_switch = 0: + class_in_buf.append({"start_hour":start_hour,"start_min":start_min,"end_hour":end_hour,"end_min":end_min,"day":alarm_day,"enable":alarm_enable}) + + EventMesh.publish("set_storage_config",["class_alarm",class_in_buf]) + class_alarm = EventMesh.publish("get_storage_config","class_alarm") + print("class_alarm",class_alarm) EventMesh.publish("set_class_time", class_in_buf) - EventMesh.publish(constants.PROTOCOL.SILENCETIMEFS_SEND) + EventMesh.publish(constants.PROTOCOL.SILENCETIME2_SEND) EventMesh.publish("get_class_in_time_page") @@ -1592,67 +1651,54 @@ class SILENCETIME2_ProtoCol(ProtoCol): @param event: @param msg: 接收到的下行数据 """ - class_in_buf = {"1": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []},\ - "0": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ - "3": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}, \ - "2": {'enable': 0, 'end_time': '00:00', 'start_time': '00:00', 'week': []}} - + # [XT*YYYYYYYYYYYYYYY*LEN*SILENCETIME2,时间段-开关-自定义日期,时间段-开关-自定义日期,时 + # 间段-开关-自定义日期] + class_in_buf = [] + # b'[SZKW*860132060128139*004E*SILENCETIME2,00:00-09:00-1-0111110,15:00-22:00-0-1111111,00:00-23:00-0-0100001]' # class_in_buf.append({'start_hour': "16:54", 'week': [], 'idx': 0, 'enabled': 0, 'end_hour': "18:39"}) msg = msg[1:-1] msg_tmp = msg.decode('ascii') msg_tmp_d = str(msg_tmp.split('SILENCETIME2,')[1]) - count = 1 + count = 0 k = 0 - + i = 0 for i in range(len(str(msg_tmp_d))): if msg_tmp_d[i] == ',': count+=1 - if count > 4: - count = 4 - for x in range(count):#08:00-17:00-1-0111110,08:00-17:00-1-0111110 - week = [] - if count > 1: - msg_data = msg_tmp_d.split(',')[k] - # print("SILENCETIME count",msg_data) - k+= 1 - b = msg_data.find('-') - if b != -1: - data = msg_data.split('-')#-作为分隔符 - start_time = data[0] - end_time = data[1] - enable = int(data[2]) - week_day = data[3] - for i in range(0,7): - if week_day[i] != '0': - week.append(i) - tmp={} - tmp["start_time"] = start_time - tmp["end_time"] = end_time - tmp["week"] = week - tmp["enable"] = enable - class_in_buf["{}".format(x)] = tmp - else: - b = msg_tmp_d.find('-') + + count+=1 + if count >= 3: + count = 3 + print("class count",count) + for i in range(0,count):#00:00-09:00-1-0111110,15:00-22:00-0-1111111,00:00-23:00-0-0100001默认是三个时间多了也不保存 + alarm_day = [] + alarm_data = str(msg_tmp_d.split(',')[i]) + # print("i",i,sleep_data) + if len(alarm_data) != 0: + b = alarm_data.find('-') if b != -1: - data = msg_tmp_d.split('-')#-作为分隔符 - start_time = data[0] - end_time = data[1] - enable = int(data[2]) - week_day = data[3] - for i in range(0,7): - if week_day[i] != '0': - week.append(i) - tmp={} - tmp["start_time"] = start_time - tmp["end_time"] = end_time - tmp["week"] = week - tmp["enable"] = enable - class_in_buf["{}".format(x)] = tmp - - with open("/usr/static/storage_file/class_msg.json", 'w+',encoding='utf-8') as fd: - ujson.dump(class_in_buf,fd) + start_time = alarm_data.split('-')[0]#-作为分隔符 + end_time = alarm_data.split('-')[1]#-作为分隔符 + alarm_enable = int(alarm_data.split('-')[2])#是单次还是每天 还是自定义 + start_hour = int(start_time.split(":")[0])#时间 + start_min = int(start_time.split(":")[1])#冒号分隔时间 时 分 + + end_hour = int(end_time.split(":")[0])#时间 + end_min = int(end_time.split(":")[1])#冒号分隔时间 时 分 + + alarm_day_tmp = alarm_data.split('-')[3]#-作为分隔符 + if len(str(alarm_day_tmp)) != 0: + for i in range(0,7): + if alarm_day_tmp[i] != '0': + alarm_day.append(i) + # if alarm_switch = 0: + class_in_buf.append({"start_hour":start_hour,"start_min":start_min,"end_hour":end_hour,"end_min":end_min,"day":alarm_day,"enable":alarm_enable}) + + EventMesh.publish("set_storage_config",["class_alarm",class_in_buf]) + class_alarm = EventMesh.publish("get_storage_config","class_alarm") + # print("class_alarm",class_alarm) EventMesh.publish("set_class_time", class_in_buf) EventMesh.publish(constants.PROTOCOL.SILENCETIME2_SEND) @@ -2410,13 +2456,15 @@ class srvtextmsg_ProtoCol(ProtoCol):#微聊文字 EventMesh.publish(constants.PROTOCOL.SRVTEXTMSG_SEND,[msg_x,msg_id]) -#视频通话 -# [XT*YYYYYYYYYYYYYYY*LEN*JPREG] -# 实例: -# [XT*334588000000156*0004*JPREG] -# 平台回复: -# [XT*设备ID*LEN*JPREG,账号(整型)] -# 实例:[XT*334588000000156*0010*JPREG,1087654321] + + +# #小见平台视频通话 +# # [XT*YYYYYYYYYYYYYYY*LEN*JPREG] +# # 实例: +# # [XT*334588000000156*0004*JPREG] +# # 平台回复: +# # [XT*设备ID*LEN*JPREG,账号(整型)] +# # 实例:[XT*334588000000156*0010*JPREG,1087654321] class JPREG_ProtoCol(ProtoCol):#登入注册 """""" TYPE = "JPREG" @@ -2440,13 +2488,13 @@ class JPREG_ProtoCol(ProtoCol):#登入注册 print("JPREG!!!!!!!!!!!!!",msg) # EventMesh.publish(constants.PROTOCOL.JPREG_SEND) -# (声网,佰锐的账号是整型) -# [XT*YYYYYYYYYYYYYYY*LEN*MEMBERS] -# 实例:[XT*334588000000156*0007*MEMBERS] -# 平台回复:[XT*设备ID*LEN*MEMBERS,账号1,昵称1,电话1,账号2,昵称2,电话2.....] -# 实例: -# [XT*334588000000156*003F*MEMBERS,d3e2f759f9d5af3858f3530,爸爸,13662313580,妈妈,555] -# 以上数据部分使用Unicode编码,最终上面示例传到服务端将是: +# # (声网,佰锐的账号是整型) +# # [XT*YYYYYYYYYYYYYYY*LEN*MEMBERS] +# # 实例:[XT*334588000000156*0007*MEMBERS] +# # 平台回复:[XT*设备ID*LEN*MEMBERS,账号1,昵称1,电话1,账号2,昵称2,电话2.....] +# # 实例: +# # [XT*334588000000156*003F*MEMBERS,d3e2f759f9d5af3858f3530,爸爸,13662313580,妈妈,555] +# # 以上数据部分使用Unicode编码,最终上面示例传到服务端将是: class MEMBERS_ProtoCol(ProtoCol):#获取账号列表 """""" @@ -2504,11 +2552,11 @@ class MEMBERS_ProtoCol(ProtoCol):#获取账号列表 EventMesh.publish("video_updata_list_show") # EventMesh.publish(constants.PROTOCOL.MEMBERS_SEND) -# [X*Y*LEN*CALLING,呼叫者id,会议id,通话类型,Token] +# # [X*Y*LEN*CALLING,呼叫者id,会议id,通话类型,Token] -# 设备回复 -# [X*Y*LEN*CALLING,音视频状态] -# 音视频状态:为0表示正常可通讯状态,否则填上用音视频返回的状态码,比如200,如果未获取到返回状态码,则填1 +# # 设备回复 +# # [X*Y*LEN*CALLING,音视频状态] +# # 音视频状态:为0表示正常可通讯状态,否则填上用音视频返回的状态码,比如200,如果未获取到返回状态码,则填1 class CALLING_ProtoCol(ProtoCol):#app发起视频通话 """""" TYPE = "CALLING" @@ -2528,7 +2576,7 @@ class CALLING_ProtoCol(ProtoCol):#app发起视频通话 @param event: @param msg: 接收到的下行数据 """ - # b'[SZKW*867387060319166*000A*KEYBRD]' + # b'[SZKW*867387060319166*000A*CALLING]' print("CALLING!!!!!!!!!!!!!",msg) msg = msg[1:-1] msg_tmp = msg.decode('ascii') @@ -2542,18 +2590,31 @@ class CALLING_ProtoCol(ProtoCol):#app发起视频通话 EventMesh.publish("set_vedio_call_type", call_type)# EventMesh.publish("set_vedio_tokens_data", tokens_data)# + get_ui = EventMesh.publish("get_UI_high_priority") + if get_ui == None: + get_ui = 0 + + if get_ui == 1:#不能通话 因为在打电话或者禁用时间段 + EventMesh.publish(constants.PROTOCOL.CALLING_SEND,1) + else: + EventMesh.publish(constants.PROTOCOL.CALLING_SEND,0) + if int(call_type) == 1:#视频通话 + EventMesh.publish("load_screen", {"screen": "vedio_incall"}) + # EventMesh.publish("load_screen", {"screen": "vedio_incall","meta":"1"}) + pass + else: + EventMesh.publish("load_screen", {"screen": "voice_incall"}) + # EventMesh.publish("load_screen", {"screen": "vedio_incall","meta":"0"})#语音界面 + pass + - # 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": "vedio_incall"}) - -# [XT*YYYYYYYYYYYYYYY*LEN*RCALLING,呼叫者id,会议id/声网频道名(没有则留空,但位置保留),音频还是视频(0为音频,1为视频)] -# 实例: -# [XT*334588000000156*0007*RCALLING,d3e2f759f9d5af3858f3530b,,0] -# 终端回复: -# [XT*设备ID*LEN*RCALLING] -# 实例:[XT*334588000000156*0009*RCALLING] -# +# # [XT*YYYYYYYYYYYYYYY*LEN*RCALLING,呼叫者id,会议id/声网频道名(没有则留空,但位置保留),音频还是视频(0为音频,1为视频)] +# # 实例: +# # [XT*334588000000156*0007*RCALLING,d3e2f759f9d5af3858f3530b,,0] +# # 终端回复: +# # [XT*设备ID*LEN*RCALLING] +# # 实例:[XT*334588000000156*0009*RCALLING] +# # class RCALLING_ProtoCol(ProtoCol):#设备拒接接听 """""" TYPE = "RCALLING" @@ -2644,11 +2705,334 @@ class RTALK_ProtoCol(ProtoCol):#app拒接视频通话 msg_tmp_d = msg_tmp.split(',') screen_NAME = EventMesh.publish("get_screen_NAME") if screen_NAME != None: - if screen_NAME == "video_outcall": + 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") EventMesh.publish("set_UI_high_priority", 0) - EventMesh.publish("load_screen", {"screen": "videolist"}) + EventMesh.publish("return_prev_screen") + + + +#云米视频通话 +# [XT*YYYYYYYYYYYYYYY*LEN*JPREG] +# 实例: +# [XT*334588000000156*0004*JPREG] +# 平台回复: +# [XT*设备ID*LEN*JPREG,账号(整型)] +# 实例:[XT*334588000000156*0010*JPREG,1087654321] +# class JPREG_ProtoCol(ProtoCol):#登入注册 +# """""" +# TYPE = "JPREG" +# def send(self, event, msg): + +# # [XT*334588000000156*0005*WLKEY] +# send_data = EventMesh.publish("get_new_pid")+"*%s*0005*JPREG"%(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) + +# def recv(self, event, msg): +# """ +# @param event: +# @param msg: 接收到的下行数据 +# """ +# # b'[SZKW*867387060319166*000A*KEYBRD]' +# print("JPREG!!!!!!!!!!!!!",msg) +# # EventMesh.publish(constants.PROTOCOL.JPREG_SEND) + +# (声网,佰锐的账号是整型) +# [XT*YYYYYYYYYYYYYYY*LEN*MEMBERS] +# 实例:[XT*334588000000156*0007*MEMBERS] +# 平台回复:[XT*设备ID*LEN*MEMBERS,账号1,昵称1,电话1,账号2,昵称2,电话2.....] +# 实例: +# [XT*334588000000156*003F*MEMBERS,d3e2f759f9d5af3858f3530,爸爸,13662313580,妈妈,555] +# 以上数据部分使用Unicode编码,最终上面示例传到服务端将是: + +class JMEMBERS_ProtoCol(ProtoCol):#获取账号列表 + """""" + TYPE = "JMEMBERS" + def send(self, event, msg): + # [XT*334588000000156*0005*WLKEY] + send_data = EventMesh.publish("get_new_pid")+"*%s*0008*JMEMBERS"%(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) + + def recv(self, event, msg): + """ + @param event: + @param msg: 接收到的下行数据 + """ + # b'[SZKW*876226002021444*0048*MEMBERS,0036003900350031003800330032002C563F563FD83CDF410020D83CDF42002C]' + print("JMEMBERS!!!!!!!!!!!!!",msg) + msg = msg[1:-1] + msg_tmp = msg.decode('ascii') + msg_tmp = msg_tmp.split(',') + + videobook = {} + msg_tmp = msg_tmp[1:] + msg_tmp = msg_tmp[0] + + 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.JMEMBERS_SEND) + +# # [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): + +# # [XT*334588000000156*0005*WLKEY] +# 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("WLKEY!!!!!!!!!!!!!") +# # 通过socket发送到服务器端 +# EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data) + +# def recv(self, event, msg): +# """ +# @param event: +# @param msg: 接收到的下行数据 +# """ +# # b'[SZKW*867387060319166*000A*CALLING]' +# print("CALLING!!!!!!!!!!!!!",msg) +# msg = msg[1:-1] +# msg_tmp = msg.decode('ascii') +# msg_tmp_d = msg_tmp.split(',') +# call_id = msg_tmp_d[2]#id +# meet_id = msg_tmp_d[1]#会议id +# call_type = msg_tmp_d[3]#通话类型id +# tokens_data = "" +# # 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,1) +# EventMesh.publish("load_screen", {"screen": "vedio_incall"}) + +# # [XT*YYYYYYYYYYYYYYY*LEN*RCALLING,呼叫者id,会议id/声网频道名(没有则留空,但位置保留),音频还是视频(0为音频,1为视频)] +# # 实例: +# # [XT*334588000000156*0007*RCALLING,d3e2f759f9d5af3858f3530b,,0] +# # 终端回复: +# # [XT*设备ID*LEN*RCALLING] +# # 实例:[XT*334588000000156*0009*RCALLING] +# # +# class RCALLING_ProtoCol(ProtoCol):#设备拒接接听 +# """""" +# 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]"%(str(MD5_SIGN),send_data) +# print("RCALLING: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*RCALLING]' +# print("RCALLING!!!!!!!!!!!!!") +# EventMesh.publish(constants.PROTOCOL.RCALLING_SEND) + +# class AGTALK_ProtoCol(ProtoCol):#设备发起视频通话与app接听视频通话 +# """""" +# TYPE = "RINGING" +# def send(self, event, msg): + +# # [XT*334588000000156*0005*WLKEY] +# send_data = EventMesh.publish("get_new_pid")+"*%s*0007*RINGING"%(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("RINGING!!!!!!!!!!!!!") + +# 注:终端一旦收到该请求,则退出当前通话 +# [DL*YYYYYYYYYYYYYYY*LEN*HANGUP] +# 实 例 : [DL*334588000000156*0006*HANGUP] +# 终端回复: +# [DL*设备 ID*LEN*HANGUP] + +class HANGUP_ProtoCol(ProtoCol):#app拒接视频通话 + """""" + TYPE = "HANGUP" + def send(self, event, msg): + + # [XT*334588000000156*0005*WLKEY] + send_data = EventMesh.publish("get_new_pid")+"*%s*0006*HANGUP"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + 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("HANGUP!!!!!!!!!!!!!") + # [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"}) + + EventMesh.publish(constants.PROTOCOL.HANGUP_SEND) + +# 注:终端一旦收到该请求,则退出当前通话 +# [DL*YYYYYYYYYYYYYYY*LEN*CALLCANCEL] +# 实 例 : [DL*334588000000156*000A*CALLCANCEL] +# 终端回复: +# [DL*设备 ID*LEN*CALLCANCEL] +class CALLCANCEL_ProtoCol(ProtoCol):#app拒接视频通话 + """""" + TYPE = "CALLCANCEL" + def send(self, event, msg): + + # [XT*334588000000156*0005*WLKEY] + send_data = EventMesh.publish("get_new_pid")+"*%s*000A*CALLCANCEL"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + 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("CALLCANCEL!!!!!!!!!!!!!") + # [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"}) + + EventMesh.publish(constants.PROTOCOL.CALLCANCEL_SEND) + +# 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): diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py index af78ed2b..7dac7ec3 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui.py @@ -529,19 +529,19 @@ class PhoneScreen(Screen): self.meta = phone_screen phone_one.add_event_cb(lambda e: EventMesh.callback_wrapper(self.one(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_two.add_event_cb(lambda e: EventMesh.callback_wrapper(self.two(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_three.add_event_cb(lambda e: EventMesh.callback_wrapper(self.three(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_four.add_event_cb(lambda e: EventMesh.callback_wrapper(self.four(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_five.add_event_cb(lambda e: EventMesh.callback_wrapper(self.five(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_six.add_event_cb(lambda e: EventMesh.callback_wrapper(self.six(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), lv.EVENT.LONG_PRESSED, None)#长按显示+ @@ -550,9 +550,9 @@ class PhoneScreen(Screen): lv.EVENT.RELEASED, None)#释放按键 phone_eight.add_event_cb(lambda e: EventMesh.callback_wrapper(self.eight(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phone_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), lv.EVENT.LONG_PRESSED, None)#长按显示+ @@ -561,10 +561,10 @@ class PhoneScreen(Screen): lv.EVENT.RELEASED, None)#释放按键 # phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.zero(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None)#短按显示* + lv.EVENT.SHORT_CLICKED, None)#短按显示* phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), lv.EVENT.LONG_PRESSED, None)#长按显示+ @@ -573,14 +573,14 @@ class PhoneScreen(Screen): lv.EVENT.RELEASED, None)#释放按键 phone_call.add_event_cb(lambda e: EventMesh.callback_wrapper(self.call(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) # phone_contact_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.contact(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) phone_delete.add_event_cb(lambda e: EventMesh.callback_wrapper(self.delete(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) # phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - # lv.EVENT.CLICKED, None)#短按显示* + # lv.EVENT.SHORT_CLICKED, None)#短按显示* # phone_start.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), # lv.EVENT.LONG_PRESSED, None)#长按显示+ @@ -590,7 +590,7 @@ class PhoneScreen(Screen): # phone_hash.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hash(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) self.phone_num='' @@ -912,7 +912,7 @@ class CallLogScreen(Screen): _btn = lv.btn(self.call_log_detail_list) _btn.add_flag(lv.obj.FLAG.CLICKABLE) _btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) _btn.add_flag(lv.obj.FLAG.HIDDEN) _btn_label2 = lv.label(_btn) @@ -973,7 +973,7 @@ class CallLogScreen(Screen): self.call_log_detail_list_dict[h]["_btn"].set_style_bg_color(lv.color_make(0xff, 0xff, 0xff), lv.PART.MAIN | lv.STATE.DEFAULT) # self.call_log_detail_list_dict[h]["_btn"].add_style(style_contact_btn, lv.PART.MAIN | lv.STATE.DEFAULT) self.call_log_detail_list_dict[h]["_btn"].add_event_cb(lambda e: EventMesh.callback_wrapper(self.calling(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) #_btn_label2 = lv.label(_btn) @@ -1022,7 +1022,7 @@ class CallLogScreen(Screen): def calling(self,e): code = e.get_code() - if code == lv.EVENT.CLICKED: + if code == lv.EVENT.SHORT_CLICKED: global call_log_screen,contacts_cont_list ,call_log_title ,none_call_log_title # print("e.get_text():{} {}".format(e.get_target().get_child(0).get_text(),e.get_target().get_child(3).get_text())) phonnum = str(e.get_target().get_child(0).get_text()) @@ -1143,7 +1143,7 @@ class DialingScreen(Screen): hangup_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) hangup_imgbtn.set_pos(48, 90) hangup_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.meta = dialing_screen if dialing_name != None: name = EventMesh.publish("get_phonename")#获取拨打电话名称 @@ -1302,7 +1302,7 @@ class wechatFailedScreen(Screen):#录音失败提示 EventMesh.publish("load_screen",{"screen":"wechat"}) def btn8_press(self): - EventMesh.publish("load_screen",{"screen":"wechat"}) + EventMesh.publish("load_screen",{"screen":"main_menu"}) @@ -1464,10 +1464,10 @@ class NoSimPowerScreen(Screen):# self.meta = no_sim_power_screen no_sim_power_screen_comfirm_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) no_sim_power_screen_cancel_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) def confirm(self,e): EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"}) @@ -1547,7 +1547,7 @@ class DialingNoPlayPopupScreen(Screen):#正在拨号中...未打出 dialing_popup_hangup_imgbtn.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) dialing_popup_hangup_imgbtn.set_pos(48, 90) dialing_popup_hangup_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.meta = dialing_popup_screen if dialing_popup_name != None: name = EventMesh.publish("get_phonename")#获取拨打电话名称 @@ -1831,8 +1831,8 @@ class MessageFullScreen(Screen): # message_full_cancel.set_ext_click_area(63) self.meta = message_full_screen - message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.CLICKED, None) - message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.CLICKED, None) + message_full_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.SHORT_CLICKED, None) + message_full_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.SHORT_CLICKED, None) def remove_all_sms_cb(self, event, msg): @@ -2052,7 +2052,7 @@ class PopupScreen(Screen): for i in range(MSG_MAX): msg_btn = lv.btn(self.sms_detail_list) msg_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sms_cb(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) msg_btn.add_flag(lv.obj.FLAG.HIDDEN) _btn_label2 = lv.label(msg_btn) _btn_label3 = lv.label(msg_btn) @@ -2258,7 +2258,7 @@ class PopupScreen(Screen): self.sms_detail_list_dict[i]["msg_btn"].set_pos(0,47*count) self.sms_detail_list_dict[i]["msg_btn"].add_style(style_sms_bg_btn, lv.PART.MAIN | lv.STATE.DEFAULT) # self.sms_detail_list_dict[i]["msg_btn"].add_event_cb(lambda e: EventMesh.callback_wrapper(self.sms_cb(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) title = tmp[0] # print("title:{}".format(title)) @@ -2315,7 +2315,7 @@ class PopupScreen(Screen): def sms_cb(self,e): code = e.get_code() - if code == lv.EVENT.CLICKED: + if code == lv.EVENT.SHORT_CLICKED: print("tp test!!!!!!!!!!!!!!") #上传标题和内容 _name = e.get_target().get_child(0).get_text() @@ -2550,7 +2550,7 @@ class HeartrateScreen(Screen): self.meta = heartrate_screen heartrate_reset_btn_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.restart_up(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) heartrate_done_label.set_text(" ") heartrate_bpm_label.set_text("-- bpm") heartrate_start_label.set_text("正在测量中.") @@ -2981,27 +2981,27 @@ class ToolboxScreen(Screen): toolbox_calcut_img_label.set_style_text_align(lv.TEXT_ALIGN.LEFT, 0) toolbox_calcut_img_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - toolbox_step_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.CLICKED, None) - toolbox_weather_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.CLICKED, None) - toolbox_alarm_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.CLICKED, None) - # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) - toolbox_countdown_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e,"countdown")), lv.EVENT.CLICKED, None) - toolbox_stopwatch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.CLICKED, None) + toolbox_step_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.SHORT_CLICKED, None) + toolbox_weather_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.SHORT_CLICKED, None) + toolbox_alarm_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.SHORT_CLICKED, None) + # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.SHORT_CLICKED, None) + toolbox_countdown_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e,"countdown")), lv.EVENT.SHORT_CLICKED, None) + toolbox_stopwatch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.SHORT_CLICKED, None) - toolbox_calcut_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "calculator")), lv.EVENT.CLICKED, None) + toolbox_calcut_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "calculator")), lv.EVENT.SHORT_CLICKED, None) - # toolbox_step_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.CLICKED, None) - # toolbox_weather_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.CLICKED, None) - # toolbox_alarm_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.CLICKED, None) - # # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) - # toolbox_countdown_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.CLICKED, None) - # toolbox_stopwatch_img_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.CLICKED, None) + # toolbox_step_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.SHORT_CLICKED, None) + # toolbox_weather_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.SHORT_CLICKED, None) + # toolbox_alarm_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.SHORT_CLICKED, None) + # # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.SHORT_CLICKED, None) + # toolbox_countdown_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.SHORT_CLICKED, None) + # toolbox_stopwatch_img_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.SHORT_CLICKED, None) toolbox_step_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "step")), lv.EVENT.PRESSING, None) toolbox_weather_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.PRESSING, None) toolbox_alarm_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.PRESSING, None) - # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) + # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.SHORT_CLICKED, None) toolbox_countdown_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.PRESSING, None) toolbox_stopwatch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.PRESSING, None) toolbox_calcut_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "calculator")), lv.EVENT.PRESSING, None) @@ -3009,7 +3009,7 @@ class ToolboxScreen(Screen): # toolbox_step_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e,"step")), lv.EVENT.PRESSING, None) # toolbox_weather_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "weather")), lv.EVENT.PRESSING, None) # toolbox_alarm_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "clk_list")), lv.EVENT.PRESSING, None) - # # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.CLICKED, None) + # # toolbox_sms_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "popup"})), lv.EVENT.SHORT_CLICKED, None) # toolbox_countdown_img_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "countdown")), lv.EVENT.PRESSING, None) # toolbox_stopwatch_img_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_tool_cb(e, "stopwatch")), lv.EVENT.PRESSING, None) @@ -3029,7 +3029,7 @@ class ToolboxScreen(Screen): #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -3129,9 +3129,9 @@ class IncomingCallScreen(Screen): incoming_call_hangup.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) incoming_call_hangup.set_src("U:/static/hang_up.png") incoming_call_answer.add_event_cb(lambda e: EventMesh.callback_wrapper(self.answer(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) incoming_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.meta = incoming_call_screen EventMesh.publish("set_UI_high_priority", 1) @@ -3401,14 +3401,14 @@ class OnCallScreen(Screen): on_call_volum_reduce.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) on_call_volum_reduce.set_src("U:/static/REDUCE_VOLUM_ICON.png") # on_call_volum_reduce.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_volum_size(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) on_call_volum_reduce_btn = lv.img(on_call_obj) on_call_volum_reduce_btn.set_size(80, 40) on_call_volum_reduce_btn.add_flag(lv.obj.FLAG.CLICKABLE) on_call_volum_reduce_btn.set_pos(48, 50) on_call_volum_reduce_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_volum_size(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_volum_add = lv.img(on_call_obj) @@ -3418,14 +3418,14 @@ class OnCallScreen(Screen): on_call_volum_add.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) on_call_volum_add.set_src("U:/static/VOLUM_ADD_ICON.png") # on_call_volum_add.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_volum_size(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) on_call_volum_add_btn = lv.img(on_call_obj) on_call_volum_add_btn.set_size(40, 40) on_call_volum_add_btn.add_flag(lv.obj.FLAG.CLICKABLE) on_call_volum_add_btn.set_pos(0, 50) on_call_volum_add_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_volum_size(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_volum_label = lv.label(on_call_obj) @@ -3436,7 +3436,7 @@ class OnCallScreen(Screen): on_call_volum_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0) on_call_volum_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) on_call_volum_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.open_volum_show(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_hangup = lv.img(on_call_obj) on_call_hangup.set_size(32, 32) @@ -3445,7 +3445,7 @@ class OnCallScreen(Screen): on_call_hangup.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) on_call_hangup.set_src("U:/static/hang_up.png") on_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_tab_label = lv.label(on_call_obj) on_call_tab_label.set_pos(80, 100) @@ -3455,7 +3455,7 @@ class OnCallScreen(Screen): on_call_tab_label.set_style_text_align(lv.TEXT_ALIGN.CENTER,0) on_call_tab_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) on_call_tab_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.on_call_tab_show(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_screen_tab = lv.obj(on_call_screen) on_call_screen_tab.set_size(128,128) @@ -3483,7 +3483,7 @@ class OnCallScreen(Screen): on_call_phone_return_btn.set_pos(0, 0) on_call_phone_return_btn.set_size(50, 25) on_call_phone_return_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.on_return_show(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_one = lv.img(on_call_screen_tab) on_call_phone_one.set_src("U:/static/IMAGE_NUMBER_KEY1_ICON.png") @@ -3578,37 +3578,37 @@ class OnCallScreen(Screen): self.meta = on_call_screen on_call_phone_jing.add_event_cb(lambda e: EventMesh.callback_wrapper(self.jingpressed_start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_xing.add_event_cb(lambda e: EventMesh.callback_wrapper(self.xingpressed_start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_one.add_event_cb(lambda e: EventMesh.callback_wrapper(self.one(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_two.add_event_cb(lambda e: EventMesh.callback_wrapper(self.two(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_three.add_event_cb(lambda e: EventMesh.callback_wrapper(self.three(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_four.add_event_cb(lambda e: EventMesh.callback_wrapper(self.four(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_five.add_event_cb(lambda e: EventMesh.callback_wrapper(self.five(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_six.add_event_cb(lambda e: EventMesh.callback_wrapper(self.six(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_seven.add_event_cb(lambda e: EventMesh.callback_wrapper(self.endpressed_start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_eight.add_event_cb(lambda e: EventMesh.callback_wrapper(self.eight(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) on_call_phone_nine.add_event_cb(lambda e: EventMesh.callback_wrapper(self.nine_endpressed_start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) # phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.zero(e)), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) on_call_phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None)#短按显示* + lv.EVENT.SHORT_CLICKED, None)#短按显示* on_call_phone_zero.add_event_cb(lambda e: EventMesh.callback_wrapper(self.pressed_start(e)), lv.EVENT.LONG_PRESSED, None)#长按显示+ @@ -4001,7 +4001,8 @@ class StepScreen(Screen): self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "toolbox"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "toolbox"}) @@ -4164,7 +4165,8 @@ class WeatherScreen(Screen): no_connect_label1.set_text("请联网后重试") def done_return(self): - EventMesh.publish("load_screen", {"screen": "toolbox"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "toolbox"}) @@ -4256,7 +4258,7 @@ class ContactsScreen(Screen): contact_btn = lv.btn(self.contact_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) + lv.EVENT.SHORT_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) @@ -4314,7 +4316,7 @@ class ContactsScreen(Screen): # 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) + # lv.EVENT.SHORT_CLICKED, None) #contact_btn_label_1 = lv.label(contact_btn) self.contact_detail_listt_dict[i]["contact_btn_label_1"].set_pos(0, 0) @@ -4358,7 +4360,7 @@ class ContactsScreen(Screen): #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -4557,7 +4559,7 @@ class TemperatureScreen(Screen): self.meta = temperature_screen temp_reset_btn_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.restart_up(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) temperature_bpm_label.set_text("- -") temperature_start_label.set_text("正在测量中.") @@ -4967,7 +4969,7 @@ class Spo2Screen(Screen): self.meta = spo2_screen spo2_reset_btn_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.restart_up(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) def post_processor_after_initialization(self): self.point = 0 @@ -5413,23 +5415,23 @@ class CountdownScreen(Screen): self.meta = countdown_screen countdown_sec_up_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sec_up(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_sec_down_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.sec_down(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_min_up_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.min_up(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_min_down_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.min_down(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_hour_up_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hour_up(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_hour_down_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hour_down(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_start_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) countdown_reset_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reset(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) # countdown_stop_imgbtn.add_event_cb(lambda e: self.stop(e), - # lv.EVENT.CLICKED, None) + # lv.EVENT.SHORT_CLICKED, None) date_tmp = utime.localtime() self.time_tmp = utime.mktime(date_tmp) @@ -5710,7 +5712,8 @@ class CountdownScreen(Screen): if self.g_end == 1: EventMesh.publish("load_screen", {"screen": "countdown"}) else: - EventMesh.publish("load_screen", {"screen": "toolbox"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): if self.g_state == 0: @@ -5783,23 +5786,28 @@ class CountdownEndScreen(Screen): def done_left_to_right(self): self.stop_FIND() - EventMesh.publish("load_screen", {"screen": "countdown"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "countdown"}) def done_right_to_left(self): self.stop_FIND() - EventMesh.publish("load_screen", {"screen": "countdown"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "countdown"}) def done_bottom_to_top(self): self.stop_FIND() - EventMesh.publish("load_screen", {"screen": "countdown"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "countdown"}) def done_top_to_bottom(self): self.stop_FIND() - EventMesh.publish("load_screen", {"screen": "countdown"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "countdown"}) def done_return(self): self.stop_FIND() - EventMesh.publish("load_screen", {"screen": "countdown"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "countdown"}) def done_click(self): self.stop_FIND() @@ -5936,10 +5944,10 @@ class StopwatchScreen(Screen): stopwatch_stop_img.set_pos(66, 90) stopwatch_stop_img.add_flag(lv.obj.FLAG.HIDDEN) stopwatch_start_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.start(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) stopwatch_reset_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reset(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.meta = stopwatch_screen if self.s_state == 0: @@ -6088,7 +6096,8 @@ class StopwatchScreen(Screen): def done_return(self): if self.s_state == 0: self.timer.stop() - EventMesh.publish("load_screen", {"screen": "toolbox"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "toolbox"}) def btn1_release(self): if self.s_state == 0: @@ -6159,7 +6168,8 @@ class UIFINDScreen(Screen): def stop_FIND(self) : self.FIND_timer.stop() self.aud.stop() #播放声音 - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def Close(self): print("self.FIND_timer_Close") @@ -6198,6 +6208,7 @@ class LowPowerScreen(Screen): def __init__(self): super().__init__() self.meta = None + self.meta_type = "popup" def initialization(self): global Lowpower_screen ,Lowpower_screen_img @@ -6226,20 +6237,27 @@ class LowPowerScreen(Screen): self.meta = Lowpower_screen def done_left_to_right(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_right_to_left(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_bottom_to_top(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_top_to_bottom(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_click(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn8_press(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -6254,6 +6272,7 @@ class LowOnePowerScreen(Screen): #0%的电池电量 super().__init__() self.meta = None self.timer = osTimer() + self.meta_type = "popup" def initialization(self): global LowOnePower_screen ,LowOnePower_screen_img ,LowOnePower_screen_label2,LowOnePower_screen_label1 @@ -6299,25 +6318,32 @@ class LowOnePowerScreen(Screen): #0%的电池电量 EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"}) def done_left_to_right(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_right_to_left(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_bottom_to_top(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_top_to_bottom(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def done_click(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn8_press(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) @@ -6398,10 +6424,10 @@ class sosScreen(Screen): self.meta = sos_screen sos_screen_confirm_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.timer_comfirm_cb(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) sos_screen_return.add_event_cb(lambda e: EventMesh.callback_wrapper(self.timer_cancel_cb(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) def timer_comfirm_cb(self,e): EventMesh.publish("set_sos_flag", 1) @@ -6845,10 +6871,10 @@ class NoSimAutoScreen(Screen):#无sim卡是否关机 self.meta = no_sim_auto_screen no_sim_auto_screen_comfirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) no_sim_auto_screen_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.cancel(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.timer.start(1*1000,1,self.fun) self.count = 0 def fun(self,*argc): @@ -6891,12 +6917,13 @@ class SystemInitScreen(Screen): self.meta = None self.system_init_timer=osTimer() self.system_init_timer_count = 0 + self.meta_type = "popup" def initialization(self): global system_init_screen ,system_init_label if system_init_screen == None: system_init_screen = lv.obj() - print("Lowpower_screen") + print("SystemInitScreen") system_init_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) system_init_label = lv.label(system_init_screen) @@ -6946,11 +6973,13 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 super().__init__() self.meta = None self.timer = osTimer() + self.meta_type = "popup" + def initialization(self): global class_mgr_popup_screen ,class_mgr_popup_label ,class_mgr_popup_time1_text if class_mgr_popup_screen == None: class_mgr_popup_screen = lv.obj() - print("Lowpower_screen") + print("class_mgr_popup_screen") class_mgr_popup_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) class_mgr_popup_time1_text = lv.label(class_mgr_popup_screen) @@ -6979,6 +7008,7 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 hour = data[4] min = data[5] class_mgr_popup_time1_text.set_text("{}:{}".format("%02d"%(hour),"%02d"%(min))) + EventMesh.publish("set_UI_high_priority", 1) self.timer.start(1*1000,1,self.fun) def lcd_on(self): @@ -6987,6 +7017,9 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 def lcd_off(self): self.timer.stop() + def Close(self): + EventMesh.publish("set_UI_high_priority", 0) + def fun(self,*argc): global class_mgr_popup_time1_text data = RTC().datetime() @@ -7473,6 +7506,7 @@ class up_Screen(Screen):#上滑界面 camera_popup_screen = None camera_popup_label = None +camera_img_test = None def camCapturecallback(result_list): print("camCapturecallback",result_list) if result_list[0] == 0:#保存成功 @@ -7481,7 +7515,9 @@ def camCapturecallback(result_list): tmp = tmp.split("_camera")[0] time = int(tmp) album_data = int(EventMesh.publish("get_camera_num")) - + if album_data >= 1: + album_data=1 + print("album_data",album_data) EventMesh.publish("set_camera_num",album_data+1) EventMesh.publish("save_album_succ",1) pass @@ -7521,16 +7557,19 @@ class cameraFullScreen(Screen):#相册已满 def done_click(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass def btn8_press(self): @@ -7569,16 +7608,19 @@ class deletealbumScreen(Screen):#删除图片 def done_click(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass def btn8_press(self): @@ -7594,71 +7636,72 @@ class cameraScreen(Screen):#相机拍照二级界面 self.meta = None self.preview1 = None self.timer = osTimer() - self.timer2 =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 - + global camera_popup_screen ,camera_popup_label,camera_img_test + # dec = camera.camCapture(0,240,320,1,128,128) + # dec.callback(camCapturecallback) state = dec.open() - dec.set_rotate(1) + dec.set_rotate(0) if camera_popup_screen == None: camera_popup_screen = lv.obj() - print("Lowpower_screen") + print("camera_popup_screen") camera_popup_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - - img_test = lv.img(camera_popup_screen) + camera_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) + ret = dec.set_img(camera_img_test) + + camera_img_test.align(lv.ALIGN.CENTER, 0, 0) + camera_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_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_click(e)), lv.EVENT.SHORT_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_album_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_album_click(e)), lv.EVENT.SHORT_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.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_album_click(e)), lv.EVENT.SHORT_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_return_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_return_click(e)), lv.EVENT.SHORT_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_album_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_album_click(e)), lv.EVENT.SHORT_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_camera_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.camera_click(e)), lv.EVENT.SHORT_CLICKED, None) camera_popup_label = lv.label(camera_popup_screen) camera_popup_label.set_pos(0, 40) @@ -7670,9 +7713,12 @@ class cameraScreen(Screen):#相机拍照二级界面 camera_popup_label.add_flag(lv.obj.FLAG.HIDDEN) self.meta = camera_popup_screen + + + album_data = EventMesh.publish("get_camera_num") if int(album_data) >= 1:#相册已满 - EventMesh.publish("load_screen", {"screen": "camera_full"}) + # EventMesh.publish("load_screen", {"screen": "camera_full"}) pass if camera_popup_label != None: camera_popup_label.add_flag(lv.obj.FLAG.HIDDEN) @@ -7696,9 +7742,10 @@ class cameraScreen(Screen):#相机拍照二级界面 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 + if album_data != None: + 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): @@ -7711,6 +7758,8 @@ class cameraScreen(Screen):#相机拍照二级界面 self.timer.stop() self.timer2.stop() self.timer3.stop() + # dec.remove_img() + print("close camera!!!!!!!") state = dec.close() def save_suc_album(self,*argc): @@ -7781,20 +7830,20 @@ class cameraalbumScreen(Screen):#相册 # 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_img1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,0)), lv.EVENT.SHORT_CLICKED, None) camera_album_popup_img2 = lv.img(camera_album_popup_screen) 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.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,0)), lv.EVENT.CLICKED, None) + camera_album_popup_img2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,0)), lv.EVENT.SHORT_CLICKED, None) camera_album_popup_img3 = lv.img(camera_album_popup_screen) 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_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) + camera_album_popup_img3.add_event_cb(lambda e: EventMesh.callback_wrapper(self.click_album(e,1)), lv.EVENT.SHORT_CLICKED, None) self.meta = camera_album_popup_screen read_album = 0 @@ -7916,8 +7965,8 @@ class albumPreviewScreen(Screen):#点击预览 album_num_tmp = None album_num_tmp = int(self.meta_info) print(album_num_tmp) - album_preview_popup_delet_can_label.add_event_cb(lambda e:EventMesh.callback_wrapper(self.cancel_pop(e)),lv.EVENT.CLICKED,None) - album_preview_popup_delet_con_label.add_event_cb(lambda e:EventMesh.callback_wrapper(self.confirm_pop(e)),lv.EVENT.CLICKED,None) + album_preview_popup_delet_can_label.add_event_cb(lambda e:EventMesh.callback_wrapper(self.cancel_pop(e)),lv.EVENT.SHORT_CLICKED,None) + album_preview_popup_delet_con_label.add_event_cb(lambda e:EventMesh.callback_wrapper(self.confirm_pop(e)),lv.EVENT.SHORT_CLICKED,None) album_preview_popup_img.set_src("U:/static/album/%d_camera.jpg"%(album_num_tmp))#'U:/6_camera.jpeg' @@ -7968,76 +8017,273 @@ class albumPreviewScreen(Screen):#点击预览 def btn8_press(self): EventMesh.publish("load_screen", {"screen": "main_menu"}) pass -camera_video_screen = None -camera_video_label = None -class cameraVdieoScreen(Screen):# +voice_answer_screen = None +voice_answer_label = None +voice_answer_btn1 = None +voice_answer_btn_label1 = None +class VdieoVoiceScreen(Screen):#语音接听画面 # - NAME = "camera_video" + NAME = "voice_answer" def __init__(self): super().__init__() self.meta = None - self.preview1 = None self.timer = osTimer() + self.meta_type = "popup" + self.count = 0 def initialization(self): - global camera_video_screen ,camera_video_label - + global voice_answer_screen ,video_answer_btn_label1 + self.count = 0 + if voice_answer_screen == None: + voice_answer_screen = lv.obj() + print("voice_answer_screen") + voice_answer_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + + video_answer_btn_label1 = lv.label(voice_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 = voice_answer_screen + EventMesh.publish("set_UI_high_priority", 1) + 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("set_UI_high_priority", 0) + EventMesh.publish("load_screen", {"screen": "voiceing"}) + 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("set_UI_high_priority", 0) + EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type]) + EventMesh.publish("load_screen", {"screen": "main_menu"}) + return + # print("voiceing_answer call_state",call_state) + self.count+=1 + if self.count >= 20: + + self.timer.stop() + EventMesh.publish("set_UI_high_priority", 0) + EventMesh.publish("close_jrtc_event") + 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"}) - if camera_video_screen == None: - camera_video_screen = lv.obj() - print("camera_video_screen") - camera_video_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) - camera_video_label = lv.label(camera_video_screen) - camera_video_label.set_pos(0, 20) - camera_video_label.set_size(128, 40) - camera_video_label.set_text("正在对方接听中") - camera_video_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) - camera_video_label.set_long_mode(lv.label.LONG.WRAP) - camera_video_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + 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_voice_answer_second_label = None +camera_voice_answer_screen = None +camera_voice_answer_label = None +camera_voice_answer_btn = None +camera_voice_answer_btn_label =None + +class VoiceShowScreen(Screen):#正在语音通话中 + # + NAME = "voiceing" + + def __init__(self): + super().__init__() + self.meta = None + self.preview1 = None + self.timer = osTimer() + self.statu_open = -1 + self.show_label = 0 + self.second_count = 0 + self.time_out = 0 + self.meta_type = "popup" + + + def initialization(self): + global camera_voice_answer_screen,camera_voice_answer_second_label ,camera_voice_answer_btn_label,camera_voice_answer_label,camera_voice_answer_btn + if camera_voice_answer_screen == None: + camera_voice_answer_screen = lv.obj() + print("camera_voice_answer_screen") + camera_voice_answer_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + + + camera_voice_answer_label = lv.label(camera_voice_answer_screen) + camera_voice_answer_label.set_pos(0, 20) + camera_voice_answer_label.set_text("正在通话中...") + camera_voice_answer_label.set_size(128, 40) + camera_voice_answer_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + camera_voice_answer_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + camera_voice_answer_second_label = lv.label(camera_voice_answer_screen) + camera_voice_answer_second_label.set_pos(0, 50) + camera_voice_answer_second_label.set_text(" ") + camera_voice_answer_second_label.set_size(128, 40) + camera_voice_answer_second_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + camera_voice_answer_second_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + camera_voice_answer_btn = lv.img(camera_voice_answer_screen) + camera_voice_answer_btn.add_flag(lv.obj.FLAG.CLICKABLE) + camera_voice_answer_btn.set_pos(48, 90) + camera_voice_answer_btn.set_size(32,32) + camera_voice_answer_btn.set_src("U:/static/hang_up.png") + + camera_voice_answer_btn_label = lv.label(camera_voice_answer_screen) + camera_voice_answer_btn_label.set_pos(18, 50) + camera_voice_answer_btn_label.set_text(" ") + camera_voice_answer_btn_label.set_size(90, 78) + camera_voice_answer_btn_label.add_flag(lv.obj.FLAG.CLICKABLE) + + camera_voice_answer_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.close_cb(e)), lv.EVENT.SHORT_CLICKED, None) + + camera_voice_answer_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.close_cb(e)), lv.EVENT.SHORT_CLICKED, None) + + self.meta = camera_voice_answer_screen + call_state = jrtc.get_state() + + self.second_count = 0 + self.statu_open = 0 + + self.time_out = 0 + + EventMesh.publish("set_UI_high_priority", 1) + if call_state == 5:#接通 + camera_voice_answer_label.set_text("正在通话中...") + camera_voice_answer_label.set_pos(0, 20) + camera_voice_answer_second_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_voice_answer_second_label.set_text("00:00") + camera_voice_answer_second_label.set_pos(0, 50) + # camera_voice_answer_btn.clear_flag(lv.obj.FLAG.HIDDEN) + # camera_voice_answer_btn_label.clear_flag(lv.obj.FLAG.HIDDEN) + else: + camera_voice_answer_label.set_text("正在接听中...") + camera_voice_answer_label.set_pos(0, 50) + camera_voice_answer_second_label.add_flag(lv.obj.FLAG.HIDDEN) + # camera_voice_answer_btn.add_flag(lv.obj.FLAG.HIDDEN) + # camera_voice_answer_btn_label.add_flag(lv.obj.FLAG.HIDDEN) + self.timer.start(1*1000,1,self.fun) - img_btn = lv.img(camera_video_screen) - img_btn.add_flag(lv.obj.FLAG.CLICKABLE) - img_btn.set_pos(0, 90) - img_btn.set_size(32,32) - img_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.close_cb(e)), lv.EVENT.CLICKED, None) - self.meta = camera_video_screen def close_cb(self,e): - pass + self.statu_open = 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"))# + + 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") def fun(self,*argc): - pass - # EventMesh.publish("system_sleep_rest")#防止黑屏 + EventMesh.publish("system_sleep_rest")#防止黑屏 + call_state = jrtc.get_state() + if call_state == 5: + camera_voice_answer_label.set_text("正在通话中...") + camera_voice_answer_label.set_pos(0, 20) + # camera_video_answer_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_voice_answer_second_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_voice_answer_second_label.set_pos(0, 50) + camera_voice_answer_btn.clear_flag(lv.obj.FLAG.HIDDEN) + camera_voice_answer_btn_label.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(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): + self.time_out = 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("load_screen", {"screen": "main_menu"}) + 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: + total_hour = self.second_count//3600#小时 + total_min = (self.second_count%3600)//60#分钟 + total_sec = (self.second_count%3600)%60#秒 + camera_voice_answer_second_label.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 + camera_voice_answer_second_label.set_text("{}:{}".format("%02d"%(total_min),"%02d"%(total_sec))) def Close(self): self.timer.stop() - if self.open_preview1 == 1: - self.timer.stop() - self.preview1.close() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + pass + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass def btn8_press(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass + + video_answer_screen = None video_answer_label = None video_answer_btn1 = None video_answer_btn_label1 = None -class cameraVdieoAnswerScreen(Screen):#接听画面 +class cameraVdieoAnswerScreen(Screen):#视频通话接听画面 # NAME = "vedio_answer" @@ -8045,6 +8291,7 @@ class cameraVdieoAnswerScreen(Screen):#接听画面 super().__init__() self.meta = None self.timer = osTimer() + self.meta_type = "popup" self.count = 0 def initialization(self): @@ -8062,28 +8309,33 @@ class cameraVdieoAnswerScreen(Screen):#接听画面 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 + EventMesh.publish("set_UI_high_priority", 1) 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("set_UI_high_priority", 0) 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("set_UI_high_priority", 0) EventMesh.publish(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type]) - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") return - print("vedio_answer call_state",call_state) + # 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"}) + EventMesh.publish("set_UI_high_priority", 0) + EventMesh.publish("close_jrtc_event") + EventMesh.publish("return_prev_screen") + return EventMesh.publish("system_sleep_rest")#防止黑屏 @@ -8106,14 +8358,15 @@ class cameraVdieoAnswerScreen(Screen):#接听画面 pass camera_video_answer_screen = None +camera_video_answer_second_label = None camera_video_answer_label = None camera_video_answer_btn = None -vcamera_video_answer_btn_label = None -camera_video_answer_label = None +camera_video_answer_btn_label = None +video_img_test = None def jrtc_cb(close_sta): print("jrtc callback:", close_sta) if close_sta == 0 or close_sta == 1: - jrtc.close(1) + jrtc.close(0) jrtc.set_callback(jrtc_cb) class VedioShowScreen(Screen):#正在视频通话中 # @@ -8126,6 +8379,9 @@ class VedioShowScreen(Screen):#正在视频通话中 self.timer = osTimer() self.statu_open = -1 self.show_label = 0 + self.second_count = 0 + self.time_out = 0 + self.meta_type = "popup" EventMesh.subscribe("open_vedio_infor",self.open_vedio_infor) EventMesh.subscribe("close_jrtc_event",self.close_jrtc_event) @@ -8133,105 +8389,362 @@ class VedioShowScreen(Screen):#正在视频通话中 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 = EventMesh.publish("get_vedio_tokens_data")#tookens数据#云米平台不需要tokens - 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")#测试服地址 tokens = str(tokens_data) - oneself_id = str(876226002021444)#自己的账号 - jrtc.config("efe9f8800a39d96244234097", oneself_id, "25v9C652123QL3N8", tokens) + 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,tokens) - #jrtc.set_rotate(0) + print("uid ",uid,ticket,oneself_id) + #jrtc.set_rotate(0) 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) + # print("close_jrtc_event1",call_state) + # jrtc.remove_img() + # print("close_jrtc_event2",call_state) + jrtc.close(0) + # print("close_jrtc_event3",call_state) pass def initialization(self): - global camera_video_answer_screen ,camera_video_answer_label,camera_video_answer_btn,vcamera_video_answer_btn_label + jrtc.set_rotate(jrtc.CAM_ROTATE_180) + 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() 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) - ret = jrtc.set_img(img_test) - img_test.align(lv.ALIGN.CENTER, 0, 0) - img_test.set_size(128,128) + video_img_test = lv.img(camera_video_answer_screen) + ret = jrtc.set_img(video_img_test) + video_img_test.align(lv.ALIGN.CENTER, 0, 0) + video_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_label = lv.label(camera_video_answer_screen) + camera_video_answer_label.set_pos(0, 20) + 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_second_label = lv.label(camera_video_answer_screen) + camera_video_answer_second_label.set_pos(0, 50) + camera_video_answer_second_label.set_text(" ") + camera_video_answer_second_label.set_size(128, 40) + camera_video_answer_second_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + camera_video_answer_second_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) - + + + camera_video_answer_btn_label = lv.label(camera_video_answer_screen) + camera_video_answer_btn_label.set_pos(18, 50) + camera_video_answer_btn_label.set_text(" ") + camera_video_answer_btn_label.set_size(90, 78) + camera_video_answer_btn_label.add_flag(lv.obj.FLAG.CLICKABLE) + + + camera_video_answer_btn_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.close_cb(e)), lv.EVENT.SHORT_CLICKED, None) + camera_video_answer_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.close_cb(e)), lv.EVENT.SHORT_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) + + 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:#接通 + camera_video_answer_label.set_text("正在通话中...") + camera_video_answer_label.set_pos(0, 20) + # camera_video_answer_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_video_answer_second_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_video_answer_second_label.set_text("00:00") + camera_video_answer_second_label.set_pos(0, 50) + # camera_video_answer_btn.clear_flag(lv.obj.FLAG.HIDDEN) + # camera_video_answer_btn_label.clear_flag(lv.obj.FLAG.HIDDEN) + video_img_test.clear_flag(lv.obj.FLAG.HIDDEN) + else: + camera_video_answer_label.set_text("正在接听中...") + camera_video_answer_label.set_pos(0, 50) + # camera_video_answer_label.add_flag(lv.obj.FLAG.HIDDEN) + camera_video_answer_second_label.add_flag(lv.obj.FLAG.HIDDEN) + # camera_video_answer_btn.add_flag(lv.obj.FLAG.HIDDEN) + # camera_video_answer_btn_label.add_flag(lv.obj.FLAG.HIDDEN) + video_img_test.add_flag(lv.obj.FLAG.HIDDEN) self.timer.start(1*1000,1,self.fun) def close_cb(self,e): 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("set_UI_high_priority", 0) 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") + def fun(self,*argc): EventMesh.publish("system_sleep_rest")#防止黑屏 call_state = jrtc.get_state() - print("call_state",call_state) + if call_state == 5: + camera_video_answer_label.set_text("正在通话中...") + camera_video_answer_label.set_pos(0, 20) + # camera_video_answer_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_video_answer_second_label.clear_flag(lv.obj.FLAG.HIDDEN) + camera_video_answer_btn.clear_flag(lv.obj.FLAG.HIDDEN) + camera_video_answer_btn_label.clear_flag(lv.obj.FLAG.HIDDEN) + + 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("load_screen", {"screen": "main_menu"}) + 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): + self.time_out = 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") + + + + 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#秒 + camera_video_answer_second_label.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 + camera_video_answer_second_label.set_text("{}:{}".format("%02d"%(total_min),"%02d"%(total_sec))) + # camera_video_answer_second_label.set_text("%02d"%(total_min),"%02d"%(total_sec)) def Close(self): self.timer.stop() def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + pass + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass def btn8_press(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + # EventMesh.publish("load_screen", {"screen": "main_menu"}) pass + +voice_call_screen = None +voice_call_img = None +voice_call_name_label = None +voice_call_answer = None +voice_call_hangup = None +voice_call_label = None +# CALL_LOG_MAX = 50 +class voiceInCallScreen(Screen):#语音通话打入中 + NAME = "voice_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 voice_call_screen,voice_call_img,voice_call_name_label,voice_call_answer,voice_call_hangup,voice_call_label + if voice_call_screen == None : + # -------------------------------------------vedio_call screen---------------------------------------------------------- + voice_call_screen = lv.obj() + print("voice_call_screen") + voice_call_screen.add_style(style_screen, lv.PART.MAIN | lv.STATE.DEFAULT) + + voice_call_label = lv.label(voice_call_screen) + voice_call_label.set_pos(0, 10) + voice_call_label.set_text("是否接听语音通话") + voice_call_label.set_size(128, 40) + voice_call_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + voice_call_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + # vedio_call_img = lv.img(voice_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) + + voice_call_name_label = lv.label(voice_call_screen) + voice_call_name_label.set_pos(0, 50) + voice_call_name_label.set_text(" ") + voice_call_name_label.set_size(128, 40) + voice_call_name_label.set_style_text_align(lv.TEXT_ALIGN.CENTER, 0) + voice_call_name_label.add_style(style_font_youyuan_20, lv.PART.MAIN | lv.STATE.DEFAULT) + + voice_call_answer = lv.img(voice_call_screen) + voice_call_answer.set_size(32, 32) + voice_call_answer.add_flag(lv.obj.FLAG.CLICKABLE) + voice_call_answer.set_pos(84, 85) + voice_call_answer.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + voice_call_answer.set_src("U:/static/answer.png") + + voice_call_hangup = lv.img(voice_call_screen) + voice_call_hangup.set_size(32, 32) + voice_call_hangup.add_flag(lv.obj.FLAG.CLICKABLE) + voice_call_hangup.set_pos(11, 85) + voice_call_hangup.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) + voice_call_hangup.set_src("U:/static/hang_up.png") + + voice_call_answer.add_event_cb(lambda e: EventMesh.callback_wrapper(self.answer(e)), + lv.EVENT.SHORT_CLICKED, None) + voice_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), + lv.EVENT.SHORT_CLICKED, None) + self.meta = voice_call_screen + + + EventMesh.publish("set_UI_high_priority", 1) + call_id = str(EventMesh.publish("get_vedio_call_id"))# + + voice_call_name_label.set_text(call_id) + + + def post_processor_after_initialization(self): + global voice_call_screen,voice_call_img,voice_call_name_label,voice_call_answer,voice_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("return_prev_screen") + + 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": "voiceing"}) + + 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(constants.PROTOCOL.RCALLING_SEND,[call_id,meet_id,call_type]) + + EventMesh.publish("return_prev_screen") + + 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 done_return(self): + pass + + + vedio_call_screen = None vedio_call_img = None vedio_call_name_label = None @@ -8298,10 +8811,13 @@ class vedioCallingCallScreen(Screen):#视频通话打入中 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) + lv.EVENT.SHORT_CLICKED, None) vedio_call_hangup.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.meta = vedio_call_screen + + vedio_call_label.set_text("是否接听视频通话") + EventMesh.publish("set_UI_high_priority", 1) call_id = str(EventMesh.publish("get_vedio_call_id"))# @@ -8320,7 +8836,7 @@ class vedioCallingCallScreen(Screen):#视频通话打入中 def get_video_state(self,e): call_state = jrtc.get_state() - print("vedio_incall",call_state) + # print("vedio_incall",call_state) self.timeout+=1 if self.timeout >= 1*60: self.timeout = 0 @@ -8330,14 +8846,14 @@ class vedioCallingCallScreen(Screen):#视频通话打入中 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"}) + EventMesh.publish("return_prev_screen") 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"}) + EventMesh.publish("load_screen", {"screen": "vedioing"}) def Close(self): self.call_timer.stop() @@ -8349,10 +8865,9 @@ class vedioCallingCallScreen(Screen):#视频通话打入中 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"}) + EventMesh.publish("return_prev_screen") def btn1_release(self): pass @@ -8380,11 +8895,17 @@ class vedioCallingCallScreen(Screen):#视频通话打入中 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 +video_outcall_img_test = None +video_outcall_hangup_imgbtnlabel = None class videoOutCallScreen(Screen):#正在拨号中...未打出 NAME = "video_outcall" @@ -8394,32 +8915,26 @@ class videoOutCallScreen(Screen):#正在拨号中...未打出 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 = {} + self.second_count = 0 + 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 + global video_outcall_screen,video_outcall_img,video_outcall_hangup_imgbtnlabel,video_outcall_img_test,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_img_test = lv.img(video_outcall_screen) + ret = jrtc.set_img(video_outcall_img_test) + video_outcall_img_test.align(lv.ALIGN.CENTER, 0, 0) + video_outcall_img_test.set_size(128,128) + video_outcall_img_test.add_flag(lv.obj.FLAG.HIDDEN) video_outcall_name = lv.label(video_outcall_screen) - video_outcall_name.set_pos(0, 15) + video_outcall_name.set_pos(0, 20) video_outcall_name.set_size(LCD_X, 20) video_outcall_name.set_text(" ") video_outcall_name.set_long_mode(lv.label.LONG.DOT) @@ -8439,43 +8954,93 @@ class videoOutCallScreen(Screen):#正在拨号中...未打出 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_imgbtnlabel = lv.label(video_outcall_screen) + video_outcall_hangup_imgbtnlabel.set_pos(18, 50) + video_outcall_hangup_imgbtnlabel.set_text(" ") + video_outcall_hangup_imgbtnlabel.set_size(90, 78) + video_outcall_hangup_imgbtnlabel.add_flag(lv.obj.FLAG.CLICKABLE) + + video_outcall_hangup_imgbtnlabel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), + lv.EVENT.SHORT_CLICKED, None) + video_outcall_hangup_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.hangup(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_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.second_count = 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) + video_outcall_name.set_text("正在通话中...")# + video_outcall_name.set_pos(0, 20) + else: + video_outcall_img_test.add_flag(lv.obj.FLAG.HIDDEN) + video_outcall_call.set_text("正在等待对方接听中...") + video_outcall_call.set_pos(0, 50) + video_outcall_name.set_text(self.meta_info)#名称 + video_outcall_name.set_pos(0, 20) + 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): + 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(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) + # 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"}) + video_outcall_img_test.clear_flag(lv.obj.FLAG.HIDDEN) + video_outcall_name.set_text("正在通话中...")# + video_outcall_name.set_pos(0, 20) + video_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): + 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#秒 + video_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 + video_outcall_call.set_text("{}:{}".format("%02d"%(total_min),"%02d"%(total_sec))) def Close(self): self.timer1.stop() @@ -8551,7 +9116,7 @@ class videolistScreen(Screen): 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_size(LCD_X, 60) 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) @@ -8566,7 +9131,7 @@ class videolistScreen(Screen): 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) + lv.EVENT.SHORT_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) @@ -8628,7 +9193,7 @@ class videolistScreen(Screen): # 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) + # lv.EVENT.SHORT_CLICKED, None) #contact_btn_label_1 = lv.label(contact_btn) self.videolist_detail_listt_dict[i]["contact_btn_label_1"].set_pos(0, 0) @@ -8672,7 +9237,7 @@ class videolistScreen(Screen): #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -8829,6 +9394,8 @@ class UI(object): self.screen = None self.screen_old = None self.screen_prev = None + self.screen_prev_new = None + self.screen_last = None self.screen_list = [] self.lv = lv self.system_sleep_timer = osTimer() @@ -8841,6 +9408,10 @@ class UI(object): self.main_id = 0 self.set_interrup_flag = 0 self.UI_high_priority_flag = 0 #如果=1,则当前ui不被打断 + + self.page_id = ["main_menu"] + self.page_count = 0 + self.level = EventMesh.publish("get_storage_config","brightness_level") print("self.level:{}".format(self.level)) @@ -8888,6 +9459,9 @@ class UI(object): EventMesh.subscribe("publish_message_event_ui",self.publish_message_event_ui) EventMesh.subscribe("return_prev_screen",self.return_prev_screen) + EventMesh.subscribe("del_prev_screen",self.del_prev_screen)#退出当前界面就删除当前界面 进去需要保存当前界面 + EventMesh.subscribe("add_new_screen",self.add_new_screen)#保存新的界面用作返回上一级 + self.system_sleep_timer.start(1000, 1, self.system_sleep_timer_cb) def publish_message_event_ui(self,event,msg): @@ -8906,10 +9480,61 @@ class UI(object): # for scr in self.screen_list: # if scr.handle_message_event(data) == 1 : # break + + def add_new_screen(self, event, msg): + if msg == "main_menu": + if self.page_count > 0: + self.page_id.clear()#清空所有 + self.page_count = 0 + self.page_id = ["main_menu"] + print("add_new_screen ",self.page_id,self.page_count) + else: + if self.page_count == None: + self.page_count = 0 + self.page_id.clear()#清空所有 + self.page_id = ["main_menu"] + last_screen = self.page_id[int(self.page_count)] + print("self.page_id",last_screen,msg,self.page_id,self.page_count) + if last_screen != msg and (msg in last_screen) == False: + self.page_count+=1 + page_pre = "{}".format(msg) + self.page_id.append(page_pre) + + def del_prev_screen(self, event, msg): + if self.page_count > 0: + # print("del_prev_screen self.page_id",self.page_id,self.page_count) + if self.screen.meta_type != "popup": + del self.page_id[int(self.page_count)] + self.page_count-=1 + + if self.page_count == 0: + self.page_id.clear()#清空所有 + self.page_id = ["main_menu"] + + if self.page_count == None: + self.page_count = 0 + self.page_id.clear()#清空所有 + self.page_id = ["main_menu"] + def return_prev_screen(self, event, msg): - if self.screen_prev != None: - # print("return_prev_screen",self.screen_prev) - EventMesh.publish("load_screen", {"screen": self.screen_prev.NAME}) + EventMesh.publish("del_prev_screen")#退出当前界面就删除当前界面 进去需要保存当前界面 + + pre_page = self.page_id[int(self.page_count)] + # print("pre_page:data = {} self.page_count:{}".format(pre_page,self.page_count)) + if len(pre_page) == 0:#预防是空的界面 + self.page_count = 0 + pre_page = "main_menu" + + if self.page_count == None: + self.page_count = 0 + + if self.page_count == 0: + pre_page = "main_menu" + if pre_page != None: + EventMesh.publish("load_screen", {"screen": pre_page}) + # if self.screen_prev != None: + # print("return_prev_screen",self.screen_prev) + # EventMesh.publish("load_screen", {"screen": self.screen_prev.NAME}) def set_interrup_incall(self, event, msg): self.set_interrup_flag = msg @@ -9131,20 +9756,20 @@ class UI(object): if state == 1: screen_NAME = EventMesh.publish("get_screen_NAME") if screen_NAME != None: - if msg["screen"] == "charge_out" or msg["screen"] == "charge_in": - pass + if msg["screen"] == "charge_out" or msg["screen"] == "charge_in": + pass + else: + if screen_NAME == "class_time" :#在上课禁用界面打断其他操作界面 + print("class_time UI") + if msg["screen"] == "countdown_end": + # print("countdown_end UI") + EventMesh.publish("close_count_show_info") + return else: - if screen_NAME == "class_time" :#在上课禁用界面打断其他操作界面 - print("class_time UI") - if msg["screen"] == "countdown_end": - # print("countdown_end UI") - EventMesh.publish("close_count_show_info") - return - else: - if screen_NAME != "dialing_noplay_popup" or screen_NAME != "dial_no_connect_popup" or \ - screen_NAME != "on_call" or screen_NAME != "dialing" or screen_NAME != "incoming_call" or \ - screen_NAME != "charge_in" or screen_NAME != "charge_out": - EventMesh.publish("load_screen", {"screen": "class_time"}) + if screen_NAME != "dialing_noplay_popup" or screen_NAME != "dial_no_connect_popup" or \ + screen_NAME != "on_call" or screen_NAME != "dialing" or screen_NAME != "incoming_call" or \ + screen_NAME != "charge_in" or screen_NAME != "charge_out": + EventMesh.publish("load_screen", {"screen": "class_time"}) if self.screen : @@ -9168,12 +9793,34 @@ class UI(object): self.aud.stop() if self.screen_old != None : + self.screen_old.Close() #先关闭上一次界面 self.lv.img.cache_invalidate_src(None) #清img cache self.lv.img.cache_set_size(16) #开img cache - if self.screen_old.meta_type != "popup": #不是弹窗,保存上一个界面,用来返回 - self.screen_prev = self.screen_old # - self.screen_old = self.screen + # if self.screen_old.meta_type != "popup": #不是弹窗,保存上一个界面,用来返回 + if self.screen.meta_type != "popup": #只要当前界面不是弹窗界面都要保存当前界面 + # if self.screen_prev_new != self.screen:#screen_prev = setiing self.screen = imei self.screen_prev = setiing self.screen_prev_new = imei + # print('self.screen_prev.NAME6:{} self.screen_old:{}'.format(self.screen_old.NAME,self.screen.NAME))#第一种 + # self.screen_prev = self.screen_prev_new + # self.screen_last = self.screen_prev_new + # self.screen_prev_new = self.screen + # print('self.screen_prev.NAME5:{} self.screen_prev_new:{} self.screen_old:{}'.format(self.screen_prev.NAME,self.screen_prev_new.NAME,self.screen_old.NAME)) + # else: + # if self.screen_last != None: + # self.screen_prev = self.screen_last + + # print('self.screen_prev.NAME4:{} self.screen:{} self.screen_old:{}'.format(self.screen_prev.NAME,self.screen.NAME,self.screen_old.NAME)) + # print('self.screen_prev.NAME2:{} self.screen_old:{}'.format(self.screen_prev.NAME,self.screen.NAME)) + # else: + # if self.screen_prev_new != None:#self.screen_prev = imei self.screen_prev = imei + # self.screen_prev = self.screen_prev_new + if self.screen_old.meta_type != "popup": + self.screen_prev = self.screen_old #第二种方式 + screen_new = msg["screen"] + # print('self.screen_prev.NAME:{} self.screen_old:{}'.format(self.screen_prev.NAME,self.screen.NAME)) + if self.screen_prev.NAME != self.screen.NAME: + EventMesh.publish("add_new_screen",screen_new)#保存新的界面用作返回上一级 + if msg.get("meta"): self.screen.meta_info = msg.get("meta") print("load_screen:post_processor_before_initialization") @@ -9186,9 +9833,15 @@ class UI(object): self.lv.scr_load(self.screen.get_meta()) self.screen.post_processor_after_initialization() + self.screen_old = self.screen + # if self.screen_prev == None: + # self.screen_prev = self.screen + # if self.screen_prev_new == None: + # self.screen_prev_new = self.screen self.__lcd_on() mem = gc.mem_free() print('2剩余内存RAM:{} KB'.format(mem / 1024)) + diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py index 56e123de..a1ecfb2b 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_WatchFaceScreen.py @@ -76,7 +76,7 @@ watchface1_res_stat_battery_img.add_style(style_watchface_img_default, lv.PART.M watchface1_res_stat_battery_line = lv.line(Watchface1) watchface1_res_stat_battery_line.set_points(power_line_points,2) -watchface1_res_stat_battery_line.set_pos(int(110),int(6)) +watchface1_res_stat_battery_line.set_pos(int(103),int(6)) watchface1_res_stat_battery_line.set_size(0,10)#高度12 watchface1_res_stat_battery_line.add_style(power_line_red,0) @@ -141,19 +141,19 @@ watchface1_week_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFA #天气 watchface1_weather_span = lv.label(Watchface1) -watchface1_weather_span.set_pos(70, 100) +watchface1_weather_span.set_pos(65, 100) watchface1_weather_span.set_size(58, 24) watchface1_weather_span.set_align(lv.TEXT_ALIGN.LEFT) watchface1_weather_span.set_text("_ _") watchface1_weather_span.add_style(style_font_youyuan_28, lv.PART.MAIN|lv.STATE.DEFAULT) watchface1_weather_img = lv.img(Watchface1) -watchface1_weather_img.set_pos(110, 5) +watchface1_weather_img.set_pos(105, 5) watchface1_weather_img.set_size(0, 0) watchface1_weather_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) watchface1_weather_unit_img = lv.img(Watchface1) -watchface1_weather_unit_img.set_pos(99, 5) +watchface1_weather_unit_img.set_pos(94, 5) watchface1_weather_unit_img.set_size(11, 11) watchface1_weather_unit_img.set_src("U:/static/degree.png") watchface1_weather_unit_img.add_style(style_img, lv.PART.MAIN | lv.STATE.DEFAULT) @@ -239,12 +239,12 @@ class WatchFace1(): # print("weather_type weather_temp",type(weather_type),type(weather_temp),weather_type,weather_temp) if weather_type != None and weather_temp != None: if int(weather_type) > 3: - watchface1_weather_unit_img.set_pos(70+12+10, 102) + watchface1_weather_unit_img.set_pos(60+12+10, 102) - watchface1_weather_span.set_pos(70,92) + watchface1_weather_span.set_pos(60,92) watchface1_weather_span.set_text(str("_ _")) - watchface1_weather_img.set_pos(70+12+8+20, 102) + watchface1_weather_img.set_pos(60+12+8+20, 102) watchface1_weather_img.set_size(11, 10) watchface1_weather_img.set_src("U:/static/04_WM.png") @@ -252,32 +252,32 @@ class WatchFace1(): else: len_data = len(str(weather_temp))*8 - watchface1_weather_unit_img.set_pos(70+len_data+5, 102) - watchface1_weather_span.set_pos(70,100) + watchface1_weather_unit_img.set_pos(60+len_data+5, 102) + watchface1_weather_span.set_pos(60,100) watchface1_weather_span.set_text(str(weather_temp)) - watchface1_weather_img.set_pos(70+len_data+6+15, 103) + watchface1_weather_img.set_pos(60+len_data+6+15, 103) watchface1_weather_img.set_size(11, 10) watchface1_weather_img.set_src("U:/static/%02d_WM.png"%(int(weather_type))) else: - watchface1_weather_unit_img.set_pos(70+12+10, 102) + watchface1_weather_unit_img.set_pos(60+12+10, 102) - watchface1_weather_span.set_pos(70,92) + watchface1_weather_span.set_pos(60,92) watchface1_weather_span.set_text(str("_ _")) - watchface1_weather_img.set_pos(70+12+8+20, 102) + watchface1_weather_img.set_pos(60+12+8+20, 102) watchface1_weather_img.set_size(11, 10) watchface1_weather_img.set_src("U:/static/04_WM.png") else: - watchface1_weather_unit_img.set_pos(70+12+10, 102) + watchface1_weather_unit_img.set_pos(60+12+10, 102) - watchface1_weather_span.set_pos(70,92) + watchface1_weather_span.set_pos(60,92) watchface1_weather_span.set_text(str("_ _")) - watchface1_weather_img.set_pos(70+12+8+20, 102) + watchface1_weather_img.set_pos(60+12+8+20, 102) watchface1_weather_img.set_size(11, 10) watchface1_weather_img.set_src("U:/static/04_WM.png") @@ -309,7 +309,7 @@ class WatchFace1(): def __battery(self, event, msg): #print("__battery_cb:",str(msg)) - print("__battery",msg) + # print("__battery",msg) if msg[0] == '1': watchface1_res_stat_battery_line.set_pos(int(0),int(0)) watchface1_res_stat_battery_line.set_size(0,0) @@ -326,7 +326,6 @@ class WatchFace1(): line_len = 5 if level <= 5: level = 5 - line_points = [ {"x":0, "y":0}, {"x":line_len, "y":0}, diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py index 55d67c61..4e1c9dcf 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_main_menu.py @@ -365,17 +365,17 @@ class MainMenuScreen(Screen): print("MainMenu1:__init__") # MainMenu2_til.add_event_cb(lambda e: EventMesh.callback_wrapper(self.scroll_begin_event(e)),lv.EVENT.ALL,None) #lv_obj_add_event_cb(lv_tabview_get_content(tabview), scroll_begin_event, LV_EVENT_SCROLL_END, NULL); - MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "Phone")), lv.EVENT.CLICKED, None) - MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.CLICKED, None) - MainMenu2_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.CLICKED, None) - MainMenu2_img_add_friends.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "pp_main")), lv.EVENT.CLICKED, None) - MainMenu2_img_camera_video.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "videolist")), lv.EVENT.CLICKED, None) - MainMenu2_img_camera.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera")), lv.EVENT.CLICKED, None) - MainMenu2_img_camera_album.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera_album")), lv.EVENT.CLICKED, None) - MainMenu2_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "contacts")), lv.EVENT.CLICKED, None) - MainMenu2_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.CLICKED, None) - # MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.CLICKED, None) - #MainMenu2_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.CLICKED, None) + MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "Phone")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_setting.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "setting")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_add_friends.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "pp_main")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_camera_video.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "videolist")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_camera.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_camera_album.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera_album")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "contacts")), lv.EVENT.SHORT_CLICKED, None) + MainMenu2_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.SHORT_CLICKED, None) + # MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.SHORT_CLICKED, None) + #MainMenu2_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.SHORT_CLICKED, None) MainMenu2_img_phone.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "Phone")), lv.EVENT.PRESSING, None) MainMenu2_img_toolbox.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "toolbox")), lv.EVENT.PRESSING, None) @@ -386,8 +386,8 @@ class MainMenuScreen(Screen): MainMenu2_img_camera_album.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "camera_album")), lv.EVENT.PRESSING, None) MainMenu2_img_contacts.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "contacts")), lv.EVENT.PRESSING, None) MainMenu2_img_wechat.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "wechat")), lv.EVENT.PRESSING, None) - # MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.CLICKED, None) - #MainMenu2_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.CLICKED, None) + # MainMenu2_img_spo2.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "spo2")), lv.EVENT.SHORT_CLICKED, None) + #MainMenu2_img_sms.add_event_cb(lambda e: EventMesh.callback_wrapper(self.img_cb(e, "popup")), lv.EVENT.SHORT_CLICKED, None) EventMesh.subscribe("watch_top_show", self.watch_top_show) @@ -417,7 +417,7 @@ class MainMenuScreen(Screen): #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 diff --git a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py index 13cd22be..9fb22ddd 100644 --- a/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/K01/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -370,33 +370,33 @@ class SettingScreen(Screen): self.is_sliding = 0 self.is_left_sliding = 0 self.meta = setting_screen - # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None) - # setting_dialswitch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), (lv.EVENT.CLICKED ), None) - # setting_imei_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), (lv.EVENT.CLICKED ), None) - # setting_app_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), (lv.EVENT.CLICKED ), None) - # setting_bright_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "brightness")), (lv.EVENT.CLICKED ), None) - # setting_volume_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), (lv.EVENT.CLICKED ), None) - # setting_restore_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), (lv.EVENT.CLICKED ), None) - # setting_poweroff_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), (lv.EVENT.CLICKED ), None) - # setting_update_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), (lv.EVENT.CLICKED ), None) - # setting_version_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), (lv.EVENT.CLICKED ), None) + # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.SHORT_CLICKED, None) + # setting_dialswitch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_imei_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_app_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_bright_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "brightness")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_volume_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_restore_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_poweroff_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_update_label_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), (lv.EVENT.SHORT_CLICKED ), None) + # setting_version_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), (lv.EVENT.SHORT_CLICKED ), None) # img regist btton - # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), (lv.EVENT.CLICKED ), None) - # setting_dialswitch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), (lv.EVENT.CLICKED ), None) - - setting_imei_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), (lv.EVENT.CLICKED ), None) - setting_app_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), (lv.EVENT.CLICKED ), None) - setting_bright_img_btn_1.add_event_cb(lambda e:EventMesh.callback_wrapper( self.ui_setting_cb(e, "brightness")), (lv.EVENT.CLICKED ), None) - setting_volume_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), (lv.EVENT.CLICKED ), None) - setting_restore_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), (lv.EVENT.CLICKED ), None) - setting_poweroff_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), (lv.EVENT.CLICKED ), None) - setting_restart_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restart")), lv.EVENT.CLICKED, None) - # setting_update_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), (lv.EVENT.CLICKED ), None) - setting_version_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), (lv.EVENT.CLICKED ), None) - setting_dialswitch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), lv.EVENT.CLICKED, None) - - # # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) + # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), (lv.EVENT.SHORT_CLICKED ), None) + # setting_dialswitch_img.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), (lv.EVENT.SHORT_CLICKED ), None) + + setting_imei_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), (lv.EVENT.SHORT_CLICKED ), None) + setting_app_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), (lv.EVENT.SHORT_CLICKED ), None) + setting_bright_img_btn_1.add_event_cb(lambda e:EventMesh.callback_wrapper( self.ui_setting_cb(e, "brightness")), (lv.EVENT.SHORT_CLICKED ), None) + setting_volume_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "totalvolume")), (lv.EVENT.SHORT_CLICKED ), None) + setting_restore_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restore")), (lv.EVENT.SHORT_CLICKED ), None) + setting_poweroff_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "poweroff")), (lv.EVENT.SHORT_CLICKED ), None) + setting_restart_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "restart")), lv.EVENT.SHORT_CLICKED, None) + # setting_update_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "update")), (lv.EVENT.SHORT_CLICKED ), None) + setting_version_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), (lv.EVENT.SHORT_CLICKED ), None) + setting_dialswitch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), lv.EVENT.SHORT_CLICKED, None) + + # # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.SHORT_CLICKED, None) # setting_imei_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), lv.EVENT.PRESSING, None) # setting_app_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), lv.EVENT.PRESSING, None) # setting_bright_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "brightness")), lv.EVENT.PRESSING, None) @@ -407,9 +407,9 @@ class SettingScreen(Screen): # setting_version_label.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "version")), lv.EVENT.PRESSING, None) # img regist btton - # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.CLICKED, None) + # setting_language.add_event_cb(lambda e: self.load_screen(e, {"screen": "language"}), lv.EVENT.SHORT_CLICKED, None) setting_dialswitch_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "dialswitch")), lv.EVENT.PRESSING, None) - # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.CLICKED, None) + # setting_themeswitch.add_event_cb(lambda e: self.load_screen(e, {"screen": "themeswitch"}), lv.EVENT.SHORT_CLICKED, None) setting_imei_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "imei")), lv.EVENT.PRESSING, None) setting_app_img_btn_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.ui_setting_cb(e, "app")), lv.EVENT.PRESSING, None) setting_bright_img_btn_1.add_event_cb(lambda e:EventMesh.callback_wrapper( self.ui_setting_cb(e, "brightness")), lv.EVENT.PRESSING, None) @@ -439,7 +439,7 @@ class SettingScreen(Screen): #print("PRESSING") self.is_sliding += 1 - elif code == lv.EVENT.CLICKED: + 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:#如果是在滑动中则不需要点击事件 @@ -450,7 +450,8 @@ class SettingScreen(Screen): self.is_sliding =0 def done_return(self): - EventMesh.publish("load_screen", {"screen": "main_menu"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "main_menu"}) def btn1_release(self): EventMesh.publish("return_setiing") @@ -946,18 +947,20 @@ class RestoreScreen(Screen): def __init__(self): super().__init__() self.meta = restore_screen - restore_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.CLICKED, None) - restore_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.CLICKED, None) + restore_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.SHORT_CLICKED, None) + restore_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.SHORT_CLICKED, None) def confirm(self, e): EventMesh.publish("load_screen", {"screen": "restore_confirm"}) def concel(self, e): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1101,8 +1104,8 @@ class RestartScreen(Screen): super().__init__() self.meta = restart_screen self.old_x = 0 - # restart_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.CLICKED, None) - # restart_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.CLICKED, None) + # restart_confirm.add_event_cb(lambda e: EventMesh.callback_wrapper(self.confirm(e)),lv.EVENT.SHORT_CLICKED, None) + # restart_cancel.add_event_cb(lambda e: EventMesh.callback_wrapper(self.concel(e)),lv.EVENT.SHORT_CLICKED, None) screen_slider_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e)), lv.EVENT.VALUE_CHANGED, None) screen_slider_1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.save_choice(e)), lv.EVENT.RELEASED, None) @@ -1157,7 +1160,8 @@ class RestartScreen(Screen): EventMesh.publish("load_screen", {"screen": "setting"}) def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1172,7 +1176,7 @@ class UpdateScreen(Screen): def __init__(self): super().__init__() self.meta = update_screen - update_return.add_event_cb(lambda e: EventMesh.callback_wrapper(self.back(e)),lv.EVENT.CLICKED, None) + update_return.add_event_cb(lambda e: EventMesh.callback_wrapper(self.back(e)),lv.EVENT.SHORT_CLICKED, None) def back(self,e): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1214,7 +1218,8 @@ class VersionScreen(Screen): EventMesh.publish("load_screen", {"screen": "factorymode"}) def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1380,7 +1385,8 @@ class PoweroffScreen(Screen): pass def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def confirm(self, e): EventMesh.publish("load_screen", {"screen": "poweroff_comfirm"}) @@ -1415,6 +1421,7 @@ class PoweroffConfirmScreen(Screen): self.meta = poweroff_confirm_screen self.timer = osTimer() self.aud = audio.Audio(0) + self.meta_type = "popup" def initialization(self): @@ -1465,6 +1472,7 @@ class PowerOnScreen(Screen): self.timer1 = osTimer() self.timer2 = osTimer() self.aud = audio.Audio(0) + self.meta_type = "popup" self.aud.set_pa(Pin.GPIO29) self.volum_size = 8 check_volum = EventMesh.publish("get_storage_config","volum") @@ -1581,7 +1589,7 @@ class DialswitchScreen(Screen): self.read_data = {} self.watchface_style_num = "Watchface1" dialswitch_img1.add_event_cb(lambda e: EventMesh.callback_wrapper(self.watchface01(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.dial_num = 1 self.move = 0 self.timer= osTimer() @@ -1604,7 +1612,7 @@ class DialswitchScreen(Screen): def watchface01(self,e): code = e.get_code() - # if code == lv.EVENT.CLICKED: + # if code == lv.EVENT.SHORT_CLICKED: # self.timer.start(50,0,self.enter_main_show) self.enter_main_show(0) @@ -1616,7 +1624,8 @@ class DialswitchScreen(Screen): def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def done_left_to_right(self):#右滑 pass @@ -1712,7 +1721,8 @@ class ImeiScreen(Screen): imei_label.set_text(imei) def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1733,7 +1743,8 @@ class AppScreen(Screen): app_label.set_text(imei) def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1838,15 +1849,15 @@ class BrightnessScreen(Screen): self.read_data = {} self.meta = brightness_screen brightness_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) brightness_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) brightness_time_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_time_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) brightness_time_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_time_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) def initialization(self): self.level = EventMesh.publish("get_brightness_level") self.time = EventMesh.publish("get_brightness_time") @@ -1891,7 +1902,8 @@ class BrightnessScreen(Screen): def done_return(self): - EventMesh.publish("load_screen", {"screen": "setting"}) + EventMesh.publish("return_prev_screen") + # EventMesh.publish("load_screen", {"screen": "setting"}) def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1907,9 +1919,9 @@ class VolumeScreen(Screen): def __init__(self): super().__init__() self.meta = volume_screen - volume_phone_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "phonering"})), lv.EVENT.CLICKED, None) - volume_message_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "msgvolume"})), lv.EVENT.CLICKED, None) - volume_alarm_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "alarmvolume"})), lv.EVENT.CLICKED, None) + volume_phone_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "phonering"})), lv.EVENT.SHORT_CLICKED, None) + volume_message_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "msgvolume"})), lv.EVENT.SHORT_CLICKED, None) + volume_alarm_btn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.load_screen(e, {"screen": "alarmvolume"})), lv.EVENT.SHORT_CLICKED, None) def done_return(self): EventMesh.publish("load_screen", {"screen": "setting"}) @@ -1930,9 +1942,9 @@ class PhoneringScreen(Screen): self.level = 2 self.meta = phonering_screen phonering_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phonering_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) phonering_add_imgbtn.set_ext_click_area(20) phonering_reduce_imgbtn.set_ext_click_area(20) @@ -1977,9 +1989,9 @@ class AlarmvolumeScreen(Screen): self.level = 2 self.meta = alarmvolume_screen alarmvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) alarmvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) def add_level(self, e): EventMesh.publish("push_add_alarmvolume_level") @@ -2017,9 +2029,9 @@ class MsgvolumeScreen(Screen): self.level = 2 self.meta = msgvolume_screen msgvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) msgvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_level(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) def add_level(self, e): EventMesh.publish("push_add_msgvolume_level") @@ -2102,9 +2114,9 @@ class totalvolumeScreen(Screen): super().__init__() self.meta = volume_adjust_screen totalvolume_add_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.add_volum_size(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) totalvolume_reduce_imgbtn.add_event_cb(lambda e: EventMesh.callback_wrapper(self.reduce_volum_size(e)), - lv.EVENT.CLICKED, None) + lv.EVENT.SHORT_CLICKED, None) self.read_data = {} self.volum_size = 8 self.aud = audio.Audio(0) @@ -2146,7 +2158,8 @@ class totalvolumeScreen(Screen): def done_return(self): self.aud.stop() - EventMesh.publish("load_screen", {"screen": "setting"}) + + EventMesh.publish("return_prev_screen") def btn1_release(self): EventMesh.publish("load_screen", {"screen": "setting"}) diff --git a/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/DBG.7z b/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/DBG.7z index bbe1f4a2..ea1414fe 100644 Binary files a/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/DBG.7z and b/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/images/DBG.7z differ diff --git a/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/libHeliosAPI.lib b/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/libHeliosAPI.lib index 714d0697..73c5340f 100644 Binary files a/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/libHeliosAPI.lib and b/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/libHeliosAPI.lib differ diff --git a/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/ql_common_api.lib b/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/ql_common_api.lib index c0f815c0..f5bf2c88 100644 Binary files a/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/ql_common_api.lib and b/2.sdk/project/K01/sdk/system/platform/ASR_1606/boards/EG810MCN_GA_VOLTE/libraries/ql_common_api.lib differ diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py index 22814c3e..afdbf34c 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/alarm.py @@ -806,6 +806,7 @@ class PopupAlarmScreen(Screen): self.timer = osTimer() self.aud = audio.Audio(0) self.alarm_count = 0 + self.meta_type = "popup" def initialization(self): self.alarm_count = 0 diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py index 5a5ffc15..ec2750e1 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui.py @@ -996,6 +996,9 @@ class DialingScreen(Screen): self.read_call_log = {} self.number_tmp = {} self.CALL_LOG_MAX = CALL_LOG_MAX + self.meta_type = "popup" + + def initialization(self): EventMesh.publish("set_UI_high_priority", 1) global dialing_screen,dialing_img,dialing_name ,hangup_imgbtn @@ -2859,7 +2862,7 @@ class IncomingCallScreen(Screen): self.pro_state = 0 self.meta = None - + self.meta_type = "popup" self.call_log = {} self.call_log_value = {} self.read_call_log = {} @@ -3117,6 +3120,7 @@ class OnCallScreen(Screen): self.phone_list = [] self.button = 0 self.mute_btn = 0 + self.meta_type = "popup" def initialization(self): EventMesh.publish("set_UI_high_priority", 1) @@ -5341,6 +5345,7 @@ class CountdownEndScreen(Screen): self.FIND_timer=osTimer() self.aud = audio.Audio(0) self.FIND_timer_count = 0 + self.meta_type = "popup" def initialization(self): global countdown_end_screen ,countdown_end_img ,countdown_end_label @@ -5713,7 +5718,7 @@ class UIFINDScreen(Screen): # self.aud.setVolume(self.volum_size) self.FIND_timer = osTimer() self.FIND_timer_count = 0 - + self.meta_type = "popup" self.meta = None def initialization(self): @@ -5792,6 +5797,7 @@ class LowPowerScreen(Screen): def __init__(self): super().__init__() self.meta = None + self.meta_type = "popup" def initialization(self): global Lowpower_screen ,Lowpower_screen_img @@ -5840,6 +5846,7 @@ class LowOnePowerScreen(Screen): #0%的电池电量 super().__init__() self.meta = None self.timer = osTimer() + self.meta_type = "popup" def initialization(self): global LowOnePower_screen ,LowOnePower_screen_img ,LowOnePower_screen_label2,LowOnePower_screen_label1 @@ -6128,6 +6135,7 @@ class SystemInitScreen(Screen): self.meta = None self.system_init_timer=osTimer() self.system_init_timer_count = 0 + self.meta_type = "popup" def initialization(self): global system_init_screen ,system_init_label @@ -6426,6 +6434,7 @@ class classMgrPopupScreen(Screen):#上课禁用时间界面 super().__init__() self.meta = None self.timer = osTimer() + self.meta_type = "popup" def initialization(self): global class_mgr_popup_screen ,class_mgr_popup_label ,class_mgr_popup_time1_text if class_mgr_popup_screen == None: diff --git a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py index 2c0d6dee..cd4b2892 100644 --- a/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py +++ b/2.sdk/project/K5/sdk/services/microPython/ports/quectel/core/ui_setting.py @@ -1046,6 +1046,7 @@ class PowerOnScreen(Screen): self.timer = osTimer() self.aud = audio.Audio(0) self.aud.set_pa(Pin.GPIO29) + self.meta_type = "popup" self.volum_size = 8 check_volum = EventMesh.publish("get_storage_config","volum") if check_volum != None: @@ -1106,6 +1107,7 @@ class PoweroffConfirmScreen(Screen): self.meta = poweroff_confirm_screen self.timer = osTimer() self.count = 0 + self.meta_type = "popup" def initialization(self): step = EventMesh.publish("get_old_step_value")