14 .
name =
"CAN remote Digital/Analog" ,
15 .id=CLSID_MAIN_CANINPUT,
29 Thread(
"FFBMAIN", 256, 30),
65 uint8_t rateidx = (conf1 >> 11) & 0x7;
119 for(uint8_t i = 0;i<8;i++){
131 const uint8_t valuesPerMsg = 4;
132 for(uint8_t i = 0;i<analogValues->size();i+=valuesPerMsg){
133 bool changed =
false;
136 for(uint8_t v = 0;v<valuesPerMsg;v++){
138 if(idx >= analogValues->size()){
141 int32_t val = analogValues->at(idx);
145 msg.
data[v*2] = val & 0xff;
146 msg.
data[(v*2) +1] = (val >> 8) & 0xff;
160 rateidx = clip<uint8_t,uint8_t>(rateidx, 0,
report_rates.size());
171 s += std::to_string(1000/(
report_rates[i])) +
"Hz:"+std::to_string(i);
static ClassIdentifier info
void setReportRate(uint8_t rateidx)
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
const std::array< uint8_t, 7 > report_rates
std::vector< int32_t > analogBuffer
const ClassIdentifier getInfo()
std::string report_rates_names()
virtual bool sendMessage(CAN_tx_msg &msg)=0
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)
std::unique_ptr< USBdevice > usbdev
void Delay(const TickType_t Delay)
bool Flash_Write(uint16_t adr, uint16_t dat)
bool Flash_Read(uint16_t adr, uint16_t *buf, bool checkempty=true)
uint8_t data[CAN_MSGBUFSIZE]
const uint8_t usb_cdc_conf[]
const tusb_desc_device_t usb_devdesc_ffboard_composite
const usb_string_desc_t usb_ffboard_strings_default