#include "stdafx.h" #include "CPanel.h" #include "Log.h" #include "ToolUnits.h" CPanel::CPanel() : CContext() { m_datas.reserve(PANEL_DATA_SIZE); memset(&m_dataMath[ITOTAL], 0, sizeof(UNITDATA1)); memset(&m_dataMath[IAVE], 0, sizeof(UNITDATA1)); for (int i = 0; i < 10; i++) { m_dataMath[IMAX].temp[i] = -99999999.0f; m_dataMath[IMIN].temp[i] = 99999999.0f; } m_dataMath[IMAX].vacuum = -99999999.0f; m_dataMath[IMIN].vacuum = 99999999.0f; for (int i = 0; i < 5; i++) { m_dataMath[IMAX].pressure[i] = -99999999.0f; m_dataMath[IMIN].pressure[i] = 99999999.0f; } m_nUnitId = 0; m_nStep = 0; m_fAir1 = 0.0; m_fAir2 = 0.0; m_fAir3 = 0.0; m_nPre1 = 0; m_fTmp1 = 0.0; m_fTmp2 = 0.0; m_pszParamsRawData = new char[PARAM_RAWDATA_SIZE]; memset(m_pszParamsRawData, 0, PARAM_RAWDATA_SIZE); } CPanel::CPanel(const char* pszQRCode, int nUnitId) : CContext() { m_strQRCode = pszQRCode; m_datas.reserve(PANEL_DATA_SIZE); memset(&m_dataMath[ITOTAL], 0, sizeof(UNITDATA1)); memset(&m_dataMath[IAVE], 0, sizeof(UNITDATA1)); for (int i = 0; i < 10; i++) { m_dataMath[IMAX].temp[i] = -99999999.0f; m_dataMath[IMIN].temp[i] = 99999999.0f; } m_dataMath[IMAX].vacuum = -99999999.0f; m_dataMath[IMIN].vacuum = 99999999.0f; for (int i = 0; i < 5; i++) { m_dataMath[IMAX].pressure[i] = -99999999.0f; m_dataMath[IMIN].pressure[i] = 99999999.0f; } m_nUnitId = nUnitId; m_nStep = 0; m_fAir1 = 0.0; m_fAir2 = 0.0; m_fAir3 = 0.0; m_nPre1 = 0; m_fTmp1 = 0.0; m_fTmp2 = 0.0; m_pszParamsRawData = new char[2048]; memset(m_pszParamsRawData, 0, 2048); } CPanel::~CPanel() { m_datas.clear(); for (auto item : m_params) { delete item; } m_params.clear(); if (m_pszParamsRawData != nullptr) { delete[] m_pszParamsRawData; m_pszParamsRawData = nullptr; } } std::string& CPanel::getClassName() { static std::string strName = "CPanel"; return strName; } std::string CPanel::toString() { std::string strText; strText += "CPanel["; strText += ("QRCode:" + m_strQRCode + ";"); strText += "]"; return strText; } std::string& CPanel::getQRCode() { return m_strQRCode; } void CPanel::setQRCode(const char* pszQRCode) { m_strQRCode = pszQRCode; } int CPanel::getUnitId() { return m_nUnitId; } void CPanel::setUnitId(int id) { m_nUnitId = id; } void CPanel::setStep(int step) { if (step == STEP_RECEIVED) { m_timeReceived = CToolUnits::getTimestamp(); } else if (step == STEP_BEGIN_SAMPLING) { m_timeBeginSampling = CToolUnits::getTimestamp(); } else if (step == STEP_END_SAMPLING) { m_timeEndSampling = CToolUnits::getTimestamp(); } else if (step == STEP_REMOVED) { m_timeRemoved = CToolUnits::getTimestamp(); } m_nStep = step; } int CPanel::getStep() { return m_nStep; } int CPanel::addData(UNITDATA1& data) { m_datas.push_back(data); int size = (int)m_datas.size(); // ×î´ó×îСƽ¾ùÊý¼ÆËã for (int i = 0; i < 10; i++) { m_dataMath[ITOTAL].temp[i] += data.temp[i]; m_dataMath[IAVE].temp[i] = m_dataMath[ITOTAL].temp[i] / (float)size; m_dataMath[IMAX].temp[i] = max(m_dataMath[IMAX].temp[i], data.temp[i]); m_dataMath[IMIN].temp[i] = min(m_dataMath[IMIN].temp[i], data.temp[i]); } m_dataMath[ITOTAL].vacuum += data.vacuum; m_dataMath[IAVE].vacuum = m_dataMath[ITOTAL].vacuum / (float)size; m_dataMath[IMAX].vacuum = max(m_dataMath[IMAX].vacuum, data.vacuum); m_dataMath[IMIN].vacuum = min(m_dataMath[IMIN].vacuum, data.vacuum); for (int i = 0; i < 5; i++) { m_dataMath[ITOTAL].pressure[i] += data.pressure[i]; m_dataMath[IAVE].pressure[i] = m_dataMath[ITOTAL].pressure[i] / (float)size; m_dataMath[IMAX].pressure[i] = max(m_dataMath[IMAX].pressure[i], data.pressure[i]); m_dataMath[IMIN].pressure[i] = min(m_dataMath[IMIN].pressure[i], data.pressure[i]); } return size; } const std::vector& CPanel::getDatas() { return m_datas; } void CPanel::getDatas(std::vector& out) { Lock(); out = m_datas; Unlock(); } BOOL CPanel::getNewestData(UNITDATA1& data) { if (m_datas.empty()) return FALSE; data = m_datas[m_datas.size() - 1]; return TRUE; } UNITDATA1& CPanel::getMathData(int index) { ASSERT(0 <= index && index < 4); return m_dataMath[index]; } void CPanel::setMathData(int index, UNITDATA1& data) { ASSERT(0 <= index && index < 4); memcpy(&m_dataMath[index], &data, sizeof(UNITDATA1)); } int CPanel::getBlodLen() { return sizeof(UNITDATA1) * (4 + m_datas.size()) + PARAM_RAWDATA_SIZE; } int CPanel::getBlod(char* pszBuffer, int nBufferSize) { int size = sizeof(UNITDATA1) * (4 + m_datas.size()) + PARAM_RAWDATA_SIZE; if (nBufferSize < size) return -1; memcpy(pszBuffer, m_pszParamsRawData, PARAM_RAWDATA_SIZE); pszBuffer += PARAM_RAWDATA_SIZE; memcpy(pszBuffer, &m_dataMath[0], sizeof(UNITDATA1) * 4); pszBuffer += sizeof(UNITDATA1) * 4; for (auto& item : m_datas) { memcpy(pszBuffer, &item, sizeof(UNITDATA1)); pszBuffer += sizeof(UNITDATA1); } return size; } int CPanel::setBlod(char* pszBlod, int len) { if (len < PARAM_RAWDATA_SIZE) return -1; int count = (len - PARAM_RAWDATA_SIZE) / sizeof(UNITDATA1); if (count < 4) return -2; SetParamsRawData(m_pszParamsRawData); pszBlod += PARAM_RAWDATA_SIZE; memcpy(&m_dataMath[0], pszBlod, sizeof(UNITDATA1) * 4); pszBlod += sizeof(UNITDATA1) * 4; m_datas.clear(); for (int i = 4; i < count; i++) { UNITDATA1 data; memcpy(&data, pszBlod, sizeof(UNITDATA1)); m_datas.push_back(data); pszBlod += sizeof(UNITDATA1); } return 0; } void CPanel::Serialize(CArchive& ar) { if (ar.IsStoring()) { Lock(); ar << m_timeReceived; ar << m_timeBeginSampling; ar << m_timeEndSampling; ar << m_timeRemoved; WriteString(ar, m_strQRCode); ar << m_fAir1; ar << m_fAir2; ar << m_fAir3; ar << m_nPre1; ar << m_fTmp1; ar << m_fTmp2; WriteString(ar, m_strRecipeName); int nCount = (int)m_datas.size(); ar << nCount; for (auto& item : m_datas) { ar.Write(&item, sizeof(UNITDATA1)); } nCount = (int)m_params.size(); ar << nCount; for (auto& item : m_params) { item->Serialize(ar); } Unlock(); } else { Lock(); ar >> m_timeReceived; ar >> m_timeBeginSampling; ar >> m_timeEndSampling; ar >> m_timeRemoved; ReadString(ar, m_strQRCode); ar >> m_fAir1; ar >> m_fAir2; ar >> m_fAir3; ar >> m_nPre1; ar >> m_fTmp1; ar >> m_fTmp2; ReadString(ar, m_strRecipeName); int nCount = 0; ar >> nCount; for (int i = 0; i < nCount; i++) { UNITDATA1 ud1; ar.Read(&ud1, sizeof(UNITDATA1)); m_datas.push_back(ud1); } ar >> nCount; for (int i = 0; i < nCount; i++) { CParam* pParam = new CParam(); pParam->Serialize(ar); m_params.push_back(pParam); } Unlock(); } } bool CPanel::getReceivedTime(int& year, int& month, int& day) { ULONGLONG time1; time1 = m_timeReceived / 1000; struct tm timeinfo; time_t t = time_t(time1); localtime_s(&timeinfo, &t); year = timeinfo.tm_year + 1900; month = timeinfo.tm_mon + 1; day = timeinfo.tm_mday; return true; } ULONG64 CPanel::GetCurrentSampleTime() { return m_timeBeginSampling + m_datas.size() * 200; } ULONGLONG CPanel::getReceivedTime() { return m_timeReceived; } void CPanel::setReceivedTime(ULONGLONG time) { m_timeReceived = time; } ULONGLONG CPanel::getBeginSamplingTime() { return m_timeBeginSampling; } void CPanel::setBeginSamplingTime(ULONGLONG time) { m_timeBeginSampling = time; } ULONGLONG CPanel::getEndSamplingTime() { return m_timeEndSampling; } void CPanel::setEndSamplingTime(ULONGLONG time) { m_timeEndSampling = time; } ULONGLONG CPanel::getRemovedTime() { return m_timeRemoved; } void CPanel::setRemovedTime(ULONGLONG time) { m_timeRemoved = time; } void CPanel::setRecipeName(const char* pszName) { m_strRecipeName = pszName; } std::string& CPanel::getRecipeName() { return m_strRecipeName; } void CPanel::setAir1(double air) { m_fAir1 = air; } double CPanel::getAir1() { return m_fAir1; } void CPanel::setAir2(double air) { m_fAir2 = air; } double CPanel::getAir2() { return m_fAir2; } void CPanel::setAir3(double air) { m_fAir3 = air; } double CPanel::getAir3() { return m_fAir3; } void CPanel::setPre1(int pre) { m_nPre1 = pre; } int CPanel::getPre1() { return m_nPre1; } void CPanel::setTmp1(double tmp) { m_fTmp1 = tmp; } double CPanel::getTmp1() { return m_fTmp1; } void CPanel::setTmp2(double tmp) { m_fTmp2 = tmp; } double CPanel::getTmp2() { return m_fTmp2; } void CPanel::addIntParam(const char* pszName, const char* pszUnit, int value) { CParam* pParam = new CParam(pszName, pszUnit, value); m_params.push_back(pParam); } void CPanel::addDoubleParam(const char* pszName, const char* pszUnit, double value) { CParam* pParam = new CParam(pszName, pszUnit, value); m_params.push_back(pParam); } std::vector& CPanel::getParams() { return m_params; } void CPanel::SetParamsRawData(const char* pszData) { memcpy(m_pszParamsRawData, pszData, PARAM_RAWDATA_SIZE); // ½âÊÍÊý¾Ýµ½m_paramsÖÐ BOOL bUnitA = TRUE, bUnitB = TRUE; int i, v, startAddr = 5500; if (bUnitA) { i = (5520 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÏÂÇ»ÌåÎüÕæ¿ÕÑÓʱ", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_¸É±ÃÎüÕæ¿ÕÑÓʱ", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_·Ö×Ó±ÃÎüÕæ¿ÕÑÓʱ", "", v); } if (bUnitB) { i = (5540 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÏÂÇ»ÌåÎüÕæ¿ÕÑÓʱ", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_¸É±ÃÎüÕæ¿ÕÑÓʱ", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_·Ö×Ó±ÃÎüÕæ¿ÕÑÓʱ", "", v); } if (bUnitA) { i = (5600 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåÖÁ´ýÔ¤ÈÈλËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåÖÁÔ¤ÈÈλËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåԤѹËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåѹºÏËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»Ì屣ѹʱ¼ä", "Ãë", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåË®Àäʱ¼ä", "Ãë", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_Ô¤ÈÈÑÓʱ", "Ãë", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_·ÖÀëĤʹÓôÎÊý", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª·ÖÀëĤ´ÎÊýÉ趨", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_·ÖÀëËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»Ìå³õʼÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM1ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM2ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM3ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM4ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM5ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»Ìå5ÖáÁ¦¾ØÑ¹ºÏËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåM1ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåM2ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåM3ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåM4ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåM5ÖáѹºÏѹÁ¦", "kg", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåZÖáѹºÏ×ÜѹÁ¦", "kg", v); i += 4; addDoubleParam("Aµ¥Ôª_ÆøÄÒµ±Ç°Ñ¹Á¦", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_ÌùºÏÆøÄÒѹÁ¦É趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_ÆøÄÒѹËõÂÊ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_ÉÏÇ»Ìå³õʼζÈ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_ÏÂÇ»Ìå³õʼζÈ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_¸É±Ã³éÕæ¿ÕÉ趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_·Ö×ӱóéÕæ¿ÕÉ趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_¶¥PINϽµËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_¸É±ÃÆø·§¹Ø±ÕÑÓʱ", "", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»ZÖáѹÈëÁ¿²¹³¥Öµ", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÊÕĤÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_·ÅĤÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_Á¦¾Øµç»úתËÙ", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_·ÖÀë¾àÀë²¹³¥Öµ", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåÀäȴζÈ", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÏÂÇ»ÌåÀäȴζÈ", "", v); i += 2; addIntParam("Aµ¥Ôª_ѹ¸ÐÑ¹Ö½ÆøÄÒѹÁ¦É趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_Ö÷ÖáÁ¦¾ØÔöËÙÂÊ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_Ö÷ÖáÁ¦¾ØÉÏÏÞ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_Ö÷ÖáÁ¦¾Ø¼õËÙÂÊ", "%", (double)v * 0.1); i += 12; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»Ìå·ÖÀëĤ¸ß¶È²¹³¥", "", v); i += 4; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåѹºÏζÈ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Aµ¥Ôª_ÏÂÇ»ÌåѹºÏζÈ", "", (double)toFloat(&pszData[i])); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåZÖá³õʼѹºÏѹÁ¦", "kg", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_Step1³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_Step2³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_Step3³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_Step4³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_Step5³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_Step6³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM1ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM2ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM3ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM4ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ÉÏÇ»ÌåM5ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); } if (bUnitB) { i = (5700 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåÖÁ´ýÔ¤ÈÈλËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåÖÁÔ¤ÈÈλËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåԤѹËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåѹºÏËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»Ì屣ѹʱ¼ä", "Ãë", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåË®Àäʱ¼ä", "Ãë", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_Ô¤ÈÈÑÓʱ", "Ãë", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_·ÖÀëĤʹÓôÎÊý", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª·ÖÀëĤ´ÎÊýÉ趨", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_·ÖÀëËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»Ìå³õʼÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM1ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM2ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM3ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM4ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM5ÖáÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»Ìå5ÖáÁ¦¾ØÑ¹ºÏËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåM1ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåM2ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåM3ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåM4ÖáѹºÏѹÁ¦", "kg", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåM5ÖáѹºÏѹÁ¦", "kg", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåZÖáѹºÏ×ÜѹÁ¦", "kg", v); i += 4; addDoubleParam("Bµ¥Ôª_ÆøÄÒµ±Ç°Ñ¹Á¦", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_ÌùºÏÆøÄÒѹÁ¦É趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_ÆøÄÒѹËõÂÊ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_ÉÏÇ»Ìå³õʼζÈ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_ÏÂÇ»Ìå³õʼζÈ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_¸É±Ã³éÕæ¿ÕÉ趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_·Ö×ӱóéÕæ¿ÕÉ趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_¶¥PINϽµËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_¸É±ÃÆø·§¹Ø±ÕÑÓʱ", "", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»ZÖáѹÈëÁ¿²¹³¥Öµ", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÊÕĤÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_·ÅĤÁ¦¾ØÖµ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_Á¦¾Øµç»úתËÙ", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_·ÖÀë¾àÀë²¹³¥Öµ", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåÀäȴζÈ", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÏÂÇ»ÌåÀäȴζÈ", "", v); i += 2; addIntParam("Bµ¥Ôª_ѹ¸ÐÑ¹Ö½ÆøÄÒѹÁ¦É趨ֵ", "", (double)toFloat(&pszData[i])); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_Ö÷ÖáÁ¦¾ØÔöËÙÂÊ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_Ö÷ÖáÁ¦¾ØÉÏÏÞ", "%", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_Ö÷ÖáÁ¦¾Ø¼õËÙÂÊ", "%", (double)v * 0.1); i += 12; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»Ìå·ÖÀëĤ¸ß¶È²¹³¥", "", v); i += 4; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåѹºÏζÈ", "", (double)toFloat(&pszData[i])); i += 4; addDoubleParam("Bµ¥Ôª_ÏÂÇ»ÌåѹºÏζÈ", "", (double)toFloat(&pszData[i])); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåZÖá³õʼѹºÏѹÁ¦", "kg", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_Step1³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_Step2³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_Step3³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_Step4³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_Step5³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_Step6³¬Ê±É趨", "", v); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM1ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM2ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM3ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM4ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); i += 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ÉÏÇ»ÌåM5ÖáÁ¦¾ØÖµ%-ÁÙʱ", "%", (double)v * 0.1); } i = (5800 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("ÀäÈ´¹ñÀäȴʱ¼ä", "", (double)v * 0.1); if (bUnitA) { i = (5840 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ζÈÉϹ«²î", "¶È", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Aµ¥Ôª_ζÈϹ«²î", "¶È", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ѹÁ¦ÉϹ«²î", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ѹÁ¦Ï¹«²î", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_¶¥PinÂýËÙÉÏÉýËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÉÏÇ»ÌåÉýµ½ÁãµãλËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Aµ¥Ôª_ÂýËÙÉÏÉý¾àÀë", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Aµ¥Ôª_¶¥PinÆÆÕæ¿ÕÑÓʱ", "", v); } if (bUnitB) { i = (5870 - startAddr) * 2; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ζÈÉϹ«²î", "¶È", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addDoubleParam("Bµ¥Ôª_ζÈϹ«²î", "¶È", (double)v * 0.1); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ѹÁ¦ÉϹ«²î", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ѹÁ¦Ï¹«²î", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_¶¥PinÂýËÙÉÏÉýËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÉÏÇ»ÌåÉýµ½ÁãµãλËÙ¶È", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8 | (pszData[i + 2] & 0xff) << 16 | (pszData[i + 3] & 0xff) << 24; addIntParam("Bµ¥Ôª_ÂýËÙÉÏÉý¾àÀë", "", v); i += 4; v = (m_pszParamsRawData[i] & 0xff) | (m_pszParamsRawData[i + 1] & 0xff) << 8; addIntParam("Bµ¥Ôª_¶¥PinÆÆÕæ¿ÕÑÓʱ", "", v); } }