45 lines
1023 B
C++
45 lines
1023 B
C++
#ifndef LINUX_BOARDTEST_UARTTESTCLASS_H_
|
|
#define LINUX_BOARDTEST_UARTTESTCLASS_H_
|
|
|
|
#include <fsfw/globalfunctions/DleEncoder.h>
|
|
#include <termios.h> // Contains POSIX terminal control definitions
|
|
|
|
#include <array>
|
|
|
|
#include "lwgps/lwgps.h"
|
|
#include "test/testtasks/TestTask.h"
|
|
|
|
class UartTestClass : public TestTask {
|
|
public:
|
|
UartTestClass(object_id_t objectId);
|
|
|
|
ReturnValue_t initialize() override;
|
|
ReturnValue_t performOneShotAction() override;
|
|
ReturnValue_t performPeriodicAction() override;
|
|
|
|
private:
|
|
enum TestModes {
|
|
GPS,
|
|
// Solar Cell Experiment
|
|
SCEX
|
|
};
|
|
|
|
void gpsInit();
|
|
void gpsPeriodic();
|
|
|
|
void scexInit();
|
|
void scexPeriodic();
|
|
int prepareScexPing();
|
|
TestModes mode = TestModes::GPS;
|
|
DleEncoder dleEncoder = DleEncoder();
|
|
size_t encodedLen = 0;
|
|
lwgps_t gpsData = {};
|
|
struct termios tty = {};
|
|
int serialPort = 0;
|
|
std::array<uint8_t, 64> cmdBuf = {};
|
|
std::array<uint8_t, 4096> recBuf = {};
|
|
uint8_t recvCnt = 0;
|
|
};
|
|
|
|
#endif /* LINUX_BOARDTEST_UARTTESTCLASS_H_ */
|