LAPTOP-SNT8I5JK\Boounion
2024-12-09 a14c8cb51345fa3342addde7fa584465c4bc7083
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "stdafx.h"
#include "EQState.h"
#include "ToolUnits.h"
 
 
CEQState::CEQState()
{
    m_nUnitId = 0;
    m_state = EQSTATE::Idle;
    m_nDoorState = -1;
    m_time = CToolUnits::getTimestamp();
}
 
CEQState::CEQState(int unitId, EQSTATE state)
{
    m_nUnitId = unitId;
    m_state = state;
    m_nDoorState = -1;
    m_time = CToolUnits::getTimestamp();
}
 
CEQState::~CEQState()
{
}
 
std::string& CEQState::getClassName()
{
    static std::string strName = "CAlarm";
    return strName;
}
 
std::string CEQState::toString()
{
    CString strTemp;
    std::string strText;
    strText += "CAlarm[";
    strText += ("time:" + CToolUnits::timeToString2(m_time) + ";");
    strText += ("State:" + std::string((LPTSTR)(LPCTSTR)getText(strTemp)) + ";");
    strText += "]";
 
    return strText;
}
 
void CEQState::setDoorState(int doorst)
{
    m_nDoorState = doorst;
}
 
int CEQState::getUnitId()
{
    return m_nUnitId;
}
 
ULONGLONG CEQState::getTime()
{
    return m_time;
}
 
EQSTATE CEQState::getState()
{
    return m_state;
}
 
CString& CEQState::getText(CString& strOut)
{
    static char* pszState[] = {"Idle", "Run", "Down", "Maintenance", "MCHG", "E_TIME"};
    if (m_nDoorState != -1) {
        strOut.Empty();
        if (m_nDoorState & 0x01) strOut.Append("Door State<Open,");
        else strOut.Append("Door State<Close,");
        if (m_nDoorState & 0x02) strOut.Append("Open,");
        else strOut.Append("Close,");
        if (m_nDoorState & 0x04) strOut.Append("Open,");
        else strOut.Append("Close,");
        if (m_nDoorState & 0x08) strOut.Append("Open,");
        else strOut.Append("Close,");
        if (m_nDoorState & 0x10) strOut.Append("Open>");
        else strOut.Append("Close>");
    }
    else {
        strOut = CString(pszState[(int)m_state - 1]);
    }
 
    return strOut;
}
 
void CEQState::Serialize(CArchive& ar)
{
    if (ar.IsStoring())
    {
        Lock();
        ar << m_nUnitId;
        ar << m_time;
        ar << (int)m_state;
        ar << m_nDoorState;
        Unlock();
    }
    else
    {
        int temp;
        Lock();
        ar >> m_nUnitId;
        ar >> m_time;
        ar >> temp;
        m_state = (EQSTATE)temp;
        ar >> m_nDoorState;
        Unlock();
    }
}