| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 | #pragma once#include <map>#include <vector>#include <string>static std::map<int, std::string> g_mapAcqTypeIDtoString={{0x101,"定位测力值"},{0x102,"反位测力值"},{0x103,"转换阻力测力值"},{0x104,"温度"},{0x105,"湿度"},{0x201,"定位密贴"},{0x202,"定位开程"},{0x203,"反位密贴"},{0x204,"反位开程"},{0x205,"轨间距离"},{0x206,"直轨横移"},{0x207,"曲轨横移"},{0x208,"直尖轨爬行"},{0x209,"曲尖轨爬行"},{0x210,"转辙机振动"},{0x301,"密贴缺口值"},{0x302,"斥离缺口值"},{0x303,"左表示杆行程"},{0x304,"右表示杆行程"},{0x305,"密贴缺口偏移值"},{0x306,"密贴缺口标准值"},{0x307,"油位"},{0x308,"温度"},{0x309,"湿度"},{0x310,"油压曲线"},{0x311,"电流"},{0x312,"电压"}};static std::map<std::string, int> g_mapAcqTypeStringtoID ={	{"定位测力值", 0x101             },	{ "反位测力值"             ,0x102 },	{ "转换阻力测力值"         ,0x103 },	{ "温度"                   ,0x104 },	{ "湿度"                   ,0x105 },	{ "定位密贴"               ,0x201 },	{ "定位开程"               ,0x202 },	{ "反位密贴"               ,0x203 },	{ "反位开程"               ,0x204 },	{ "轨间距离"               ,0x205 },	{ "直轨横移"               ,0x206 },	{ "曲轨横移"               ,0x207 },	{ "直尖轨爬行"             ,0x208 },	{ "曲尖轨爬行"             ,0x209 },	{ "转辙机振动"             ,0x210 },	{ "密贴缺口值"             ,0x301 },	{ "斥离缺口值"             ,0x302 },	{ "左表示杆行程"           ,0x303 },	{ "右表示杆行程"           ,0x304 },	{ "密贴缺口偏移值"         ,0x305 },	{ "密贴缺口标准值"         ,0x306 },	{ "油位"                   ,0x307 },	{ "温度"                   ,0x308 },	{ "湿度"                   ,0x309 },	{ "油压曲线"               ,0x310 },	{ "电流"                   ,0x311 },	{ "电压"                   ,0x312 },};#pragma pack(push, 1)struct C315CommData{	std::vector<BYTE>	m_vecData;	~C315CommData()	{		m_vecData.clear();	}	const BYTE  * const GetData() const { return m_vecData.data(); }	size_t GetDataSize()const { return m_vecData.size(); }	void Clear_Data()	{		m_vecData.clear();	}	void Push_Data(const BYTE * lpData, WORD wSize)	{		//m_vecData.assign(lpData, lpData + wSize);		if (wSize == 0) return;		size_t nInsertPos = m_vecData.size();		m_vecData.resize(nInsertPos + wSize);		CopyMemory(m_vecData.data() + nInsertPos, lpData, wSize);	}	void Update_Data(int nIdx, const void *lpData, WORD wSize)	{		//m_vecData.assign(lpData, lpData + wSize);		if (wSize == 0) return;		if (nIdx + wSize > m_vecData.size()) return;		CopyMemory(m_vecData.data() + nIdx, lpData, wSize);	}	void Reserve(DWORD dwSize)	{		size_t nInsertPos = m_vecData.capacity();		if (dwSize > nInsertPos)			m_vecData.reserve(dwSize);	}	template<class T>	void Push_Data(T d)	{		Push_Data((const BYTE*)&d, sizeof(T));	}	template<class T>	void Push_Data(T *d, WORD wSize)	{		Push_Data((const BYTE*)d, wSize);	}	void Push_Tail()	{		static const BYTE cbTail[4] = { 0xFF, 0xFF, 0xFF, 0xFF };		Push_Data(cbTail, 4);	}	void Update_FrameLen(DWORD dwFrameLen)	{		size_t nDataSize = m_vecData.size();		if (nDataSize >= 12)		{			CopyMemory(m_vecData.data() + 8, &dwFrameLen, sizeof(dwFrameLen));		}	}	void Update_FrameLen()	{		DWORD nDataSize = m_vecData.size();		if (nDataSize >= 12)		{			nDataSize -= 16;		//帧内容长度			CopyMemory(m_vecData.data() + 8, &nDataSize, sizeof(nDataSize));		}	}};#pragma  pack(pop)
 |