eive-obsw/bsp_q7s/devices/startracker/StarTrackerJsonCommands.h

177 lines
3.3 KiB
C
Raw Normal View History

#ifndef BSP_Q7S_DEVICES_DEVICEDEFINITIONS_STARTRACKERJSONCOMMANDS_H_
#define BSP_Q7S_DEVICES_DEVICEDEFINITIONS_STARTRACKERJSONCOMMANDS_H_
/**
* @brief This file defines a few helper classes to generate commands by means of the parameters
* defined in the arcsec json files.
* @author J. Meier
*/
#include <string>
#include "ArcsecJsonParamBase.h"
2022-01-17 15:58:27 +01:00
#include "fsfw/serviceinterface/ServiceInterface.h"
2021-12-08 12:50:55 +01:00
/**
* @brief Generates command to set the limit parameters
*
*/
class Limits : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Limits();
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 43;
2022-01-17 15:58:27 +01:00
virtual ReturnValue_t createCommand(uint8_t* buffer) override;
};
/**
* @brief Generates the command to configure the tracking algorithm.
*
*/
class Tracking : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Tracking();
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 15;
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
};
/**
* @brief Generates the command to set the mounting quaternion
*
*/
class Mounting : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Mounting();
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 18;
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
};
/**
* @brief Generates the command to set the mounting quaternion
*
*/
class Camera : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Camera();
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
2022-01-28 12:43:26 +01:00
static const size_t COMMAND_SIZE = 39;
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
};
/**
* @brief Generates the command to configure the blob algorithm
*
*/
class Blob : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Blob();
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 24;
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
};
/**
* @brief Generates the command to configure the centroiding algorithm
*
*/
class Centroiding : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Centroiding();
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
2022-01-28 12:43:26 +01:00
static const size_t COMMAND_SIZE = 51;
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
2021-12-08 12:50:55 +01:00
};
/**
* @brief Generates the command to configure the LISA (lost in space algorithm)
*
*/
class Lisa : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Lisa();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
size_t getSize();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
private:
2022-01-28 12:43:26 +01:00
static const size_t COMMAND_SIZE = 52;
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
2021-12-08 12:50:55 +01:00
};
/**
* @brief Generates the command to configure the matching algorithm
*
*/
class Matching : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Matching();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
size_t getSize();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 10;
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
2021-12-08 12:50:55 +01:00
};
/**
* @brief Generates the command to configure the validation parameters
*
*/
class Validation : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Validation();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
size_t getSize();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 12;
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
2021-12-08 12:50:55 +01:00
};
/**
* @brief Generates command to configure the mechanism of automatically switching between the
* LISA and other algorithms.
*
*/
class Algo : public ArcsecJsonParamBase {
2022-01-17 15:58:27 +01:00
public:
Algo();
2021-12-08 12:50:55 +01:00
2022-01-17 15:58:27 +01:00
size_t getSize();
2022-01-17 15:58:27 +01:00
private:
static const size_t COMMAND_SIZE = 13;
2022-01-17 15:58:27 +01:00
ReturnValue_t createCommand(uint8_t* buffer) override;
};
#endif /* BSP_Q7S_DEVICES_DEVICEDEFINITIONS_STARTRACKERJSONCOMMANDS_H_ */