#include "FallbackStructData.h" #include #include #include #include "Utils.h" FallbackStructData::FallbackStructData() { } FallbackStructData::FallbackStructData(FallbackParam_t *data) { setData(*data); } Data* FallbackStructData::clone() { Data* data = new FallbackStructData(&m_data); return data; } void FallbackStructData::copy(Data* data) { FallbackStructData *dt = dynamic_cast(data); std::memcpy(&m_data, &dt->getData(), sizeof(FallbackParam_t)); } void FallbackStructData::copy(Data& data) { FallbackStructData *dt = dynamic_cast(&data); std::memcpy(&m_data, &dt->getData(), sizeof(FallbackParam_t)); } int FallbackStructData::length() { return 10; } std::string FallbackStructData::toStr() { std::stringstream ss; ss << "angle: " << m_data.angle << ", ampere: " << (double)(m_data.ampere / 10) << std::endl; return ss.str(); } // 1. 第0-1个字节/共2字节: 角度 // 2. 第2字节/共1字节: 电流 std::string FallbackStructData::toByteStr() { std::string s; s.append(Utils::ushortToStr(m_data.angle)); s.append(Utils::uintToStr(m_data.ampere)); s.append(Utils::uintToStr(m_data.ampere2)); return s; } /*[2023-05-26 10:33:20] Welcome to TMS-KEY 1.0 [2023-05-26 10:33:25] Device Opened! [2023-05-26 10:33:25] 打开串口成功 [2023-05-26 10:33:34] 发送消息:设置参数 [2023-05-26 10:33:34] Read Data! [2023-05-26 10:33:34] 接收数据 - cmd: 设置回退参数 [2023-05-26 10:33:34] PORT:COM4 >> Recv Data: CMD=设置回退参数 [2023-05-26 10:33:34] PORT:COM4 >> SET PARAM FALLBACK SUCCESS*/ std::string FallbackStructData::toHexStr() { return Utils::strToHexStr(toByteStr()); } bool FallbackStructData::fromByteStr(std::string str) { if(str.length() < 10) { return false; } std::string s; s = str.substr(0, 2); m_data.angle = Utils::strToUshort(s); s = str.substr(2,4 ); m_data.ampere = Utils::strToUint(s); s = str.substr(5,4 ); m_data.ampere2 = Utils::strToUint(s); return true; } void FallbackStructData::setData(FallbackParam_t& data) { memcpy(&m_data, &data, sizeof(FallbackParam_t)); }