self.software_version = ""
self.deletSmsTimer = osTimer()
+ self.volte_switch = 1 #默认是开启VOLTE通话功能
eventMesh.subscribe("set_dmp_change_mode",self.set_dmp_change_mode)
eventMesh.subscribe("get_dmp_change_mode",self.get_dmp_change_mode)
eventMesh.subscribe("delete_sms_event",self.delete_sms_event)
eventMesh.subscribe("get_factory_status",self.get_factory_status)
eventMesh.subscribe("set_factory_status",self.set_factory_status)
eventMesh.subscribe("send_dmp_cm_address_toBLE",self.send_dmp_cm_address_toBLE)
+ eventMesh.subscribe("set_volte_switch",self.set_volte_switch)
+ eventMesh.subscribe("get_volte_switch",self.get_volte_switch)
eventMesh.publish("delete_sms_event")
self.reply_cmd('00',"pyVer:{}@modemVer:{}".format(PROJECT_VERSION,modem_ver))
elif cmd == "01":
# UDP_CMD_DIAL_NUMB
- ret = voiceCall.callStart(str(parm))
- print("ret={} {} {}".format(ret,cmd,parm))
+ if eventMesh.publish("get_volte_switch") == 1: #只有BLE开了VOLTE才允许打电话
+ ret = voiceCall.callStart(str(parm))
+ print("ret={} {} {}".format(ret,cmd,parm))
elif cmd == "02":
print(cmd)
# UDP_CMD_HUNGUP
eventMesh.publish("set_dmp_cm_address",str(parm))
elif cmd == "19": #DTMF功能
voiceCall.startDtmf(str(parm),100) #100ms 持续时间 100-1000
+ elif cmd == "1A":
+ eventMesh.publish("set_volte_switch",int(parm))
- def telecom_recv_cmd(self,cmd,parm): #电信入库
+ def telecom_recv_cmd(self,cmd,parm):
if cmd == "10":
self.software_version = str(parm)
eventMesh.publish("set_dev_version",self.software_version)
pass
pass
+
+ def set_volte_switch(self,event,msg): #设置VOLTE开关
+ self.volte_switch = int(msg)
+
+
+ def get_volte_switch(self,event,msg): #获取VOLTE开关
+
+ return self.volte_switch
+
+
def china_mobile_recv_cmd(self,cmd,parm): #移动入库相关指令
if cmd == "10":
self.software_version = str(parm)
def voice_callback(args):
if args[0] == 10:
print('voicecall incoming call, PhoneNO: ', args[6])
- # gpioWakeBT.write(1)
- cat1service.notifyIncomingcall(args[6])
+ if eventMesh.publish("get_volte_switch") == 0: #关闭VOLTE功能
+ print('voicecall auto end:')
+ voiceCall.callEnd()
+ else:
+ # gpioWakeBT.write(1)
+ cat1service.notifyIncomingcall(args[6])
elif args[0] == 11:
- print('voicecall connected, PhoneNO: ', args[6])
- cat1service.notifyConnecteCall()
+ if eventMesh.publish("get_volte_switch") == 1: #开启VOLTE功能
+ print('voicecall connected, PhoneNO: ', args[6])
+ cat1service.notifyConnecteCall()
elif args[0] == 12:
print('voicecall disconnect')
- cat1service.notifyDisconnectCall()
+ if eventMesh.publish("get_volte_switch") == 1: #开启VOLTE功能
+ cat1service.notifyDisconnectCall()
elif args[0] == 13:
print('voicecall is waiting, PhoneNO: ', args[6])
elif args[0] == 14:
screenSize = "1.43"
# base64_screenSize = sha256_encode(key,screenSize)
- wearingStatus ="***"
+ wearingStatus ="-1"
# base64_wearingStatus = sha256_encode(key,wearingStatus)
networkStatus ="1"#1:连接;0:未连接;-1:不支持
+
+ routerMac = "***"
+
+ wifiMac = "***"
# base64_networkStatus = sha256_encode(key,networkStatus)
- encyr_data = [MAC,RAM,ROM,CPU,sysVersion,softwareVer,softwareName,volte,netType,resolution,screenSize,wearingStatus,networkStatus]
+ encyr_data = [MAC,RAM,ROM,CPU,sysVersion,softwareVer,softwareName,volte,netType,resolution,screenSize,wearingStatus,networkStatus,routerMac,wifiMac]
print(len(encyr_data))
encyr_new_data=[]
for i in range(len(encyr_data)):
"resolution":"{}".format(encyr_new_data[9]),#屏幕分辨率466*466
"screenSize":"{}".format(encyr_new_data[10]),#屏幕尺寸默认1.43
"wearingStatus":"{}".format(encyr_new_data[11]),#佩戴状态不支持
- "networkStatus":"{}".format(encyr_new_data[12])#网络状态
+ "networkStatus":"{}".format(encyr_new_data[12]),#网络状态
+ "routerMac":"{}".format(encyr_new_data[13]), #路由mac地址 ***
+ "mac":"{}".format(encyr_new_data[14]) #wifi mac
}
json_data = ujson.dumps(deviceInfo_tmp)#需要转义的字符串
response = request.post(url, data=ujson.dumps(send_autoregist),headers =headers_T)
request_result = 1
result_json = ""
-
+ print("response success:response.status_code{}\r\n".format(response.status_code))
if response.status_code == 200:
dev_autoregist_result = 1
content = response.content
if "rspCode" in result_json:
rspCode = result_json["rspCode"]
rspMsg = result_json["rspMsg"]
+ print("response success:rspCode{} {}\r\n".format(rspMsg,rspCode))
if rspCode == "0000" or rspMsg == "成功":
dev_autoregist_result = 1
else:
dev_autoregist_result = 0
else:
dev_autoregist_result = 0
- return dev_autoregist_result
print("response success:\r\n")
+ return dev_autoregist_result
+
except Exception as e:
print("response:{}".format(e))
request_result = 0
{ConfigDataType::DATATYPE_BOOL, "dnotdisturb", "false" },// CONFIGMODEL_ITEM_DNOTDISTURB //勿扰模式默认关闭
{ConfigDataType::DATATYPE_INT, "system_volume", "100" },// CONFIGMODEL_ITEM_SYSTEM_VOLUME //
{ConfigDataType::DATATYPE_INT, "call_volume", "100" },// CONFIGMODEL_ITEM_CALL_VOLUME //
- {ConfigDataType::DATATYPE_BOOL, "voltecall", "false" },// CONFIGMODEL_ITEM_VOLTE_CALL
+ {ConfigDataType::DATATYPE_BOOL, "voltecall", "true" },// CONFIGMODEL_ITEM_VOLTE_CALL #默认是开启VOLTE
{ConfigDataType::DATATYPE_BOOL, "motion_recognition", "false" },// CONFIGMODEL_ITEM_MOTIONRECOGNITION
{ConfigDataType::DATATYPE_BOOL, "hfp", "false" },// CONFIGMODEL_ITEM_HFP
{ConfigDataType::DATATYPE_BOOL, "a2dp", "false" },// CONFIGMODEL_ITEM_A2DP
#include "ConfigModelC.h"
#include "custom_utils.h"
#include "custom_runtime.h"
-
+#include "cat1_server.h"
#include "kv_store.h"
#include "kvstore_env.h"
#if DEBUG_CONFIGMODEL
void ConfigModel::SetVoLTE_Call(bool state)
{
set_condigData_Bool(CONFIGMODEL_ITEM_VOLTE_CALL,state);
+ send_volte_switch_toCat1();
}
/*
UDP_MSG_SEND_DMP_CM_ADDRESS = 0x18,//用于BLE发送移动入库地址 to CAT1 接收
UDP_MSG_SEND_DTMF_NUMBER = 0x19,//DTMF 功能
+
+ UDP_MSG_SEND_VOLTE_SWITCH = 0x1A,//VOLTE开关
};
/** 0: old format 1字节cmd, 1: new format 2字节cmd */
static uint8_t g_msg_format_type = 0;
}
void send_dtfm_number_toCat1(char ch)//发送dtfm
{
- printf("ch:%s\r\n",&ch);
+ // printf("ch:%s\r\n",&ch);
udp_send_msg_toCat1(UDP_MSG_SEND_DTMF_NUMBER,&ch);
}
+void send_volte_switch_toCat1(void)//发送VOLTE->CAT1
+{
+ bool Cat1_4G = OHOS::ConfigModel::GetInstance()->GetCat1_4Gability();
+ if (Cat1_4G == 0)
+ return;
+
+ bool volte = OHOS::ConfigModel::GetInstance()->GetVoLTE_Call();
+ char send_str[5] = {0};
+ sprintf_s((char *)send_str,5, "%d", volte);
+ udp_send_msg_toCat1(UDP_MSG_SEND_VOLTE_SWITCH,send_str);
+}
+bool get_volte_switch(void)//
+{
+ bool volte = OHOS::ConfigModel::GetInstance()->GetVoLTE_Call();
+ return volte;
+}
+
static int udp_packet_parse(char *rx_buffer, int len)
{
// printf("cmd %x,bufferlen %d , buffer %s \n",cmd,msg_buffer_len,msg_buffer);
switch (cmd) {
case UDP_MSG_COMMING_CALL:
+ if (get_volte_switch() == false) //如果VOLTE开关没有开启则不接CAT1的来电功能
+ break;
index = cat1_handle_call_incomming(msg_buffer);
break;
case UDP_CMD_GET_RECV_NETWORKSTAT:
get_software_version_toCat1();
send_ble_mac_toCat1();
send_dmp_cm_address_toCat1();
+ send_volte_switch_toCat1();
send_dmp_factory_flag();
}
}
void ble_get_cat1_at_msg(char *buffer,uint8_t len);
void send_dtfm_number_toCat1(char ch);//发送dtfm
+void send_volte_switch_toCat1(void); //发送VOLTE开关标识到CAT1
#ifdef __cplusplus
#if __cplusplus