Open FFBoard
Open source force feedback firmware
FFBoardMain.h
Go to the documentation of this file.
1/*
2 * FFBoardMain.h
3 *
4 * Created on: 23.01.2020
5 * Author: Yannick
6 */
7
8#ifndef FFBOARDMAIN_H_
9#define FFBOARDMAIN_H_
10
11#include <CmdParser.h>
12#include <string>
13#include "ChoosableClass.h"
14#include "CommandHandler.h"
15#include <vector>
16#include "ErrorHandler.h"
17#include <memory>
18
20#include "USBdevice.h"
21#include "CommandInterface.h"
22
23#include "SystemCommands.h"
24#include "target_constants.h"
25
26
27class USBdevice;
31
33public:
35 virtual const ClassIdentifier getInfo();
36 static bool isCreatable() {return true;};
37 const ClassType getClassType() override {return ClassType::Mainclass;};
38
40 virtual ~FFBoardMain();
41
42 virtual void usbInit(); // called before the mainloop to start the usb device
43
44 // Callbacks
45 virtual void update();
46 virtual void cdcRcv(char* Buf, uint32_t *Len);
47 virtual void cdcRcvReady(uint8_t itf);
48
49 virtual void usbSuspend(); // Called on usb disconnect and suspend
50 virtual void usbResume(); // Called on usb resume
51
52 virtual CommandStatus command(const ParsedCommand& cmd,std::vector<CommandReply>& replies);
53
54 virtual std::string getHelpstring();
55
56 std::unique_ptr<FFBoardMainCommandThread> commandThread;
57 std::unique_ptr<CDC_CommandInterface> cdcCmdInterface = std::make_unique<CDC_CommandInterface>();
58 ErrorPrinter errorPrinter; // Prints errors to serial
60
61#ifdef UARTCOMMANDS
62 std::unique_ptr<UART_CommandInterface> uartCmdInterface = std::make_unique<UART_CommandInterface>(115200); // UART command interface
63#endif
64
65protected:
66 std::unique_ptr<USBdevice> usbdev;
67 static char cdcbuf[]; // cdc buffer
68};
69
70
71
72#endif /* FFBOARDMAIN_H_ */
ClassType
Definition: ClassIDs.h:12
CommandStatus
virtual void update()
Definition: FFBoardMain.cpp:71
static ClassIdentifier info
Definition: FFBoardMain.h:34
static char cdcbuf[]
Definition: FFBoardMain.h:67
virtual CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
Definition: FFBoardMain.cpp:49
std::unique_ptr< USBdevice > usbdev
Definition: FFBoardMain.h:66
virtual const ClassIdentifier getInfo()
Definition: FFBoardMain.cpp:25
virtual void usbResume()
Definition: FFBoardMain.cpp:85
std::unique_ptr< CDC_CommandInterface > cdcCmdInterface
Definition: FFBoardMain.h:57
SystemCommands systemCommands
System command handler.
Definition: FFBoardMain.h:59
virtual void usbInit()
Definition: FFBoardMain.cpp:61
ErrorPrinter errorPrinter
Definition: FFBoardMain.h:58
const ClassType getClassType() override
returns the used classchooser selection id of this instance
Definition: FFBoardMain.h:37
virtual std::string getHelpstring()
Definition: FFBoardMain.cpp:90
virtual void cdcRcv(char *Buf, uint32_t *Len)
Definition: FFBoardMain.cpp:32
virtual void cdcRcvReady(uint8_t itf)
Definition: FFBoardMain.cpp:40
virtual void usbSuspend()
Definition: FFBoardMain.cpp:78
std::unique_ptr< UART_CommandInterface > uartCmdInterface
Definition: FFBoardMain.h:62
virtual ~FFBoardMain()
Definition: FFBoardMain.cpp:94
std::unique_ptr< FFBoardMainCommandThread > commandThread
Definition: FFBoardMain.h:56
static bool isCreatable()
Definition: FFBoardMain.h:36