N9移动入库字段修改 2039/2
authorhcj <1224667075@qq.com>
Sat, 2 Aug 2025 06:40:30 +0000 (14:40 +0800)
committerhcj <1224667075@qq.com>
Sat, 2 Aug 2025 06:40:30 +0000 (14:40 +0800)
cat1modem/src/N9/china_mobile_dmp.py

index 3db77ed..8128328 100644 (file)
@@ -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:
             #触发异常重试进制