|
|
@@ -30,14 +30,15 @@
|
|
|
#include "Log_Module.h"
|
|
|
#include "At_Module.h"
|
|
|
#include "Common_Util.h"
|
|
|
+#include "Tuoreniot.h"
|
|
|
static uint8_t mcu_id[8]="8945809";
|
|
|
static uint16_t Version_data = 1032;
|
|
|
static uint8_t regist_result =0;
|
|
|
-static uint8_t register_status;
|
|
|
+static uint8_t register_status;//注册成功,向flash存储标志
|
|
|
|
|
|
|
|
|
|
|
|
-unsigned char key[17]="tuorenzhinenghua";
|
|
|
+//unsigned char key[17]="tuorenzhinenghua";
|
|
|
static Coefficient_Data flashdata;
|
|
|
|
|
|
static uint8_t tcpconnectID = 2;
|
|
|
@@ -75,45 +76,45 @@ flashdata.read_flag=1;
|
|
|
|
|
|
}
|
|
|
|
|
|
-/**
|
|
|
-*
|
|
|
-*注册信息打包
|
|
|
-*/
|
|
|
-enum Result packRegistDataAnd(uint8_t *length){
|
|
|
- enum Result result = Result_None;
|
|
|
- //
|
|
|
-// int i=0;
|
|
|
- int datalen = 0;
|
|
|
- memset(qcciddata,'\0',sizeof(qcciddata));
|
|
|
- memset(recvdata,'\0', sizeof(recvdata));
|
|
|
- char* dataPtr = recvdata+2; //dataPtr指针指向registData第三个字节
|
|
|
- //复制muid,并转化为16进制
|
|
|
- byteToHexStr(mcu_id, dataPtr, sizeof(mcu_id));
|
|
|
- memcpy(dataPtr+strlen(dataPtr),"&",1);
|
|
|
- //获取qccid
|
|
|
- AT_Clear();
|
|
|
- //get_qccid_flag=get_qccid(qcciddata);
|
|
|
-
|
|
|
- result=ec800m.query_qccid_sync(qcciddata);
|
|
|
-
|
|
|
- if(result==Result_Failed)
|
|
|
- {
|
|
|
- return result;
|
|
|
- }
|
|
|
- //获取复制qccid
|
|
|
- memcpy(dataPtr+strlen(dataPtr),qcciddata,31);
|
|
|
- //复制版本号
|
|
|
- snprintf(dataPtr+strlen(dataPtr),10,"&%d.%03d",Version_data/1000,Version_data%1000);
|
|
|
- Log_Printf_Debug("device data:%s,%d\r\n",dataPtr,strlen(dataPtr));//串口打印
|
|
|
- Log_Printf_Debug("regist data:%s\r\n",recvdata+2);
|
|
|
- datalen = utils_aes128_ECB_base64_enc_with_length((char *)key,(uint8_t *)dataPtr);
|
|
|
+///**
|
|
|
+//*
|
|
|
+//*注册信息打包
|
|
|
+//*/
|
|
|
+//enum Result packRegistDataAnd(uint8_t *length){
|
|
|
+// enum Result result = Result_None;
|
|
|
+// //
|
|
|
+//// int i=0;
|
|
|
+// int datalen = 0;
|
|
|
+// memset(qcciddata,'\0',sizeof(qcciddata));
|
|
|
+// memset(recvdata,'\0', sizeof(recvdata));
|
|
|
+// char* dataPtr = recvdata+2; //dataPtr指针指向registData第三个字节
|
|
|
+// //复制muid,并转化为16进制
|
|
|
+// byteToHexStr(mcu_id, dataPtr, sizeof(mcu_id));
|
|
|
+// memcpy(dataPtr+strlen(dataPtr),"&",1);
|
|
|
+// //获取qccid
|
|
|
+// AT_Clear();
|
|
|
+// //get_qccid_flag=get_qccid(qcciddata);
|
|
|
+//
|
|
|
+// result=ec800m.query_qccid_sync(qcciddata);
|
|
|
+//
|
|
|
+// if(result==Result_Failed)
|
|
|
+// {
|
|
|
+// return result;
|
|
|
+// }
|
|
|
+// //获取复制qccid
|
|
|
+// memcpy(dataPtr+strlen(dataPtr),qcciddata,31);
|
|
|
+// //复制版本号
|
|
|
+// snprintf(dataPtr+strlen(dataPtr),10,"&%d.%03d",Version_data/1000,Version_data%1000);
|
|
|
+// Log_Printf_Debug("device data:%s,%d\r\n",dataPtr,strlen(dataPtr));//串口打印
|
|
|
+// Log_Printf_Debug("regist data:%s\r\n",recvdata+2);
|
|
|
+// datalen = utils_aes128_ECB_base64_enc_with_length((char *)key,(uint8_t *)dataPtr);
|
|
|
|
|
|
- recvdata[0] = datalen>>8;//头2个字节赋值数据长度
|
|
|
- recvdata[1] = datalen;
|
|
|
- Log_Printf_Debug("strlendata:%d,datalen=%d\r\n",strlen(dataPtr),datalen);
|
|
|
- *length=datalen+2;
|
|
|
- return Result_Success;
|
|
|
-}
|
|
|
+// recvdata[0] = datalen>>8;//头2个字节赋值数据长度
|
|
|
+// recvdata[1] = datalen;
|
|
|
+// Log_Printf_Debug("strlendata:%d,datalen=%d\r\n",strlen(dataPtr),datalen);
|
|
|
+// *length=datalen+2;
|
|
|
+// return Result_Success;
|
|
|
+//}
|
|
|
/**
|
|
|
*
|
|
|
*注册数据解密
|
|
|
@@ -121,7 +122,7 @@ enum Result packRegistDataAnd(uint8_t *length){
|
|
|
enum Result analysis_recvdata()
|
|
|
{
|
|
|
enum Result result = Result_None;
|
|
|
-
|
|
|
+ unsigned char key[17]="tuorenzhinenghua";
|
|
|
uint16_t recvdata_length=0;
|
|
|
cJSON *json = NULL,*json_productKey = NULL,*json_deviceName = NULL,*json_deviceSecret = NULL;
|
|
|
memset(recvdata, '\0', sizeof(recvdata));
|
|
|
@@ -204,8 +205,17 @@ result=ec800m.query_cgreg_sync(®ist_result,&stat,&lac,&ci);//循
|
|
|
|
|
|
if(result==Result_Success)
|
|
|
{
|
|
|
- result =(enum Result)packRegistDataAnd(&length);//数据打包
|
|
|
+ result=ec800m.query_qccid_sync(qcciddata);
|
|
|
+
|
|
|
+ }
|
|
|
+ if(result==Result_Success)
|
|
|
+ {
|
|
|
+ memset(qcciddata,'\0',sizeof(qcciddata));
|
|
|
+ memset(recvdata,'\0', sizeof(recvdata));
|
|
|
+ length = sizeof(mcu_id);
|
|
|
+ result =(enum Result)packRegistDataAnd(&length,qcciddata,recvdata,mcu_id,Version_data);//数据打包
|
|
|
Log_Printf_Debug("data length=%d\r\n", length);
|
|
|
+ Log_Printf_Debug("recvdata:%s\r\n", recvdata);
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -251,14 +261,18 @@ uint8_t regist_device_sync(void)
|
|
|
{
|
|
|
flashdata.read_flag=0;
|
|
|
uint8_t regist_flag=0;
|
|
|
+ //读取flash
|
|
|
Log_Printf_Debug("读取前read_flag:%d\r\n",flashdata.read_flag);
|
|
|
STMFLASH_Read(FLASH_SAVE_ADDR,(u16*)&flashdata,sizeof(flashdata));//读取flash
|
|
|
delay_ms(10);
|
|
|
+ //已经注册。读取flash成功
|
|
|
if(flashdata.read_flag==1)
|
|
|
{
|
|
|
Log_Printf_Debug("读取flash成功read_flag:%d,\ndeviceSecret:%s,\n productKey:%s,\ndeviceName:%s\r\n",flashdata.read_flag,flashdata.deviceSecret,flashdata.productKey,flashdata.deviceName);
|
|
|
+ register_status=1;
|
|
|
return 1;
|
|
|
}
|
|
|
+ //未注册开始注册流程
|
|
|
regist_flag=regist_Handle();//注册流程
|
|
|
if(regist_flag==0)//注册流程失败不储存flash
|
|
|
{
|
|
|
@@ -267,6 +281,7 @@ uint8_t regist_device_sync(void)
|
|
|
clearflash();
|
|
|
return 0;
|
|
|
}
|
|
|
+ //注册成功向flash储存
|
|
|
if(register_status==1){
|
|
|
storedata();//存储到flash
|
|
|
return 1;
|