#pragma once #include #include #include #include #include "data/Data.h" /* * 结构类型数据 *GearMode * */ // 扭矩参数 class GearModeParam { public: GearModeParam(unsigned char level, unsigned int value) : m_level(level), m_value(value) {}; virtual ~GearModeParam() {}; unsigned char getLevel() { return m_level; } unsigned int getValue() { return m_value; } private: const unsigned char m_level; const unsigned int m_value; }; typedef struct { std::list datas; }GearModeParam_t; class GearModeStructData : public Data { public: GearModeStructData(); GearModeStructData(GearModeParam_t *data); virtual ~GearModeStructData(); Data* clone() override; void copy(Data* data) override; void copy(Data& data) override; int length() override; // 转换为字符串格式 virtual std::string toStr() override; // 转换为Byte字符串 virtual std::string toByteStr() override; // 转换为十六进制字符串 virtual std::string toHexStr() override; // 根据Byte字符串解析数据 virtual bool fromByteStr(std::string str = "") override; GearModeParam_t* getData() { return m_data; } void setData(GearModeParam_t* data); void copyData(GearModeParam_t* data); // void setType(int type) { m_type = type; } // int getType() { return m_type; } private: const int m_prefixLength; GearModeParam_t* m_data; };