~={yellow}Модуль высокого напряжения=~ USB / ethernet - cfg.riseTime (unsigned int, 10) / hvRiseTime (int, 10) - cfg.presetHV (FloatUint32, 0) / hvDacPreset (uint16_t, 0) - cfg.presetHVMin (FloatUint32, 0.0) / hvDacMin (uint16_t, 0) - cfg.presetHVMax (FloatUint32, 30.3) / hvDacMax (uint16_t, 0) - curHV_dac (unsigned int, 0) / hvDac (uint16_t, 0) - hvStep (не передается) (double) / hvStep (не передается) (double) - cfg.k0 (FloatUint32, 0) / hvK0 (double, 0) - cfg.k1 (FloatUint32, 454.545) / hvK1 (double, 0.3662109375) - state (hvState, HV_OFF) / hvState (HvState, HV_OFF) - curHV_voltage (FloatUint32, dacToVolt(curHV_dac)) / ```cpp #define CONFIG_BASE ((uint16_t)0x0000) #define CONFIG_LEN 18 //32 // CONFIG_LEN в словах по 16 бит #define CONFIG_VER_SOFT CONFIG_BASE + 1 #define CONFIG_VER_FPGA CONFIG_BASE + 2 #define CONFIG_UREF CONFIG_BASE + 16 #define UART_BASE 0x0012 #define UART_BAUDRATEL UART_BASE #define UART_BAUDRATEH UART_BASE + 1 #define UART_DATA_BITS UART_BASE + 2 #define UART_STOP_BITS UART_BASE + 3 #define UART_PARITY UART_BASE + 4 #define UART_NREG 5 #define MODBUS_ADDR 0x0017 #define PRESET_BASE 0x0100 #define PRESET_LEN 32 //с резервом #define PRESET_MODE PRESET_BASE // 0 - без остановки // 1 - по реальному времени (RTIME) // 2 - по живому времени (LTIME) // 3 - по счету (SUM) // 4 - по пику в ROI (PRESET_SUM_ROI) #define PRESET_RTIME PRESET_BASE + 1 #define PRESET_LTIME PRESET_BASE + 3 #define PRESET_SUM PRESET_BASE + 5 #define PRESET_SUM_ROI PRESET_BASE + 7 #define PRESET_ROIL PRESET_BASE + 9 #define PRESET_ROIH PRESET_BASE + 10 // -------------------------------------------------------------------------- // #define HV_BASE 0x0200 #define HV_STATE HV_BASE + 0 // состояние/команда hvState #define HV_CUR_VOLT_L HV_BASE + 1 // Текущее напряжение в вольтах Float, 4 байта #define HV_CUR_VOLT_H HV_BASE + 2 // Текущее напряжение в вольтах Float, 4 байта #define HV_RISE_TIME HV_BASE + 3 // время подъёма в секундах #define HV_PRESET_L HV_BASE + 4 // уставка, напряжение в вольтах Float, 4 байта #define HV_PRESET_H HV_BASE + 5 // уставка, напряжение в вольтах Float, 4 байта #define HV_PRESET_MIN_L HV_BASE + 6 // минимальная уставка, напряжение в вольтах Float, 4 байта #define HV_PRESET_MIN_H HV_BASE + 7 // минимальнаяуставка, напряжение в вольтах Float, 4 байта #define HV_PRESET_MAX_L HV_BASE + 8 // максимальная уставка, напряжение в вольтах Float, 4 байта #define HV_PRESET_MAX_H HV_BASE + 9 // максимальная уставка, напряжение в вольтах Float, 4 байта #define HV_K0_L HV_BASE + 10 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта #define HV_K0_H HV_BASE + 11 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта #define HV_K1_L HV_BASE + 12 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта #define HV_K1_H HV_BASE + 13 // коэф. преобразования напряжения ЦАП в вольты, Float, 4 байта #define HV_DELAY HV_BASE + 14 // время задержки после установки HV перед началом набора #define HV_NREG 16 // -------------------------------------------------------------------------- // //"FPGA" #define FPGA_BASE 0x300 #define FPGA_NREG 32 // -------------------------------------------------------------------------- // //Мониторинг #define MON_BASE 0x500 #define MON_BASE_RAW 0x600 #define MON_BAT_VOLTAGE MON_BASE + 0x014 // напряжение АКБ #define MON_BAT_CHARGE_ST MON_BASE + 0x016 // статус заряда АКБ (есть/нет) #define MON_FLASH_SIZE MON_BASE + 0x018 // объем флеш-памяти (байты) #define MON_FLASH_FREE MON_BASE + 0x01A // объем свободной флеш-памяти (байты) // -------------------------------------------------------------------------- // // Автономный режим работы #define AUTO_BASE 0x700 #define AUTO_NREG 12 #define AUTO_STATE AUTO_BASE + 0 // статус автономного режима #define AUTO_DELAY_L AUTO_BASE + 1 // задержка перед началом цикла измерений (сек.) #define AUTO_DELAY_H AUTO_BASE + 2 // задержка перед началом цикла измерений (сек.) #define AUTO_CNT_DW_L AUTO_BASE + 3 // осталось до начала цикла (сек.) #define AUTO_CNT_DW_H AUTO_BASE + 4 // осталось до начала цикла (сек.) #define AUTO_PERIOD_L AUTO_BASE + 5 // период начала набора каждого спектра #define AUTO_PERIOD_H AUTO_BASE + 6 // период начала набора каждого спектра #define AUTO_NBR_SP AUTO_BASE + 7 // количество набираемых спектров (0 без остановки) #define AUTO_NBR_SP_ALR AUTO_BASE + 8 // количество уже набранных спектров #define AUTO_STNB_MODE AUTO_BASE + 9 // режим сна #define AUTO_STNB_DELAY_L AUTO_BASE + 10// время до перехода в режим сна (сек.) #define AUTO_STNB_DELAY_H AUTO_BASE + 11// время до перехода в режим сна (сек.) // -------------------------------------------------------------------------- // //Сохранение настройек прибора #define SAVE_LOAD_BASE 0x800 #define SAVE_LOAD_LOAD (SAVE_LOAD_BASE + 0) #define SAVE_LOAD_SAVE (SAVE_LOAD_BASE + 1) #define SAVE_LOAD_LOAD_SP_PARAM (SAVE_LOAD_BASE + 2) #define SAVE_LOAD_SAVE_SP_PARAM (SAVE_LOAD_BASE + 3) // -------------------------------------------------------------------------- // // Режимы работы #define KEY_REBOOT 0x2031 // перезагрузка в режиме бутлоадера (DFU) #define KEY_RESET 0x2032 // перезагрузка #define REBOOT_OK 0x3120 #define REBOOT_0 0x840 #define BLAST_FPGA 0x841 #define BLAST_MODE_ON 0x1 #define BLAST_MODE_OFF 0x0 #define WORK_MODE_N_REG 2 // specter // Состояние набора #if 0 enum spState { SP_CLEAR = 0, // очистка, нет спектра SP_STOP = 1, // останов, есть спектр SP_ACQ = 2, // набор спектра }; #endif // -------------------------------------------------------------------------- // #define SPECTER_INFO_BASE 0x900 #define SPECTER_INFO_NREG 15 #define SPECTER_FORMAT 0x0900 #define SPECTER_ACQ_STATE 0x0901 #define SPECTER_NCHANNELS 0x0902 #define SPECTER_EN_K0 0x0903 #define SPECTER_EN_K1 0x0905 #define SPECTER_REGRATE 0x0907 #define SPECTER_INPRATE 0x0909 #define SPECTER_RTIME 0x090B #define SPECTER_LTIME 0x090D #define SPECTER_LOCALTIME 0x090F #define GPS_STATUS 0x0911 #define GPS_LON 0x0912 #define GPS_LAT 0x0914 #define GPS_ALT 0x0916 #define SP_OFFSET 0x0918 // -------------------------------------------------------------------------- // // Для считывания заголовка спектра из файла. #define SPECTER_FILE_INFO_BASE 0xB000 #define SPECTER_FILE_INFO_NREG 255 #define SPECTER_FORMAT_F 0xB000 #define SPECTER_ACQ_STATE_F 0xB001 #define SPECTER_NCHANNELS_F 0xB002 #define SPECTER_EN_K0_F 0xB003 #define SPECTER_EN_K1_F 0xB005 #define SPECTER_REGRATE_F 0xB007 #define SPECTER_INPRATE_F 0xB009 #define SPECTER_RTIME_F 0xB00B #define SPECTER_LTIME_F 0xB00D #define SPECTER_LOCALTIME_F 0xB00F #define GPS_STATUS_F 0xB011 #define GPS_LON_F 0xB012 #define GPS_LAT_F 0xB014 #define GPS_ALT_F 0xB016 #define SP_OFFSET_F 0xB018 #define SPECTER_FILE_BASE 0xB100 #define SPECTER_BASE 0x1000 #define SPECTER_CNL 4096 #define SPECTER_NREG (SPECTER_CNL * 2) #define N_REGS_BIG_FRAME ((64 + 2)*2) // осциллограф #define N_SCOPE_FRAME 4 #define SCOPE_BASE 0xA000 #define SCOPE_NREG (N_REGS_BIG_FRAME * N_SCOPE_FRAME) // fifo #define N_FIFO_FRAME 8 #define FIFO_BASE 0xA400 #define FIFO_NREG (N_REGS_BIG_FRAME * N_FIFO_FRAME) // Обмен текстовыми сообщениями #define STR_BASE 0x7F00 #define STR_NREG 125 ```