iic_packet.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. // // ******************************************************************
  2. // // /\ /| @File iic_packet.h
  3. // // \ V/ @Brief
  4. // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
  5. // // / | @Creation 2024-07-19
  6. // // / \\ @Modified 2024-07-25
  7. // // *(__\_\
  8. // // ******************************************************************
  9. #pragma once
  10. #include <cstdint>
  11. #include <vector>
  12. #include "../decode_event.h"
  13. //#include "protocol_iic_enums.h"
  14. namespace Protocol
  15. {
  16. struct IicDataInfo
  17. {
  18. int32_t index;
  19. int32_t length;
  20. uint8_t data;
  21. uint8_t ack;
  22. int32_t ack_index;
  23. int32_t ack_length;
  24. uint8_t success_ack;
  25. uint8_t has_ack;
  26. };
  27. //内部使用数据结构 数据帧
  28. /* struct IicPacket
  29. {
  30. bool has_start;
  31. int32_t start_index;
  32. int32_t start_len;
  33. int32_t addr_index;
  34. int32_t addr_len;
  35. uint16_t addr_data;
  36. bool rw;
  37. int32_t rw_index;
  38. int32_t rw_len;
  39. bool addr_ack;
  40. bool success_addr_ack;
  41. int32_t addr_ack_index;
  42. int32_t addr_ack_len;
  43. bool has_addr_ack;
  44. std::vector<IicDataInfo> data_infos;
  45. bool has_end;
  46. int32_t end_index;
  47. int32_t end_len;
  48. };*/
  49. struct IicEvent
  50. {
  51. bool has_start;
  52. int32_t start_index;
  53. int32_t start_len;
  54. int32_t addr_index;
  55. int32_t addr_len;
  56. uint16_t addr_data;
  57. //bool rw; bug
  58. uint16_t rw;
  59. int32_t rw_index;
  60. int32_t rw_len;
  61. bool addr_ack;
  62. bool success_addr_ack;
  63. int32_t addr_ack_index;
  64. int32_t addr_ack_len;
  65. bool has_addr_ack;
  66. int32_t data_infos_index; // ptr to std::vector<IicDataInfo> packet_infos_
  67. int32_t data_infos_count;
  68. bool has_end;
  69. int32_t end_index;
  70. int32_t end_len;
  71. /* IicEvent(IicPacket packet)
  72. {
  73. has_start = packet.has_start;
  74. start_index = packet.start_index;
  75. start_len = packet.start_len;
  76. addr_index = packet.addr_index;
  77. addr_len = packet.addr_len;
  78. addr_data = packet.addr_data;
  79. rw = packet.rw;
  80. rw_index = packet.rw_index;
  81. rw_len = packet.rw_len;
  82. addr_ack = packet.addr_ack;
  83. success_addr_ack = packet.success_addr_ack;
  84. addr_ack_index = packet.addr_ack_index;
  85. addr_ack_len = packet.addr_ack_len;
  86. has_addr_ack = packet.has_addr_ack;
  87. data_infos_ptr = reinterpret_cast<intptr_t>(packet.data_infos.data());
  88. has_end = packet.has_end;
  89. end_index = packet.end_index;
  90. end_len = packet.end_len;
  91. }*/
  92. };
  93. }