16 .id=CLSID_ANALOG_LOCAL,
21 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_0,ADR_LOCALANALOG_MAX_0),
22 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_1,ADR_LOCALANALOG_MAX_1),
23 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_2,ADR_LOCALANALOG_MAX_2),
24 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_3,ADR_LOCALANALOG_MAX_3),
25 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_4,ADR_LOCALANALOG_MAX_4),
26 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_5,ADR_LOCALANALOG_MAX_5),
27 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_6,ADR_LOCALANALOG_MAX_6),
28 std::pair<uint16_t,uint16_t>(ADR_LOCALANALOG_MIN_7,ADR_LOCALANALOG_MAX_7),
34 mask = (1 << bits) -1;
63 if(
Flash_Read(ADR_LOCALANALOG_MASK,&aconfint)){
77 uint8_t axes = std::min<uint8_t>(chans-ADC_CHAN_FPIN,
numPins);
79 for(uint8_t i = 0;i<axes;i++){
80 int32_t val = ((adcbuf[i+ADC_CHAN_FPIN] &
mask) <<
bitshift)-0x7fff;
85 this->
buf.push_back(val);
const std::array< std::pair< uint16_t, uint16_t >, 8 > minMaxValAddr
static uint8_t getAdcResolutionBits(ADC_HandleTypeDef *hadc)
void saveMinMaxValues(const std::array< std::pair< uint16_t, uint16_t >, size > &minMaxAddresses)
void processAxes(std::vector< int32_t > &buf)
static AnalogProcessingConfig decodeAnalogProcessingConfFromInt(uint16_t val)
AnalogProcessingConfig & getAnalogProcessingConfig()
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
void restoreMinMaxValues(const std::array< std::pair< uint16_t, uint16_t >, size > &minMaxAddresses)
static uint16_t encodeAnalogProcessingConfToInt(AnalogProcessingConfig &conf)
void setAnalogProcessingConfig(AnalogProcessingConfig conf)
std::vector< int32_t > buf
void registerCommand(const char *cmd, const ID cmdid, const char *help=nullptr, uint32_t flags=0)
static CommandStatus handleGetSet(const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value)
static ClassIdentifier info
const ClassIdentifier getInfo()
std::vector< int32_t > * getAxes()
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
bool Flash_Write(uint16_t adr, uint16_t dat)
bool Flash_Read(uint16_t adr, uint16_t *buf, bool checkempty=true)
volatile uint32_t * getAnalogBuffer(ADC_HandleTypeDef *hadc, uint8_t *chans)