| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "stm32f10x.h"
- #include <stdio.h>
- #include <stdarg.h>
- #include <string.h>
- #include <stdlib.h>
- #include "Tuoreniot.h"
- #include "mbedtls_util.h"
- #include "Log_Module.h"
- #include "At_Module.h"
- #include "Common_Util.h"
- #include "ec800m.h"
- #include "cJSON.h"
- unsigned char key[17]="tuorenzhinenghua";
- /**
- *
- *注册参数信息打包
- */
- void packRegistParams(uint8_t * pack_data, uint16_t * pack_data_length, struct Regist_Params_Struct registParams)
- {
- sprintf((char *)(pack_data + 2), "{\"platform\":\"%s\",\"connectionType\":\"%s\",\"deviceId\":\"%s\"}",
- registParams.platform, registParams.networkProtocol, registParams.deviceId); // 拼接AT指令
- Log_Printf_Debug("%s\r\n", (char *)(pack_data + 2));
-
- uint16_t datalen = utils_aes128_ECB_base64_enc_with_length((char *)key, (pack_data + 2));
-
- pack_data[0] = datalen>>8;//头2个字节赋值数据长度
- pack_data[1] = datalen;
- * pack_data_length = datalen + 2;
- }
- /**
- *
- *注册数据解密
- */
- uint8_t analysisRegistData(uint8_t * regist_data, uint16_t regist_data_length, struct Regist_Result_Struct * registResult)
- {
- Log_Printf_Debug("regist_data: \r\n");
- Log_SendHex(regist_data, regist_data_length);
- Log_Printf_Debug("\r\n");
- uint8_t result;
- utils_aes128_ECB_base64_dec((char *)key,regist_data,regist_data_length);
- Log_Printf_Debug("解密数据(%d):%s\r\n", regist_data_length, (char *)regist_data);
- cJSON *json = cJSON_Parse((char *)regist_data);
- if(!json)
- {
- Log_Printf_Debug("json parse error,%s\r\n",cJSON_GetErrorPtr());
- result = 0;
- }
- else if(cJSON_GetObjectItem(json, "code")->valueint == 200)
- {
- registResult->version = 1;
- registResult->userId = 1000;
- strcpy(registResult->networkProtocol, "CoAP");
- strcpy(registResult->platform, "aliyun");
- registResult->code = cJSON_GetObjectItem(json, "code")->valueint;
- strcpy(registResult->deviceSecret, cJSON_GetObjectItem(json, "deviceSecret")->valuestring);
- strcpy(registResult->productId, cJSON_GetObjectItem(json, "productKey")->valuestring);
- strcpy(registResult->deviceId, cJSON_GetObjectItem(json, "deviceName")->valuestring);
- strcpy(registResult->remoteAddress, cJSON_GetObjectItem(json, "address")->valuestring);
- registResult->remotePort = atoi(cJSON_GetObjectItem(json, "port")->valuestring);
- result = 1;
- }
- else
- {
- result = 0;
- }
- cJSON_Delete(json);
- return result;
- }
- void printf_regist_param_struct(struct Regist_Params_Struct regist_params_struct)
- {
- Log_Printf("------print regist params start------\r\n");
- Log_Printf("version=%d\r\n", regist_params_struct.version);
- Log_Printf("networkType=%s\r\n", regist_params_struct.networkType);
- Log_Printf("networkProtocol=%s\r\n", regist_params_struct.networkProtocol);
- Log_Printf("deviceId=%s\r\n", regist_params_struct.deviceId);
- Log_Printf("platform=%s\r\n", regist_params_struct.platform);
- Log_Printf("userId=%d\r\n", regist_params_struct.userId);
- Log_Printf("------print regist params end------\r\n");
- }
- void printf_regist_result_struct(struct Regist_Result_Struct regist_result_struct)
- {
- Log_Printf("------print regist result start------\r\n");
- Log_Printf("code=%d\r\n", regist_result_struct.code);
- Log_Printf("version=%d\r\n", regist_result_struct.version);
- Log_Printf("networkProtocol=%s\r\n", regist_result_struct.networkProtocol);
- Log_Printf("platform=%s\r\n", regist_result_struct.platform);
- Log_Printf("deviceId=%s\r\n", regist_result_struct.deviceId);
- Log_Printf("deviceSecret=%s\r\n", regist_result_struct.deviceSecret);
- Log_Printf("remoteAddress=%s\r\n", regist_result_struct.remoteAddress);
- Log_Printf("remotePort=%d\r\n", regist_result_struct.remotePort);
- Log_Printf("productId=%s\r\n", regist_result_struct.productId);
- Log_Printf("userId=%d\r\n", regist_result_struct.userId);
- Log_Printf("------print regist result end------\r\n");
- }
|