#ifndef NFM_BASE_MODEL_H #define NFM_BASE_MODEL_H // ----------------------------------------------------------------------------- typedef enum // @.DeviceID field from common header { // eModel_SC6000_v1 = 0, // SC6000.1 eModel_SC8000_v1 = 1, // SC8000.1 eModel_SC4000_v1 = 2, // SC4000.1 eModel_SC2520_v1 = 3, // SC2520.1 eModel_SC8400_v1 = 4, // SC8400.1 eModel_SC8400_v2 = 5, // SC8400.2 eModel_SC2509_v1 = 6, // SC2509.1 eModel_SC2509_v2 = 7, // SC2509.2 eModel_SC4509_v1 = 8, // SC4509.1 eModel_SC4509_v2 = eModel_SC8400_v1, // 4509.2 = SC8401 eModel_SC4520_v1 = 9, // SC4520.1 eModel_SC6000_NFMB_2506_v1 = 10, // SC6000/NFMB2506.1 eModel_SC2506_v1 = 11, // =SC2509.1 } ������������� �����������, ������������ ������� �������, ������� 2509.1 eModel_SC2506_v2 = 12, // =SC2509.2 } ������������� �����������, ������������ ������� �������, ������� 2509.2 eModel_SC2504_v1 = 13, // =SC2509.1 } ������������� �����������, ������������ ������� �������, ������� 2509.1 eModel_SC2504_v2 = 14, // =SC2509.2 } ������������� �����������, ������������ ������� �������, ������� 2509.2 eModel_SC2520_v2 = 15, // SC2520.2 eModel_CalPod_1520_v1 = 16, // STM32+ADRF5045, CalPod 2019 eModel_SC2543_NFM_2543_v1 = 17, // NFM2543.1 eModel_NFM = 18, // NFM eModel_SWB = 19, // PE750212 eModel_SWB_16 = 21, // PE2P16Ta eModel_SWB_16M = 22, // ME216-18A eModel_SWB_8M = 23, // ME208-18A eModel_PAK_LEMZ = 24, // R0467 (PAK-LEMZ) eModel_undefined = 255, } eNFMModel_t; //----------------------------------------------------------------------------- typedef struct { uint16_t allowedInputPorts; uint16_t allowedOutputPorts; uint16_t defaultInputState; uint16_t * inputPortStates; }controlProfile_t; typedef struct { const char * profileName; // profile name controlProfile_t controlProfile; // number of control profiles } sNFMControlSwitchProfile_t; #include "app/nfm/nfm_base_keyprofiles.h" // ----------------------------------------------------------------------------- typedef struct { eNFMModel_t deviceId; // raw device identifier (@DeviceID from Common Header of MEMORY) const char * modelName; // human-readable device model name const sNFMControlSwitchProfile_t * nfProfile; // assigned control profile const sSwitchMemoryProfile_t * memProfile; // assigned memory profile } sNFMModel_t; // ----------------------------------------------------------------------------- extern const size_t aNFMModels_count; // amount of aNFMModels[] extern const sNFMModel_t aNFMModels[]; // NFM models profiles // ----------------------------------------------------------------------------- #endif