usb_application_service_def.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef USB_APPLICATION_SERVICE_DEF_H
  2. #define USB_APPLICATION_SERVICE_DEF_H
  3. #include <stdint.h>
  4. #pragma pack( push, 2 )
  5. typedef struct
  6. {
  7. uint32_t dwProtocolVersion;
  8. //--------------------------------
  9. uint32_t dwCapacity;
  10. uint32_t dwFlashSize;
  11. uint16_t wDriverVersion;
  12. uint8_t bBank0Protection: 1;
  13. uint8_t cReserved0 : 7;
  14. uint8_t cReserved1;
  15. union
  16. {
  17. struct
  18. {
  19. uint8_t cDescLength;
  20. char cDesc[ 31 ];
  21. };
  22. struct
  23. {
  24. char ucDesc[ 32 ];
  25. };
  26. }
  27. ChipDescription;
  28. struct
  29. {
  30. uint16_t wRBSCount;
  31. uint16_t wReserved2;
  32. uint32_t dwMaxWER;
  33. uint32_t dwWER[ 3 ];
  34. }
  35. WERInfo; // Write-Erase-count Resource descriptor
  36. }
  37. TFlashMemInfo_t;
  38. #pragma pack( pop )
  39. #pragma pack( push, 1 )
  40. typedef struct
  41. {
  42. uint16_t requestVersion; // âåðñèÿ ñòðóêòóðû (âåðñèÿ çàïðîñà)
  43. uint16_t firmwareId; // âåðñèÿ ÏÎ
  44. uint16_t deviceId; // ìîäåëü ACM (ïðèñâîåííàÿ ÷åðåç ÎÁÇÎÐ)
  45. uint8_t reserved[250]; // çàðåçåðâèðîâàíî
  46. }
  47. TModelInfo_t;
  48. #pragma pack( pop )
  49. #pragma pack( push, 1 )
  50. typedef struct
  51. {
  52. uint16_t requestVersion; // âåðñèÿ ñòðóêòóðû (âåðñèÿ çàïðîñà)
  53. uint16_t firmwareId; // âåðñèÿ ÏÎ
  54. uint16_t deviceId; // ìîäåëü ACM (ïðèñâîåííàÿ ÷åðåç ÎÁÇÎÐ)
  55. }
  56. TModelInfo_base_t;
  57. typedef struct
  58. {
  59. uint16_t requestVersion; // âåðñèÿ ñòðóêòóðû (âåðñèÿ çàïðîñà)
  60. uint16_t firmwareId; // âåðñèÿ ÏÎ
  61. uint16_t deviceId; // ìîäåëü ACM (ïðèñâîåííàÿ ÷åðåç ÎÁÇÎÐ)
  62. uint8_t reserved[250]; // çàðåçåðâèðîâàíî
  63. }
  64. TModelInfo_v0_t;
  65. typedef struct
  66. {
  67. uint16_t requestVersion; // âåðñèÿ ñòðóêòóðû (âåðñèÿ çàïðîñà)
  68. uint16_t firmwareId; // âåðñèÿ ÏÎ
  69. uint16_t deviceId; // ìîäåëü ACM (ïðèñâîåííàÿ ÷åðåç ÎÁÇÎÐ)
  70. uint8_t modelName[20]; // èìÿ ìîäåëè ACM
  71. uint8_t ampSwitchList[60]; // ñïèñîê äîñòóïíûõ ñîñòîÿíèé óñèëèòåëåé
  72. uint8_t ampStatesCount; // ×èñëî äîñòóïíûõ ñîñòîÿíèé óñèëèòåëåé
  73. uint8_t filtSwitchList[60]; // ñïèñîê äîñòóïíûõ ñîñòîÿíèé ôèëüòðîâ
  74. uint8_t filtStatesCount; // ×èñëî äîñòóïíûõ ñîñòîÿíèé ôèëüòðîâ
  75. uint8_t reserved[108]; // çàðåçåðâèðîâàíî
  76. }
  77. TModelInfo_v1_t;
  78. #pragma pack( pop )
  79. #pragma pack( push, 4 )
  80. typedef union
  81. {
  82. uint8_t raw_bytes[1];
  83. TFlashMemInfo_t svcReq_Flash;
  84. uint8_t svcReq_FlashReady;
  85. TModelInfo_v1_t svcReq_Model;
  86. }
  87. TServiceRequestBuffer_t;
  88. #pragma pack( pop )
  89. #endif