QuakeGod
2024-12-24 61deef5cdf96cbfdd6ad45be49e80d597c00ca65
MTerm1/NavView.h
@@ -2,6 +2,8 @@
#pragma once
#include "ViewTree.h"
#include "KMachine.h"
#include <vector>
class CNavToolBar : public CMFCToolBar
{
@@ -13,6 +15,91 @@
   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:
@@ -21,14 +108,26 @@
   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 FillClassView();
   void FillDeviceView();
// 重写
public:
@@ -43,6 +142,9 @@
   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);
@@ -56,5 +158,22 @@
   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();
};