Tuoreniot.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #include "stm32f10x.h"
  2. #include <stdio.h>
  3. #include <stdarg.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include "Tuoreniot.h"
  7. #include "mbedtls_util.h"
  8. #include "Log_Module.h"
  9. #include "At_Module.h"
  10. #include "Common_Util.h"
  11. #include "ec800m.h"
  12. unsigned char key[17]="tuorenzhinenghua";
  13. /**
  14. *
  15. *注册信息打包
  16. */
  17. enum Result packRegistDataAnd(uint8_t *length,char * qcciddata,char *recvdata,uint8_t *mcu_id,uint16_t Version_data){
  18. enum Result result = Result_None;
  19. //
  20. // int i=0;
  21. int datalen = 0;
  22. char* dataPtr = recvdata+2; //dataPtr指针指向registData第三个字节
  23. //复制muid,并转化为16进制
  24. Log_Printf_Debug("mcu_id:%s,%d\r\n",mcu_id,sizeof(mcu_id));//串口打印
  25. byteToHexStr(mcu_id, dataPtr, (int)length);
  26. Log_Printf_Debug("device data:%s,%d\r\n",dataPtr,strlen(dataPtr));//串口打印
  27. memcpy(dataPtr+strlen(dataPtr),"&",1);
  28. //获取qccid
  29. AT_Clear();
  30. //get_qccid_flag=get_qccid(qcciddata);
  31. // result=ec800m.query_qccid_sync(qcciddata);
  32. //获取复制qccid
  33. memcpy(dataPtr+strlen(dataPtr),qcciddata,31);
  34. //复制版本号
  35. snprintf(dataPtr+strlen(dataPtr),10,"&%d.%03d",Version_data/1000,Version_data%1000);
  36. Log_Printf_Debug("device data:%s,%d\r\n",dataPtr,strlen(dataPtr));//串口打印
  37. Log_Printf_Debug("regist data:%s\r\n",recvdata+2);
  38. datalen = utils_aes128_ECB_base64_enc_with_length((char *)key,(uint8_t *)dataPtr);
  39. recvdata[0] = datalen>>8;//头2个字节赋值数据长度
  40. recvdata[1] = datalen;
  41. Log_Printf_Debug("strlendata:%d,datalen=%d\r\n",strlen(dataPtr),datalen);
  42. *length=datalen+2;
  43. return Result_Success;
  44. }