From 3e61608914ab465c349bc9c61a63bb1689e5f7e6 Mon Sep 17 00:00:00 2001 From: hcj <1224667075@qq.com> Date: Sat, 2 Aug 2025 14:40:30 +0800 Subject: [PATCH] =?utf8?q?N9=E7=A7=BB=E5=8A=A8=E5=85=A5=E5=BA=93=E5=AD=97?= =?utf8?q?=E6=AE=B5=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- cat1modem/src/N9/china_mobile_dmp.py | 147 ++++++++++++++++++++------- 1 file changed, 110 insertions(+), 37 deletions(-) diff --git a/cat1modem/src/N9/china_mobile_dmp.py b/cat1modem/src/N9/china_mobile_dmp.py index 3db77ed8f..8128328bd 100644 --- a/cat1modem/src/N9/china_mobile_dmp.py +++ b/cat1modem/src/N9/china_mobile_dmp.py @@ -28,6 +28,8 @@ import modem import base64 import request import ujson +import sim + BLOCK_SIZE = 16 NEED_SAVE_CONFIG_FILE = 0 #是否需要保存上报次数 异常重试次数 时间戳到配置文件 0不保存 1保存 #中国移动入库 @@ -208,12 +210,16 @@ class chinamobile: def first_get_config_json(self):#开机上电获取配置信息 getresult = 0 print("first_get_config_json false",self.__net_connected) - if self.__net_connected != 1:#网络不正常 + network_state = eventMesh.publish("get_network_state") + if network_state != 1:#网络不正常 + print("网络不正常") return getresult url = "https://{}//dm-multi-accept/multi/getMultiTerminalConfig".format(self.address) result_json = self.china_mobile_first_get_config(url) + if result_json == "": - return 0 + print("result_json == NULL") + return 0 # { # "reportTime":1440, # "reportNum":8, @@ -281,17 +287,22 @@ class chinamobile: #########################第二步############自注册上报################### #设备自注册上报 dev_autoregist_result = 0 #默认是1成功 0是失败 - if self.__net_connected != 1:#网络不正常 + network_state = eventMesh.publish("get_network_state") + if network_state != 1:#网络不正常 return dev_autoregist_result #密钥 - key = "f74c005251dc40c4b64a283827da3812" + key = "03816c12b6d24182981325e57670e478" - brand = "{}".format("KUMI")#品牌 + brand = "{}".format("NWO")#品牌 # model = "Watch Soar"#型号 model = "NWO N9"#型号 - appKey = "M100001131"#不需要就填***appKey 厂商标识 + # -*- coding: UTF-8 -*- +#示例 + + + appKey = "M100001188"#不需要就填***appKey 厂商标识 sdkVersion = "***"#非SDK传输 apiVersion = "4.0.1"#接口定义 固定4.0.1 apiType = "I"#非Android @@ -303,37 +314,58 @@ class chinamobile: preField1 = "***"#预留字段1 preField2 = "***"#预留字段2 preField3 = "***"#预留字段3 + + + batteryCapacityCurr="***" + #不需要加密 #||分隔符不能超过11个 否则平台会解析出错 config_data = "{}||{}||{}||{}||{}||{}||{}||{}||{}||{}||{}||{}".format(brand,model,appKey,sdkVersion,apiVersion,apiType,templateId,imei1,imei2,configType,preField1,preField2) #需要加密的数据明文 - if (len(self.mac_data) == 0):#获取失败了 - self.mac_data = "***" + mac_data="***"#eventMesh.publish("get_dev_mac") + + if (len(mac_data) == 0):#获取失败了 + mac_data = "***" + + imsi = sim.getImsi() + print("Get IMSI : {}".format(imsi)) - MAC = self.mac_data + MAC = mac_data # base64_MAC = sha256_encode(key,MAC) - RAM = "32MB" + RAM = "***" # base64_RAM = sha256_encode(key,RAM) - ROM = "144MB" + ROM = "***" # base64_ROM = sha256_encode(key,ROM) - CPU = "YH601S" + CPU = "***" # base64_CPU = sha256_encode(key,CPU) - sysVersion = "OpenHarmony 3.2" + GPU = "***" + + imsi2="***" + + sysVersion = "***" + + board = "***" + # base64_sysVersion = sha256_encode(key,sysVersion) if (len(self.software_version) == 0):#获取失败了 # self.software_version = "Watch Soar V1.0" self.software_version = "NWO N9 V1.0" - softwareVer = self.software_version + softwareVer = "NWO N9 V1.0" # base64_softwareVer = sha256_encode(key,softwareVer) # softwareName ="FD230" - softwareName ="N9" + softwareName ="***" + + sn="***" + + batteryCapacity="***" + phoneNumber="***" # base64_softwareName = sha256_encode(key,softwareName) - volte="0" #0:开;1:关;-1:不支持 + volte="***" #0:开;1:关;-1:不支持 # base64_volte = sha256_encode(key,volte) - netType="4G" + netType="***" # base64_netType = sha256_encode(key,netType) resolution="466*466" @@ -341,16 +373,16 @@ class chinamobile: screenSize = "1.43" # base64_screenSize = sha256_encode(key,screenSize) - wearingStatus ="-1" + wearingStatus ="未佩戴" # base64_wearingStatus = sha256_encode(key,wearingStatus) - networkStatus ="1"#1:连接;0:未连接;-1:不支持 + networkStatus ="***"#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,routerMac,wifiMac] + encyr_data = [MAC,RAM,ROM,CPU,sysVersion,softwareVer,softwareName,volte,netType,resolution,screenSize,wearingStatus,networkStatus,routerMac,wifiMac,imsi,GPU,imsi2,board,sn,batteryCapacity,phoneNumber,batteryCapacityCurr] print(len(encyr_data)) encyr_new_data=[] for i in range(len(encyr_data)): @@ -373,24 +405,63 @@ class chinamobile: # "networkStatus":"{}".format(base64_networkStatus)#网络状态 # } - deviceInfo_tmp = { - "bluetoothMac":"{}".format(encyr_new_data[0]),#mac地址可填可不填 - "ram":"{}".format(encyr_new_data[1]),#ram信息 - "rom":"{}".format(encyr_new_data[2]),#rom信息 - "cpu":"{}".format(encyr_new_data[3]),#cpu信息 - "sysVersion":"{}".format(encyr_new_data[4]),#操作系统版本号 - "softwareVer":"{}".format(encyr_new_data[5]),#固件版本号 - "softwareName":"{}".format(encyr_new_data[6]),#固件名称 - "volte":"{}".format(encyr_new_data[7]),#volte开关 默认是开 - "netType":"{}".format(encyr_new_data[8]),#当前网络类型4G - "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]),#网络状态 - "routerMac":"{}".format(encyr_new_data[13]), #路由mac地址 *** - "mac":"{}".format(encyr_new_data[14]) #wifi mac - } + if configType_data=="keepAlive": + print("keepAlive :") + deviceInfo_tmp = { + "bluetoothMac":"{}".format(encyr_new_data[0]),#mac地址可填可不填 + "ram":"{}".format(encyr_new_data[1]),#ram信息 + "rom":"{}".format(encyr_new_data[2]),#rom信息 + "cpu":"{}".format(encyr_new_data[3]),#cpu信息 + "sysVersion":"{}".format(encyr_new_data[4]),#操作系统版本号 + "softwareVer":"{}".format(encyr_new_data[5]),#固件版本号 + "softwareName":"{}".format(encyr_new_data[6]),#固件名称 + "volte":"{}".format(encyr_new_data[7]),#volte开关 默认是开 + "netType":"{}".format(encyr_new_data[8]),#当前网络类型4G + "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]),#网络状态 + "routerMac":"{}".format(encyr_new_data[13]), #路由mac地址 *** + "mac":"{}".format(encyr_new_data[14]), #wifi mac + "imsi":"{}".format(encyr_new_data[15]), #imsi + "gpu":"{}".format(encyr_new_data[16]), #GPU + "imsi2":"{}".format(encyr_new_data[17]), #imsi2 + "board":"{}".format(encyr_new_data[18]), #board + "sn":"{}".format(encyr_new_data[19]), #board + "batteryCapacity":"{}".format(encyr_new_data[20]), #board + "phoneNumber":"{}".format(encyr_new_data[21]), #board + "batteryCapacityCurr":"{}".format(encyr_new_data[22]), #board + } + else : + deviceInfo_tmp = { + "bluetoothMac":"{}".format(encyr_new_data[0]),#mac地址可填可不填 + "ram":"{}".format(encyr_new_data[1]),#ram信息 + "rom":"{}".format(encyr_new_data[2]),#rom信息 + "cpu":"{}".format(encyr_new_data[3]),#cpu信息 + "sysVersion":"{}".format(encyr_new_data[4]),#操作系统版本号 + "softwareVer":"{}".format(encyr_new_data[5]),#固件版本号 + "softwareName":"{}".format(encyr_new_data[6]),#固件名称 + "volte":"{}".format(encyr_new_data[7]),#volte开关 默认是开 + "netType":"{}".format(encyr_new_data[8]),#当前网络类型4G + "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]),#网络状态 + "routerMac":"{}".format(encyr_new_data[13]), #路由mac地址 *** + "mac":"{}".format(encyr_new_data[14]), #wifi mac + "imsi":"{}".format(encyr_new_data[15]), #imsi + "gpu":"{}".format(encyr_new_data[16]), #GPU + "imsi2":"{}".format(encyr_new_data[17]), #imsi2 + "board":"{}".format(encyr_new_data[18]), #board + "sn":"{}".format(encyr_new_data[19]), #board + "batteryCapacity":"{}".format(encyr_new_data[20]), #board + "phoneNumber":"{}".format(encyr_new_data[21]), #board + + } json_data = ujson.dumps(deviceInfo_tmp)#需要转义的字符串 + + + send_autoregist = { "endpoint":config_data, @@ -631,6 +702,7 @@ class chinamobile: self.config_data["report_Num_old"] = self.report_Num_old self.write_config_msg_file(self.config_data) #设备自注册上报信息 + print("onself_regist_report_cb:self.china_mobile_autoregist_infor") url = "https://{}//dm-multi-accept/multi/acceptMultiTerminalRegInfo".format(self.address)#上报地址 confing_type = "autoRegist"#上报传输配置 result = self.china_mobile_autoregist_infor(url,confing_type) @@ -684,6 +756,7 @@ class chinamobile: url = "https://{}//dm-multi-accept/multi/acceptMultiTerminalHeartbeatInfo".format(self.address)#上报地址 confing_type = "keepAlive"#上报传输配置 + print("heart_report_cb:self.china_mobile_autoregist_infor") result = self.china_mobile_autoregist_infor(url,confing_type) if result != 1: #触发异常重试进制 -- 2.17.1