QuakeGod
2024-12-24 61deef5cdf96cbfdd6ad45be49e80d597c00ca65
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
 
// MultiTerminal2.h: MultiTerminal2 应用程序的主头文件
//
#pragma once
 
#ifndef __AFXWIN_H__
    #error "include 'pch.h' before including this file for PCH"
#endif
 
#include "resource.h"       // 主符号
 
#include "../mylib/LOGGER/Logger.hpp"
#include "../MyLib/MHashINI/MHash.hpp"
 
#include "KDefine.h"
//#include "KLink.h"
#include "KMachine.h"
 
#include "../KLink1/KLink.h"
#pragma comment(lib,"KLink1.lib")
 
void Trans_Tunc(unsigned int, EXCEPTION_POINTERS*);
#define CHECKE(func) try {func;} catch(SE_Exception &e) {DisplayException(_T(__FILE__),__LINE__,_T(__FUNCTION__),_T(#func),e);} catch (CException * e) {DisplayException(_T(__FILE__),__LINE__,_T(__FUNCTION__),_T(#func),e);} catch (...){DisplayException(_T(__FILE__),__LINE__,_T(__FUNCTION__),_T(#func));}
class SE_Exception
{
private:
    SE_Exception() {}
    unsigned int nSE;
    PVOID Addr;
    CString InfoStr;
public:
    SE_Exception(SE_Exception& e) : nSE(e.nSE) {}
    SE_Exception(unsigned int n) :nSE(n) {}
    SE_Exception(unsigned int n, PVOID a) :nSE(n), Addr(a) {}
    SE_Exception(unsigned int n, PVOID a, CString &str1) :nSE(n), Addr(a), InfoStr(str1) {}
 
    ~SE_Exception() {}
    unsigned int getSeNumber() { return nSE; }
    PVOID getAddress() { return Addr; }
    CString & getInfoStr() { return InfoStr; }
};
int DisplayException(CString File, int Line, CString Func, CString Sentence, SE_Exception &e);
int DisplayException(CString File, int Line, CString Func, CString Sentence, CException *e);
int DisplayException(CString File, int Line, CString Func, CString Sentence);
 
int SaveMyConfig();
int LoadMyConfig();
 
int SysLog(CString s, int channel = 0); 
int DbgLog(CString s, int channel = 0);
 
int PopupMessage(CString s, int channel = 0);
void DoEvents();
 
extern MHash MyCfg1;
extern Logger myLogger1;
 
 
// CMTerm1App:
// 有关此类的实现,请参阅 MultiTerminal2.cpp
//
 
class CMTerm1App : public CWinAppEx
{
public:
    CMTerm1App() noexcept;
    CMultiDocTemplate* pDocTemplate;
 
    CMultiDocTemplate * m_pLdsViewTemplate;
    CMultiDocTemplate * m_pBldViewTemplate;
    CMultiDocTemplate * m_pBnlViewTemplate;
    CMultiDocTemplate * m_pCtrlViewTemplate;
    CMultiDocTemplate * m_pProgViewTemplate;
 
    CMultiDocTemplate * m_pCoilViewTemplate;
    CMultiDocTemplate * m_pDataViewTemplate;
 
    CMultiDocTemplate * m_pCommDevViewTemplate;
 
    
    CMultiDocTemplate * m_pNewDocTemplate;
 
 
// 重写
public:
    virtual BOOL InitInstance();
    virtual int ExitInstance();
 
// 实现
    bool m_bHiColorIcons;
 
    KMachine myKMachine1;
    KLink1 MyKLink1;
 
    union {
        unsigned char KBDD[2048];
        unsigned short KBDT[1024];
        unsigned char KBDB[2048];
    };
 
    union {
        unsigned char KWLD[2048];
        unsigned short KWLT[1024];
        unsigned char KWLB[2048];
    };
 
 
    bool m_bCommParamSet = false;
    int nComPort;
    int nBaud;
    CStringA ComSettings;
    bool m_bOnline = false;
    bool m_bSimulate = false;
    bool m_bPlcRunning = false;
 
 
 
 
    afx_msg void OnAppAbout();
    DECLARE_MESSAGE_MAP()
    afx_msg void OnFileNew();
    afx_msg void OnComunicationSet();
    afx_msg void OnEnvSet();
};
 
extern CMTerm1App theApp;
 
//class CAnsiParser;
//class CDataParser1;
//class KLink;
//class CSerialCom;
//class HvSerialPort;
 
//extern CAnsiParser MyAnsiParser1;
//extern CDataParser1 MyDataParser1;
//extern KLink MyKLink1;
// extern CSerialCom MySerialCom1;
//extern HvSerialPort myHvSerialPort1;
 
 
CString  intToString(int num,int digit=0);
CString fixToString(int num, int digit = 0, int fracdigit = 0);
CString & intToBinString(int num, int digits = 8);
 
int get_com_name(CString comx, CString &namebuf);
 
CString DeviceTypeToStr(int DeviceTypeVer);