#pragma once #include "SerialMessage.h" #include template class USBMessage : public SerialMessage{ public: /** * @brief Construct a new Bluetooth Serial Message object */ USBMessage(USBCDC *serial); void Init(uint32_t baudRate = 115200) override; /** * @brief prints the args array to the serial monitor */ void PrintArgs() override; protected: char getChar() override; uint32_t dataAvailable() override; private: USBCDC *serial; }; template char USBMessage::getChar(){ return serial->read(); } template uint32_t USBMessage::dataAvailable(){ return serial->available(); } template USBMessage::USBMessage(USBCDC *serial) : serial(serial){} template void USBMessage::Init(uint32_t baudRate){ serial->begin(); } template void USBMessage::PrintArgs(){ serial->print("Current number of args: "); serial->println(this->populatedArgs); for (int i = 0; i < this->populatedArgs; i++) { serial->print(this->args[i]); serial->print(" "); } serial->println(); }