55 lines
1.7 KiB
C++
55 lines
1.7 KiB
C++
#pragma once
|
|
#include <vector>
|
|
#include <json.hpp>
|
|
#include <mutex>
|
|
|
|
using json = nlohmann::json;
|
|
class MotorSessionInfo
|
|
{
|
|
public:
|
|
struct MBTaskRecordInfo
|
|
{
|
|
unsigned int CurrentScaned;
|
|
bool NormalDone;
|
|
bool Jammed;
|
|
bool DoubleFeed;
|
|
bool FeedError;
|
|
long TimeStampStart;
|
|
long TimeStampEnd;
|
|
bool operator < (const MBTaskRecordInfo& info)
|
|
{
|
|
return this->TimeStampEnd > info.TimeStampEnd;
|
|
}
|
|
|
|
void Start()
|
|
{
|
|
std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds> tpMicro = \
|
|
std::chrono::time_point_cast<std::chrono::seconds>(std::chrono::system_clock::now());
|
|
this->TimeStampStart = tpMicro.time_since_epoch().count();
|
|
}
|
|
|
|
void Stop()
|
|
{
|
|
std::chrono::time_point<std::chrono::system_clock, std::chrono::seconds> tpMicro = \
|
|
std::chrono::time_point_cast<std::chrono::seconds>(std::chrono::system_clock::now());
|
|
this->TimeStampEnd = tpMicro.time_since_epoch().count();
|
|
}
|
|
};
|
|
//nscanned / 300 nscanned∈[1,300] 即取值范围为[0,1.0]
|
|
|
|
public:
|
|
MotorSessionInfo(/* args */);
|
|
~MotorSessionInfo();
|
|
std::vector<MBTaskRecordInfo> GetRecordInfo();// m_mbtaskrecordInfos;
|
|
void UpdateRecordInfo(MBTaskRecordInfo info);
|
|
void RemoveInfos();
|
|
private:
|
|
void js2struct(MBTaskRecordInfo& info,const json& j);
|
|
void struct2js(const MBTaskRecordInfo info,json& j);
|
|
json getjsonobj();
|
|
void savejsonobj(std::vector<MBTaskRecordInfo> infos);
|
|
private:
|
|
int m_maxrecord;
|
|
std::mutex m_mutex;//避免读写冲突 json文件丢失
|
|
};
|