b15f/driver/drv/plottyfile.h

80 lines
1.8 KiB
C
Raw Normal View History

2019-03-27 14:48:24 +00:00
#ifndef PLOTTYFILE_H
#define PLOTTYFILE_H
#include <iostream>
#include <fstream>
#include <exception>
2019-03-27 15:08:28 +00:00
#include <vector>
#include "dot.h"
2019-03-27 14:48:24 +00:00
2019-03-28 08:38:35 +00:00
enum FunctionType
{
CurveFamily = 'S',
Curve = 'C',
Level = 'P'
};
2019-03-27 14:48:24 +00:00
class PlottyFile
{
public:
2019-03-27 15:08:28 +00:00
void addDot(Dot& dot);
2019-03-28 08:38:35 +00:00
void addDot(Dot dot);
void setFunctionType(FunctionType);
void setQuadrant(uint8_t);
void setRefX(uint16_t);
void setRefY(uint16_t);
void setParaFirstCurve(uint16_t);
void setParaStepWidth(uint16_t);
void setUnitX(std::string);
void setDescX(std::string);
void setUnitY(std::string);
void setDescY(std::string);
void setUnitPara(std::string);
void setDescPara(std::string);
FunctionType getFunctionType(void) const;
uint8_t getQuadrant(void) const;
uint16_t getRefX(void) const;
uint16_t getRefY(void) const;
uint16_t getParaFirstCurve(void) const;
uint16_t getParaStepWidth(void) const;
std::string getUnitX(void) const;
std::string getDescX(void) const;
std::string getUnitY(void) const;
std::string getDescY(void) const;
std::string getUnitPara(void) const;
std::string getDescPara(void) const;
2019-03-27 14:48:24 +00:00
void writeToFile(std::string filename);
2019-03-29 07:32:11 +00:00
void startPlotty(std::string filename);
2019-03-27 14:48:24 +00:00
private:
void prepStr(std::string& str, uint8_t len);
2019-03-27 15:08:28 +00:00
std::vector<Dot> dots;
2019-03-28 08:38:35 +00:00
int8_t command = 0x1D;
const std::string head = "HTWK-HWLab";
const std::string filetype = "MD";
int16_t version = 1;
int16_t subversion = 0;
FunctionType function_type = FunctionType::Curve;
uint8_t quadrant = 1;
uint16_t ref_x = 1023;
uint16_t ref_y = 1023;
uint16_t para_first = 1;
uint16_t para_stepwidth = 1;
2019-03-27 14:48:24 +00:00
std::string unit_x;
std::string desc_x;
std::string unit_y;
std::string desc_y;
std::string unit_para;
std::string desc_para;
const uint8_t eof = 0xD;
2019-03-28 08:38:35 +00:00
constexpr static uint8_t STR_LEN_SHORT = 10;
constexpr static uint8_t STR_LEN_LARGE = 20;
2019-03-27 14:48:24 +00:00
};
#endif // PLOTTYFILE_H