nfm_base_model.h 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #ifndef NFM_BASE_MODEL_H
  2. #define NFM_BASE_MODEL_H
  3. // -----------------------------------------------------------------------------
  4. typedef enum // @.DeviceID field from common header
  5. { //
  6. eModel_SC6000_v1 = 0, // SC6000.1
  7. eModel_SC8000_v1 = 1, // SC8000.1
  8. eModel_SC4000_v1 = 2, // SC4000.1
  9. eModel_SC2520_v1 = 3, // SC2520.1
  10. eModel_SC8400_v1 = 4, // SC8400.1
  11. eModel_SC8400_v2 = 5, // SC8400.2
  12. eModel_SC2509_v1 = 6, // SC2509.1
  13. eModel_SC2509_v2 = 7, // SC2509.2
  14. eModel_SC4509_v1 = 8, // SC4509.1
  15. eModel_SC4509_v2 = eModel_SC8400_v1, // 4509.2 = SC8401
  16. eModel_SC4520_v1 = 9, // SC4520.1
  17. eModel_SC6000_NFMB_2506_v1 = 10, // SC6000/NFMB2506.1
  18. eModel_SC2506_v1 = 11, // =SC2509.1 } ������������� �����������, ������������ ������� �������, ������� 2509.1
  19. eModel_SC2506_v2 = 12, // =SC2509.2 } ������������� �����������, ������������ ������� �������, ������� 2509.2
  20. eModel_SC2504_v1 = 13, // =SC2509.1 } ������������� �����������, ������������ ������� �������, ������� 2509.1
  21. eModel_SC2504_v2 = 14, // =SC2509.2 } ������������� �����������, ������������ ������� �������, ������� 2509.2
  22. eModel_SC2520_v2 = 15, // SC2520.2
  23. eModel_CalPod_1520_v1 = 16, // STM32+ADRF5045, CalPod 2019
  24. eModel_SC2543_NFM_2543_v1 = 17, // NFM2543.1
  25. eModel_NFM = 18, // NFM
  26. eModel_SWB = 19, // PE750212
  27. eModel_SWB_16 = 21, // PE2P16Ta
  28. eModel_SWB_16M = 22, // ME216-18A
  29. eModel_SWB_8M = 23, // ME208-18A
  30. eModel_undefined = 255,
  31. }
  32. eNFMModel_t;
  33. //-----------------------------------------------------------------------------
  34. typedef struct
  35. {
  36. uint16_t allowedInputPorts;
  37. uint16_t allowedOutputPorts;
  38. uint16_t defaultInputState;
  39. uint16_t * inputPortStates;
  40. }controlProfile_t;
  41. typedef struct
  42. {
  43. const char * profileName; // profile name
  44. controlProfile_t controlProfile; // number of control profiles
  45. }
  46. sNFMControlSwitchProfile_t;
  47. #include "app/nfm/nfm_base_keyprofiles.h"
  48. // -----------------------------------------------------------------------------
  49. typedef struct
  50. {
  51. eNFMModel_t deviceId; // raw device identifier (@DeviceID from Common Header of MEMORY)
  52. const char * modelName; // human-readable device model name
  53. const sNFMControlSwitchProfile_t * nfProfile; // assigned control profile
  54. const sSwitchMemoryProfile_t * memProfile; // assigned memory profile
  55. }
  56. sNFMModel_t;
  57. // -----------------------------------------------------------------------------
  58. extern const size_t aNFMModels_count; // amount of aNFMModels[]
  59. extern const sNFMModel_t aNFMModels[]; // NFM models profiles
  60. // -----------------------------------------------------------------------------
  61. #endif