CMD0xE3_Request_GetDebugData.c 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <string.h>
  2. #include "CommandsDefine.h"
  3. #include "ProjectConfig.h"
  4. #include "DebugDataDefine.h"
  5. #include "AnalogChannelCtrl_2d5g_base.h"
  6. #include "Helper.h"
  7. #include "usart.h"
  8. //////////////////////////////////////////////////////////////////////////////
  9. // 2203/4/X GHz_ljw 合并版
  10. //////////////////////////////////////////////////////////////////////////////
  11. void CMD0xE3_Request_GetDebugData_process(u8 *pData,u16 dataLen,u8 bIsContentBitInverted_Recv,u8 bIsContentBitInverted_SendBack)
  12. {
  13. #ifdef RUNNING_WHERE_AT_BOOT
  14. Command_SendbackErrorMessage(Error0x02_CannotRunAtBoot,1);
  15. #else
  16. u8 bDataOK=1;
  17. u8 validDataLength=dataLen;
  18. if (bIsContentBitInverted_Recv)
  19. {
  20. validDataLength=dataLen/2;
  21. if (!Helper_CheckInvertBytesIsRegist(pData,dataLen))
  22. bDataOK=0;
  23. }
  24. if (validDataLength<2)
  25. bDataOK=0;
  26. if (!bDataOK)
  27. {
  28. Command_SendbackErrorMessage(Error0x05_CMD_ParaLentghError,1);
  29. return;
  30. }
  31. u8 dataBytes=2;
  32. switch(pData[0])
  33. {
  34. case DebugDataType_AnalogChannelSetData:
  35. dataBytes=41;
  36. break;
  37. case DebugDataType_CommunicateTimesInfo:
  38. dataBytes=sizeof(u32)*2;
  39. break;
  40. case DebugDataType_Analog4094Word:
  41. dataBytes=sizeof(u32)*2;
  42. break;
  43. default:
  44. break;
  45. }
  46. memset(USART_WR_BUF,0xff,PACKAGE_MIN_BYTES+dataBytes);
  47. switch(pData[0])
  48. {
  49. case DebugDataType_AnalogChannelSetData:
  50. memcpy(USART_WR_BUF,G_DebugData_AnalogChannel_LastRecvData,PACKAGE_CHANNELSET_MAX_BYTES);
  51. break;
  52. case DebugDataType_CommunicateTimesInfo:
  53. memcpy(USART_WR_BUF,&RecvedPackageCount,sizeof(u32));
  54. memcpy(&USART_WR_BUF[sizeof(u32)],&SendBackPackageCount,sizeof(u32));
  55. break;
  56. case DebugDataType_Analog4094Word:
  57. memcpy(USART_WR_BUF,&G_High8HC595,sizeof(u32));
  58. memcpy(&USART_WR_BUF[4],&G_Low32HC595,sizeof(u32));
  59. break;
  60. default:
  61. break;
  62. }
  63. USART6_Send(CMD0xE3_Request_GetDebugData,dataBytes,bIsContentBitInverted_SendBack);
  64. #endif
  65. }