From: p15692025051 <846603105@qq.com> Date: Mon, 11 Dec 2023 01:41:25 +0000 (+0800) Subject: D10拦截陌生人 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=81341004180a6fb49b96850bd670c2181eaf5cdf;p=mirrors%2FASR1603_G5.git D10拦截陌生人 --- 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 50ee6317..5e2b1e89 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 @@ -188,6 +188,7 @@ def main_init(): pcr.add_support(protocol.bloodglucose_ProtoCol()) pcr.add_support(protocol.REMIND_CHDRINK_ProtoCol()) pcr.add_support(protocol.REMIND_CHMEDICINE2_ProtoCol()) + pcr.add_support(protocol.WLKEY_ProtoCol()) pcr.add_support(protocol.REMIND_CH_WAKEUP_ProtoCol()) pcr.add_support(protocol.REMIND_CH_SLEEP_ProtoCol()) pcr.add_support(protocol.REMIND_CH_HOME_ProtoCol()) diff --git a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py index ccd555d5..6f800ab7 100644 --- a/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py +++ b/2.sdk/project/D10/sdk/services/microPython/ports/quectel/core/mgr.py @@ -629,7 +629,9 @@ class sosInfoCallManager(Abstract): elif num == 3: EventMesh.debug_log("phone 6") EventMesh.publish("set_callnumer_cb",number[0]) - +WL_timer = osTimer() +def WL_timer_cb(*args): + voiceCall.callAnswer() def voice_callback(args): EventMesh.debug_log('voicecall iinfo:{}'.format(args)) if args[0] == 10: @@ -646,6 +648,27 @@ def voice_callback(args): if b == True and size_len > 11: tmp = tmp[size_len-11:] + WLKEY = EventMesh.publish("get_storage_config","WLKEY") + if WLKEY == "1" or WLKEY == "2":#开启了白名单 + on_list_flag = 0 + phonebook = EventMesh.publish("get_phonebook_list") + phonebook_list = phonebook[1] + EventMesh.debug_log("voice_callback:phonebook_list{}".format(phonebook_list)) + try: + for value in phonebook_list.values(): + if value == args[6]: + on_list_flag = 1 + break + except Exception as e: + usys.print_exception(e) + EventMesh.debug_log("voice_callback:on_list_flag{}".format(on_list_flag)) + if on_list_flag == 1:#在白名单里 + if WLKEY == "2": + WL_timer.start(30000, 0, WL_timer_cb) + else: + EventMesh.debug_log("voice_callback:不在白名单中,挂断") + voiceCall.callEnd() + return EventMesh.publish("set_call_state",2) EventMesh.publish("dialin_call_event")#电话拨进响铃 # EventMesh.publish("load_screen", {"screen": "incoming_call","meta":str(tmp)}) 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 74f120fa..b854cc70 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 @@ -1694,28 +1694,7 @@ class Time_ProtoCol(ProtoCol): #EventMesh.publish(constants.PROTOCOL.TIME_SEND) -#拒接模式来电 -class WLKEY_ProtoCol(ProtoCol): - """""" - TYPE = "WLKEY" - def send(self, event, msg): - # [XT*334588000000156*0005*WLKEY] - send_data = self.PID+"*%s*0005*WLKEY"%(self.imei) - MD5_SIGN = self.pack_MD5_head(send_data) - data = "[%s%s]"%(str(MD5_SIGN),send_data) - # EventMesh.debug_log("WLKEY:data:%s"%(data)) - # EventMesh.debug_log("WLKEY!!!!!!!!!!!!!") - # 通过socket发送到服务器端 - EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND,data) - def recv(self, event, msg): - """ - @param event: - @param msg: 接收到的下行数据 - """ - # b'[SZKW*867387060319166*000A*KEYBRD]' - # EventMesh.debug_log("WLKEY!!!!!!!!!!!!!",msg) - EventMesh.publish(constants.PROTOCOL.WLKEY_SEND) #免打扰 class SILENCETIME2_ProtoCol(ProtoCol): @@ -2589,6 +2568,37 @@ class REMIND_CH_REST_ProtoCol(ProtoCol):#该休息了 +class WLKEY_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 = "WLKEY" + + def send(self, event, msg): + send_data = self.PID+"*%s*00006*WLKEY"%(self.imei) + MD5_SIGN = self.pack_MD5_head(send_data) + data = "[%s%s]"%(str(MD5_SIGN),send_data) + #Wechat_log("POWEROFF_ProtoCol:send:%s"%(data)) + # 通过socket发送到服务器端 + EventMesh.publish(constants.EVENT.CHANNEL_SOCKET_SEND, data) + + def recv(self, event, msg): + + 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 ProtoColResolver(object): def __init__(self):