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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
 
#pragma once
 
#include "ViewTree.h"
#include "KMachine.h"
#include <vector>
 
class CNavToolBar : public CMFCToolBar
{
    virtual void OnUpdateCmdUI(CFrameWnd* /*pTarget*/, BOOL bDisableIfNoHndler)
    {
        CMFCToolBar::OnUpdateCmdUI((CFrameWnd*) GetOwner(), bDisableIfNoHndler);
    }
 
    virtual BOOL AllowShowOnList() const { return FALSE; }
};
 
#define MENU_DEVICE            0x10000000
#define MENU_PROPERTY        0x01000000
#define MENU_PORT            0x00100000
#define MENU_REMOTE_DEVICE    0x00010000
 
 
// #pragma anon_unions
typedef struct tagChnStat
{
    unsigned short Stat;
    unsigned short SendPackets;
    unsigned short RecvPackets;
    unsigned short LastSentTimeTick;
    unsigned short LostPackets;
    unsigned short CtnLstPkts;
    unsigned short MaxCtnLstPkts;
    unsigned short NotPkgErr;
    unsigned short PkgLenErr;
    unsigned short BCCErr;
    unsigned short TimeOutErr;
    unsigned short Delay;
    unsigned short MaxDelay;
    unsigned short SendTimeInterval;
    union
    {
        unsigned short ClientDatas[10];
        struct {
            unsigned short ClientRecvPkts;    //
            unsigned short ClientSendPkts;    //
            unsigned short ClientNotPktErr;    //
            unsigned short ClientMisIdPkts;    //
    //        unsigned int ClientNoEndErr;    //
            unsigned short ClientPkgLenErr;    //
            unsigned short ClientBccErr;        //
            unsigned short ClientTimeOutErr;    //
        };
    };
} stChnStat;
 
typedef struct tagKwChnStat
{
    union {
        unsigned char MStat;
        struct {
            unsigned char bOnline : 1;
            unsigned char bErr1 : 1;
            unsigned char bErr2 : 1;
            unsigned char bReq : 1;
        };
    };
    unsigned char SStat;
 
    uint32_t sentCount;                    //发送计数
    uint32_t recvCount;                    //接收计数
 
    uint32_t latancy;                        //延迟
    uint32_t cycleTime;                    //循环时间
 
    uint16_t LostPackets;                //丢包计数
    uint16_t CtnLstPkts;                //连续丢包计数
    uint16_t MaxCtnLstPkts;            //最大连续丢包计数
 
    uint16_t TXErr;                            //发送错误计数
    uint16_t RXErr;                            //接收错误计数
    uint16_t CRCErr;                         //CRC错误计数
    uint16_t PktErr;                        //包错误    ;
    uint16_t ChnErr;                        //频道错误;
    uint16_t nErrChn;                        //错误的频道号;
 
    uint16_t StepErr1;                    //步骤错误1
    uint16_t StepErr2;                    //步骤错误2
    uint16_t Err1Count;                    //微闪报警次数
    uint16_t Err2Count;                    //大闪报警次数
    uint16_t Err3Count;                    //严重丢失信号次数
 
    int8_t RSSI;                                //信号强度
    int8_t SNR;                                //信噪比
    int8_t tRSSI;                            //对方信号强度
    int8_t tSNR;                            //对方信噪比
 
    uint32_t targetSentCount;            //对方发送数量
    uint32_t targetRecvdCount;        //对方接受数量    
} stKwChnStat;
 
 
class CNavView : public CDockablePane
{
public:
    CNavView() noexcept;
    virtual ~CNavView();
 
    void AdjustLayout();
    void OnChangeVisualStyle();
    stDeviceDef m_DeviceInfo = {0};
    stKMInfoBlock m_infoblock;
 
    int bPortRegsUpdated[8] = { 0 };
    stPortDef PortDefs[8];
 
    std::vector<stDeviceDef>  PortDeviceList[8];
    int bPortDeviceUpdated[16] = { 0 };
    stDeviceInfo PortDeviceInfos[16];
 
    int LastUpdateIndex[16] = { 0 };
 
protected:
    CNavToolBar m_wndToolBar;
    CViewTree m_NavViewTree;
//    HTREEITEM hRoot1;
    CImageList m_NavViewImages;
    UINT m_nCurrSort;
 
    void FillDeviceView();
 
// 重写
public:
    virtual BOOL PreTranslateMessage(MSG* pMsg);
 
protected:
    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
    afx_msg void OnSize(UINT nType, int cx, int cy);
    afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
    afx_msg void OnClassAddMemberFunction();
    afx_msg void OnClassAddMemberVariable();
    afx_msg void OnClassDefinition();
    afx_msg void OnClassProperties();
    afx_msg void OnNewFolder();
    afx_msg void OnSetComm();
    afx_msg void OnConnect();
    afx_msg void OnDisConnect();
    afx_msg void OnPaint();
    afx_msg void OnSetFocus(CWnd* pOldWnd);
    afx_msg LRESULT OnChangeActiveTab(WPARAM, LPARAM);
    afx_msg void OnSort(UINT id);
    afx_msg void OnUpdateSort(CCmdUI* pCmdUI);
    afx_msg void OnNMDblclkNavTree1(NMHDR *pNMHDR, LRESULT *pResult);
    afx_msg void OnNMClkNavTree1(NMHDR *pNMHDR, LRESULT *pResult);
    DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnTimer(UINT_PTR nIDEvent);
    int DelayInit();
    int UpdateDisplay();
    int nDisplayCount = 0;
    afx_msg void OnMenuNavSetConn();
    afx_msg void OnMenuNavConnect();
    afx_msg void OnMenuNavDisconnect();
    int GetDocCount();
    afx_msg void OnMenuNvUpdateFirmware();
    afx_msg void OnMenuNvDeviceReadInfo();
    afx_msg void OnRemoteRefreshData();
    afx_msg void OnRemoteBlinkLED();
    afx_msg void OnRemoteUpdateFirmware();
    afx_msg void OnLedBlink();
    afx_msg void OnResetDevice();
    afx_msg void OnRemoteDeviceReset();
    afx_msg void OnRemoteBlinkLedAll();
    afx_msg void OnPortReset();
    afx_msg void OnPortResetAllChild();
    afx_msg void OnCommtest();
    afx_msg void OnDeviceConfig();
};