#include "stdafx.h" #include "CVcrEventReport.h" #include "ToolUnits.h" namespace SERVO { CVcrEventReport::CVcrEventReport() { } CVcrEventReport::~CVcrEventReport() { } std::string& CVcrEventReport::getGlassId() { return m_strGlassId; } short CVcrEventReport::getCassetteSequenceNo() { return m_nCassetteSequenceNo; } short CVcrEventReport::getJobSequenceNo() { return m_nJobSequenceNo; } short CVcrEventReport::getUnitNo() { return m_nUnitNo; } short CVcrEventReport::getVcrNo() { return m_nVcrNo; } short CVcrEventReport::getVcrResult() { return m_nVcrResult; } int CVcrEventReport::serialize(char* pszBuffer, int nBufferSize) { if (nBufferSize < 30) return -1; int index = 0; int strLen = min(20, m_strGlassId.size()); memcpy(&pszBuffer[index], m_strGlassId.c_str(), strLen); index += 20; memcpy(&pszBuffer[index], &m_nCassetteSequenceNo, sizeof(short)); index += sizeof(short); memcpy(&pszBuffer[index], &m_nJobSequenceNo, sizeof(short)); index += sizeof(short); memcpy(&pszBuffer[index], &m_nUnitNo, sizeof(short)); index += sizeof(short); memcpy(&pszBuffer[index], &m_nVcrNo, sizeof(short)); index += sizeof(short); memcpy(&pszBuffer[index], &m_nVcrResult, sizeof(short)); index += sizeof(short); return 15 * 2; } int CVcrEventReport::unserialize(const char* pszBuffer, int nBufferSize) { if (nBufferSize < 30) return -1; int index = 0; CToolUnits::convertString(&pszBuffer[index], 20, m_strGlassId); index += 20; memcpy(&m_nCassetteSequenceNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nJobSequenceNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nUnitNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nVcrNo, &pszBuffer[index], sizeof(short)); index += sizeof(short); memcpy(&m_nVcrResult, &pszBuffer[index], sizeof(short)); index += sizeof(short); return 15 * 2; } void CVcrEventReport::getAttributeVector(CAttributeVector& attrubutes, int beginWeight) { unsigned int weight = beginWeight; std::string strTemp; attrubutes.addAttribute(new CAttribute("GlassId", m_strGlassId.c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("CassetteSequenceNo", std::to_string(m_nCassetteSequenceNo).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("JobSequenceNo", std::to_string(m_nJobSequenceNo).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("UnitNo", std::to_string(m_nUnitNo).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("VcrNo", std::to_string(m_nVcrNo).c_str(), "", weight++)); attrubutes.addAttribute(new CAttribute("VcrResult", std::to_string(m_nVcrResult).c_str(), "", weight++)); } std::string& CVcrEventReport::getVcrResultDescription(std::string& strDescription) { static char* pszDescription[4] = { "VCR Reading OK & Match With Job Data Glass ID", "VCR Reading OK & Miss Match With Job Data Glass ID", "VCR Reading Fail & Key In & Match With Job Data Glass ID", "VCR Reading Fail & Key In & Miss Match With Job Data Glass ID" }; if (1 <= m_nVcrResult && m_nVcrResult <= 4) { strDescription = pszDescription[m_nVcrResult - 1]; } else { strDescription = ""; } return strDescription; } }