20AnalogAxisProcessing::AnalogAxisProcessing(
const uint32_t
axisAmount,
AnalogSource*
analogSource,
CommandHandler* cmdHandler,
bool allowFilters,
bool allowAutoscale,
bool allowRawValues,
bool allowManualScale) :
axisAmount(
axisAmount),
analogSource(
analogSource),
modes({allowFilters,allowAutoscale,allowRawValues,allowManualScale}){
22 if(allowAutoscale || allowManualScale){
23 minMaxVals.resize(axisAmount);
27 filters = std::vector<Biquad>(axisAmount);
30 cmdHandler->registerCommand(
"filter", AnalogAxisProcessing_commands::filter,
"Enable lowpass filters",CMDFLAG_GET|CMDFLAG_SET);
33 conf.filtersEnabled =
false;
39 cmdHandler->registerCommand(
"autocal", AnalogAxisProcessing_commands::autoscale,
"Autoranging",CMDFLAG_GET|CMDFLAG_SET);
41 conf.autorange =
false;
45 cmdHandler->registerCommand(
"values", AnalogAxisProcessing_commands::values,
"Analog output values",CMDFLAG_GET);
48 cmdHandler->registerCommand(
"rawval", AnalogAxisProcessing_commands::rawvalues,
"All raw values",CMDFLAG_GET);
50 if(allowManualScale && cmdHandler){
51 cmdHandler->registerCommand(
"min", AnalogAxisProcessing_commands::min,
"Min value limit (adr=chan)",CMDFLAG_GETADR|CMDFLAG_SETADR);
52 cmdHandler->registerCommand(
"max", AnalogAxisProcessing_commands::max,
"Max value limit (adr=chan)",CMDFLAG_GETADR|CMDFLAG_SETADR);
AnalogAxisProcessing(const uint32_t axisAmount, AnalogSource *analogSource, CommandHandler *cmdHandler=nullptr, bool allowFilters=true, bool allowAutoscale=true, bool allowRawValues=false, bool allowManualScale=false)