#include "stdafx.h"
|
#include "CJobDataA.h"
|
#include "ToolUnits.h"
|
|
|
namespace SERVO {
|
CJobDataA::CJobDataA()
|
{
|
|
}
|
|
CJobDataA::~CJobDataA()
|
{
|
|
}
|
|
short CJobDataA::getPortNo()
|
{
|
return m_nPortNo;
|
}
|
|
std::string& CJobDataA::getCarrierId()
|
{
|
return m_strCarrierId;
|
}
|
|
std::string& CJobDataA::getPruductId()
|
{
|
return m_pruductId;
|
}
|
|
int CJobDataA::serialize(char* pszBuffer, int nBufferSize)
|
{
|
if (nBufferSize < 640) return -1;
|
|
int index = 0;
|
memcpy(&pszBuffer[index], &m_nPortNo, sizeof(short));
|
index += sizeof(short);
|
|
int strLen = min(20, m_strCarrierId.size());
|
memcpy(&pszBuffer[index], m_strCarrierId.c_str(), strLen);
|
index += 20;
|
|
strLen = min(20, m_pruductId.size());
|
memcpy(&pszBuffer[index], m_pruductId.c_str(), strLen);
|
index += 20;
|
|
memcpy(&pszBuffer[index], &m_nCarrierState, sizeof(short));
|
index += sizeof(short);
|
|
memcpy(&pszBuffer[index], &m_nSlotMapping, sizeof(int));
|
index += sizeof(int);
|
|
memcpy(&pszBuffer[index], &m_nSlotSelectedFlag, sizeof(int));
|
index += sizeof(int);
|
|
for (int i = 0; i < min(25, m_glassIds.size()); i++) {
|
std::string& strGlassId = m_glassIds.at(i);
|
strLen = min(20, strGlassId.size());
|
memcpy(&pszBuffer[index], strGlassId.c_str(), strLen);
|
index += 20;
|
}
|
|
return 320 * 2;
|
}
|
|
int CJobDataA::unserialize(const char* pszBuffer, int nBufferSize)
|
{
|
if (nBufferSize < 640) return -1;
|
|
int index = 0;
|
memcpy(&m_nPortNo, &pszBuffer[index], sizeof(short));
|
index += sizeof(short);
|
|
CToolUnits::convertString(&pszBuffer[index], 20, m_strCarrierId);
|
index += 20;
|
|
CToolUnits::convertString(&pszBuffer[index], 20, m_pruductId);
|
index += 20;
|
|
memcpy(&m_nCarrierState, &pszBuffer[index], sizeof(short));
|
index += sizeof(short);
|
|
memcpy(&m_nSlotMapping, &pszBuffer[index], sizeof(int));
|
index += sizeof(int);
|
|
memcpy(&m_nSlotSelectedFlag, &pszBuffer[index], sizeof(int));
|
index += sizeof(int);
|
|
std::string strGlassId;
|
m_glassIds.clear();
|
for (int i = 0; i < 25; i++) {
|
CToolUnits::convertString(&pszBuffer[index], 20, strGlassId);
|
index += 20;
|
if (!strGlassId.empty()) {
|
m_glassIds.push_back(strGlassId);
|
}
|
}
|
|
return 320 * 2;
|
}
|
|
short CJobDataA::getCarrierState()
|
{
|
return m_nCarrierState;
|
}
|
|
std::string& CJobDataA::getCarrierStateDescription(std::string& strDescription)
|
{
|
static char* pszDescription[20] = {
|
"Bind",
|
"CancelPod",
|
"CancelPodNotification",
|
"CancelPodOut",
|
"CancelPodAtPort",
|
"CancelBind",
|
"Clamp",
|
"ClosePod",
|
"IndexDown",
|
"IndexUp",
|
"OpenPod",
|
"PodComplete",
|
"PodIn",
|
"PodNotification",
|
"PodOut",
|
"PodRelease",
|
"PodTagReadData",
|
"PodTagWriteData",
|
"Proceed WithPod",
|
"Unclamp"
|
};
|
|
if (0 <= m_nCarrierState && m_nCarrierState < 20) {
|
strDescription = pszDescription[m_nCarrierState];
|
}
|
else {
|
strDescription = "";
|
}
|
|
return strDescription;
|
}
|
|
int CJobDataA::getSlotMapping()
|
{
|
return m_nSlotMapping;
|
}
|
|
int CJobDataA::getSlotSelectedFlag()
|
{
|
return m_nSlotSelectedFlag;
|
}
|
|
std::vector<std::string>& CJobDataA::getGlassIds()
|
{
|
return m_glassIds;
|
}
|
}
|