Вот файл conf_target.h из проекта:
// Два типа устройств - пульт и выносная панель управления
/**====================================================================================**
* @brief Target types, subtypes and capabilites
**====================================================================================**/
// Подтипы пультов - для 2-х линеек и сервисный, работающий с обоими линейками
#define TARGET_TYPE_UNIPULT 0x0000u /* Universal Pult */
#define TARGET_STYPE_UNIPULT_SERV (TARGET_TYPE_UNIPULT | 0xFF) /* Service Pult */
#define TARGET_STYPE_UNIPULT_PU (TARGET_TYPE_UNIPULT | 0x02) /* Universal Pult PU-U */
#define TARGET_STYPE_UNIPULT_PU04 (TARGET_TYPE_UNIPULT | 0x03) /* Universal Pult PU-04U */
// Подтипы выносной/встроенной панели - выносная с протоколом MODBUS и встроенная с функциями пульа
#define TARGET_TYPE_BIU 0x0100u /* Control and indication block, and relay front panel */
#define TARGET_STYPE_BIU_IRDA (TARGET_TYPE_BIU | 0xFF) /* Relay front panel */
#define TARGET_STYPE_BIU_MODBUS (TARGET_TYPE_BIU | 0x00) /* Control and indication block */
// Опции пульта/панели - SD-карта, USB-флешка, режим индикации без возможнсти менять настройки, доп.кнопки, и т.д.
#define TARGET_CAPS_SD 0x00010000ul /* SD-Card support */
#define TARGET_CAPS_PI 0x00020000ul /* Indication only mode */
#define TARGET_CAPS_KEYS_ARM 0x00040000ul /* Additional keys: RUN and STOP */
#define TARGET_CAPS_KEYS_RUAU 0x00080000ul /* Additional key: Manual/Auto mode switch */
#define TARGET_CAPS_INTERCONNECT 0x00100000ul /* Entire display device with interconnection: no need connection status showing ('*' at display edge)) */
#define TARGET_CAPS_USBMSD 0x00200000ul /* USB Mass storage support */
#define TARGET_CAPS_KSKN_ESA 0x00400000ul /* Devices (BIU and Front panel) for KSKN relays */
/**====================================================================================**
* @brief Define various releases
**====================================================================================**/
// Различные релизы - всего 12 моделей пультов и панелей
#define RELEASE_PU_U_SD_SERVICE (TARGET_STYPE_UNIPULT_SERV | TARGET_CAPS_SD)
#define RELEASE_PU_U_SD (TARGET_STYPE_UNIPULT_PU | TARGET_CAPS_SD)
#define RELEASE_PU_U TARGET_STYPE_UNIPULT_PU
#define RELEASE_PI_U (TARGET_STYPE_UNIPULT_PU | TARGET_CAPS_PI)
#define RELEASE_PU04_U_SD (TARGET_STYPE_UNIPULT_PU04 | TARGET_CAPS_SD)
#define RELEASE_PU04_U TARGET_STYPE_UNIPULT_PU04
#define RELEASE_BIU (TARGET_STYPE_BIU_MODBUS | TARGET_CAPS_KEYS_ARM | TARGET_CAPS_KEYS_RUAU)
#define RELEASE_FPANEL (TARGET_STYPE_BIU_IRDA | TARGET_CAPS_INTERCONNECT)
#define RELEASE_FPANEL_MSD (TARGET_STYPE_BIU_IRDA | TARGET_CAPS_INTERCONNECT | TARGET_CAPS_USBMSD)
// Releases for KSKN relaus
#define RELEASE_KSKN_BVK (TARGET_STYPE_BIU_MODBUS | TARGET_CAPS_KEYS_ARM | TARGET_CAPS_KEYS_RUAU | TARGET_CAPS_KSKN_ESA)
#define RELEASE_KSKN_FPANEL (TARGET_STYPE_BIU_IRDA | TARGET_CAPS_INTERCONNECT | TARGET_CAPS_KSKN_ESA)
#define RELEASE_KSKN_FPANEL_MSD (TARGET_STYPE_BIU_IRDA | TARGET_CAPS_INTERCONNECT | TARGET_CAPS_USBMSD | TARGET_CAPS_KSKN_ESA)
/**====================================================================================**
* @brief Define destination release
**====================================================================================**/
// Выбор релиза для компиляции
#define RELEASE_DESTINATION RELEASE_PU_U_SD
/**====================================================================================**
* @brief Auxiliary macro for check current release properties
**====================================================================================**/
// Макросы для использования в условной компиляции и не только
/** @brief Check target type, type = TARGET_TYPE_xxx */
#define TARGET_TYPE_CHECK(type) (((RELEASE_DESTINATION) & 0xFF00u) == (type))
/** @brief Check target subtype, stype = TARGET_STYPE_xxx */
#define TARGET_STYPE_CHECK(stype) (((RELEASE_DESTINATION) & 0xFFFFu) == (stype))
/** @brief Check target capabilites, caps = TARGET_CAPS_xxx | TARGET_CAPS_yyy ... */
#define TARGET_CAPS_CHECK(caps) ((RELEASE_DESTINATION) & (caps))
#define TARGET_CAPS_CHECK_OR(caps) ((RELEASE_DESTINATION) & (caps))
#define TARGET_CAPS_CHECK_AND(caps) (((RELEASE_DESTINATION) & (caps)) == (caps))
/** @brief Get IrDA Slsap service num for IrLMP service */
#define TARGET_IRDA_SLSAP_NUM (((RELEASE_DESTINATION) & 0x80) ? 0x02 : ((RELEASE_DESTINATION)&0x7F))
/** @brief IrDA connection behavior, FALSE - Slsap must be equal to Dlsap, else - connect to any Dlsap service number */
#define TARGET_IRDA_DLSAP_NOCHECK ( ((RELEASE_DESTINATION) & 0x80) || TARGET_EXCH_MODE_MODBUS )
/** @brief Check IrDA/MODBUS exchange mode */
#define TARGET_EXCH_MODE_IRDA (RELEASE_DESTINATION & 0x7F)
#define TARGET_EXCH_MODE_MODBUS ((RELEASE_DESTINATION & 0xFF)==0)
/** @brief Check storage support */
#define TARGET_STORAGE_SUPPORT TARGET_CAPS_CHECK_OR(TARGET_CAPS_SD | TARGET_CAPS_USBMSD)
-
- ОС какая? - MBedder(18.11.2022 22:39)
- Воу-воу, "Бобёр, выдыхай!" Спасибо, но явно перебор. О_о - Dingo(18.11.2022 04:41)
- проверим у себя General(9331 знак., 17.11.2022 17:27)
- Мдя... Все претензии к Генералу. Не буду ничего трогать пока он не
увидит. - il-2(17.11.2022 16:07)
- а ты откуда копировал? General(1150 знак., 17.11.2022 17:13)
- Из редактора FAR-Manager - il-2(17.11.2022 17:37)
- а ты откуда копировал? General(1150 знак., 17.11.2022 17:13)