#ifndef SWITCHBOARD_CONTROL_H #define SWITCHBOARD_CONTROL_H //The driver manages the power of the RF circuit #include #include // SPI2_KEEP_NSS_PULLEDUP // if enabled (=1) keeps NSS pin pulled up when deinitialized #define SPI2_KEEP_NSS_PULLEDUP_SB 1 //============================================================================ // Команды работы по SPI с коммутатором //============================================================================ // 16 bit MSB [0:3] - подключение первого порта; [4:7] - подключение порта 2; [8:15] - команда typedef struct{ uint8_t cmd; uint8_t addr; uint8_t responce_2; uint8_t responce_1; }SB_command_t; //============================================================================ // Команды для работы с таблицей измерений //============================================================================ #define SWB_TABLE_NEW_RECORD (uint8_t) 0x01 // Запись нового значения в таблицу переключений #define SWB_TABLE_GET_RECORD (uint8_t) 0x02 // Чтение записи под номером #define SWB_TABLE_TABLE_COUNT (uint8_t) 0x03 // Чтение числа записей в таблице #define SWB_TABLE_START_MEASURING (uint8_t) 0x05 // Старт измерений с нуля! #define SWB_TABLE_STOP_MEASURING (uint8_t) 0x04 // Стоп измерений на текущем измерении #define SWB_TABLE_CONTINUE_MEASURING (uint8_t) 0x06 // Продолжить измерения с последней измеренной коммутации #define SWB_TABLE_CLEAR (uint8_t) 0xFF // Очистка плана измерений //============================================================================ // Команды для работы с прибором без табличного управления //============================================================================ #define SWB_CONTROL_PORT (uint8_t) 0x07 // Коммутация портов в соответствии со значениями #define SWB_CONTROL_READ (uint8_t) 0x08 // Чтение коммутации портов #define SWB_CONTROL_SET_TRIGGER_MODE (uint8_t) 0x09 // Установить режим триггера #define SWB_CONTROL_GET_TRIGGER_MODE (uint8_t) 0x0A // Получить режим триггера #define SWB_CONTROL_GET_TRIGGER_COUN (uint8_t) 0x0B // Запросить число приходов импульсов во время измерения #define SWB_CONTROL_MEASURING_MODE (uint8_t) 0x0C // Запросить режим работы коммутатора //============================================================================ typedef struct { bool (*Init)( ); void (*DeInit)(); void (*SetNSS)(); void (*ClrNSS)(); void (*Transmit)( uint8_t * pTxBuf, size_t size ); bool (*Receive)( uint8_t * pRxBuf, size_t size ); void (*TransmitReceive)( uint8_t * pTxBuf, uint8_t * pRxBuf, size_t size ); } SB_Handle_t; extern const SB_Handle_t SBHandle; #endif