#include "stdafx.h" #include "CProcessData.h" #include #include "ToolUnits.h" namespace SERVO { CProcessData::CProcessData() { } CProcessData::~CProcessData() { } short CProcessData::getCassetteSequenceNo() { return m_nCassetteSequenceNo; } short CProcessData::getJobSequenceNo() { return m_nJobSequenceNo; } std::string& CProcessData::getGlassId() { return m_strGlassId; } void CProcessData::setGlassId(const char* pszId) { m_strGlassId = pszId; } std::string& CProcessData::getStartTime() { return m_strStartTime; } std::string& CProcessData::getEndTime() { return m_strEndTime; } unsigned int CProcessData::getTotalParameter() { return m_nTotalParameter; } std::vector& CProcessData::getParamsRawData() { return m_paramsRawData; } int CProcessData::serialize(char* pszBuffer, int nBufferSize) { if (nBufferSize < 538 * 2) return -1; // ½âÊÍÊý¾Ý // Glass ID int index = 0; memcpy(&pszBuffer[index], &m_nCassetteSequenceNo, sizeof(short)); index += sizeof(short); memcpy(&pszBuffer[index], &m_nJobSequenceNo, sizeof(short)); index += sizeof(short); CToolUnits::convertString(&pszBuffer[index], 10 * 2, m_strGlassId); index += 10 * 2; // Process Start Time CToolUnits::convertString(&pszBuffer[index], 8 * 2, m_strStartTime); index += 8 * 2; // Process End Time CToolUnits::convertString(&pszBuffer[index], 8 * 2, m_strEndTime); index += 8 * 2; // parameter count m_nTotalParameter = (unsigned int)CToolUnits::toInt16(&pszBuffer[index]); index += 2; // total group m_nTotalGroup = (unsigned int)CToolUnits::toInt16(&pszBuffer[index]); index += 2; // current group m_nCurrentGroup = (unsigned int)CToolUnits::toInt16(&pszBuffer[index]); index += 2; // ½âÊÍÊý¾Ý return 538 * 2; } int CProcessData::unserialize(const char* pszBuffer, int nBufferSize) { if (nBufferSize < 538 * 2) return -1; int index = 0; memcpy(&m_nCassetteSequenceNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nJobSequenceNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); CToolUnits::convertString(&pszBuffer[index], 10 * 2, m_strGlassId); index += 10 * 2; CToolUnits::convertString(&pszBuffer[index], 8 * 2, m_strStartTime); index += 8 * 2; CToolUnits::convertString(&pszBuffer[index], 8 * 2, m_strEndTime); index += 8 * 2; memcpy(&m_nTotalParameter, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nTotalGroup, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nCurrentGroup, &pszBuffer[index], sizeof(short)); index += sizeof(short); // ²ÎÊýԭʼÊý¾Ý m_paramsRawData.clear(); m_paramsRawData.insert( m_paramsRawData.end(), reinterpret_cast(&pszBuffer[index]), reinterpret_cast(&pszBuffer[index]) + 500); return 538 * 2; } void CProcessData::getAttributeVector(CAttributeVector& attrubutes, int beginWeight) { unsigned int weight = beginWeight; attrubutes.addAttribute(new CAttribute("Glass ID", m_strGlassId.c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("Start Time", m_strStartTime.c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("End Time", m_strEndTime.c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("Total Parameter", std::to_string(m_nTotalParameter).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("Total Group", std::to_string(m_nTotalGroup).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("Current Group", std::to_string(m_nCurrentGroup).c_str(), "", weight++)); } }