| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #ifndef VERSION_H
- #define VERSION_H
- // FIRMWARE_VERSION
- // введена 11/09/18
- // Требуется соблюдать соответствие версии FIRMWARE_VERSION и FIRMWARE_DRIVER_VERSION
- //
- #define FIRMWARE_VERSION 0x01
- // Используется схожая нумерация версий с ACMx4: версия 0x20 - с SCPI
- // Версия 0x1X - первая версия, без SCPI интерфеса
- // Версия 0x2X - вторая версия, поддержка SCPI интерфейса
- // Версия 0x10 - 25.11.2020: альфа-версия.
- // Версия 0x11 - 10.12.2020: введена поддержка состояний O2ALR и O2BLR в протокол
- // Версия 0x12 - 10.12.2020: введена поддержка состояний O1ALR и O1BLR в протокол
- // Версия 0x13 - 11.12.2020: порты A и B поменяны местами. Коды управления по USB сохранены.
- // Версия 0x14 - 03.02.2021: исправление ошибок флеш-драйвера и FSEQ
- // Версия 0x20 - 12.02.2021: Поддержка SCPI
- // Версия 0x21 - 17.03.2021: Исправления: исправлена команда MEM:TABLE:FREQ:SEGM:DATA
- // Версия 0x22 - 23.04.2021: Добавлена поддержка 2543.2
- // Версия 0x23 - 27.04.2021: Обновление карты состояний ключей для 2543.1 и 2543.2:
- // - удалены O1ALR и O1BLR для 2543.1
- // - исправление проверки аругмента команды SWIT:STAT
- // - Добавлена поддержка состояний O1ALR, O1BLR, L2BOR, L2AOR, в 2543.2
- // Версия 0x24 - 27.04.2021:
- // - Удален разворот портов A-B для 2543.2;
- // - исправление включения короткой весрии состояния "CHEC" (CHECk)
- // - удалены неиспользуемые кодировки состояний для 2543.1
- #define FIRMWARE_DRIVER_VERSION 0x01
- // FIRMWARE_DRIVER_VERSION
- // Была задумана как версия драйвера управления, т.к. не было версии ПО.
- // Использовалась во внутренних интерфейсах и при тестировании внутренними программами
- // на производстве.
- // Используется схожая нумерация версий с ACMx4
- // версия 0xXX00 - первая версия прошивки с поддержкой сервисного запроса
- // версия 0xXX01 - исправлена ошибка зависания при записи во Flash по USB, впервые реализован 07.04.16 -
- // версия 0xXX02 - добавлен сервисный запрос на получение информации о прошивке (0x003)
- // также, теперь для версии драйвера остался только 1 байт - младший, старший используется
- // для версии ПО, впервые реализован 11.09.18
- // ----------------------------------------------------------------------------------
- // 11.09.18 - реализован интерфейс SCPI (USBTMC)
- // теперь старшая тетрада версии драйвера зарезервирована: 0xAABB
- // 0xAA - это теперь версия прошивки, отвечает в т.ч. за SCPI (есть или нет), см FIRMWARE_VERSION
- // 0xBB - это версия драйвера сервисного запроса. тут же можно смотреть, исправлена ли ошибка зависания при записи
- // С версии драйвера 0x02 также реализован програмнной версии FIRMWARE_VERSION отдельным сервисным запросом
- // ----------------------------------------------------------------------------------
- // Старшая тетрада VERSION это версия ПО (FIRMWARE_VERSION), младшая - версия драйвера сервисного запроса
- #define VERSION (((0xFF & FIRMWARE_VERSION) << 8) | ((0xFF & FIRMWARE_DRIVER_VERSION)))
- #define HARDWARE_VERSION 0x0000 // undefined yet (12/09/18)
-
- #define COMMENTS_FORMAT_TEXT 0
-
- #define PROGVER_TAG_v0 0xA1DB10C0 // Progversion Identifier v0: "A ID Block v0" -> "AIDBLOCK0" -> "AIDBlOC0" -> "A1DB10C0"
- #define PROGVER_FILLER_v0(TXTCOMMENTS)\
- {\
- .tagId = PROGVER_TAG_v0, \
- .reserved0 = { 0 }, \
- .comments_id = COMMENTS_FORMAT_TEXT, \
- .reserved1 = { 0 }, \
- .comments = TXTCOMMENTS, \
- .reserved2 = { 0 }, \
- .firmware_version = VERSION, \
- .hardware_version = HARDWARE_VERSION, \
- }
-
- #include <stdint.h>
- #pragma pack( push, 1 )
- typedef const struct
- {
- uint32_t tagId; // ProgVer structure ID
- uint8_t reserved0[12]; // Reserved for future
- uint8_t comments_id; // comments format
- uint8_t reserved1[3]; // Reserved for future
- uint8_t comments[64]; // optional comments
- uint8_t reserved2[160]; // Reserved for future
- uint16_t firmware_version; // firmware version
- uint16_t hardware_version; // hardware version
- uint32_t progver_crc32; // ProgVer structure CRC32 (unused)
- }
- sProgVer_t;
- typedef const struct
- {
- uint32_t firmware_crc32; // Firmware CRC32
- }
- sProgVerCRC_t;
- #pragma pack( pop )
- extern volatile const sProgVer_t * pProgramVersion;
- #endif
|