⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nsdialog.cpp

📁 规约转换 103.104 规约转换 适用于电力系统
💻 CPP
字号:
// NSDialog.cpp : implementation file
//
// This is a part of the Nice Information's source code.
// Copyright (C) 1994 Nice Information Corporation
// All rights reserved.
//
// Complier: Microsoft Visual C++ 5.00, MFC 4.0
//
// create : doo, 2000.1.14 for LonWork
//

#include "stdafx.h"

#include "datafile.h"

#include "103.h"
#include "NSDialog.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern C103App theApp;

/////////////////////////////////////////////////////////////////////////////
// CNeuronListDlg dialog


CNeuronListDlg::CNeuronListDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CNeuronListDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CNeuronListDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CNeuronListDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CNeuronListDlg)
	DDX_Control(pDX, IDC_LIST, m_lstNeuronId);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CNeuronListDlg, CDialog)
	//{{AFX_MSG_MAP(CNeuronListDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CNeuronListDlg message handlers

BOOL CNeuronListDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	LV_COLUMN lvColumn;

	lvColumn.mask = LVCF_FMT | LVCF_SUBITEM | LVCF_TEXT | LVCF_WIDTH;
	lvColumn.fmt = LVCFMT_LEFT;
	lvColumn.cx = 45;
	lvColumn.pszText = "编号";
	lvColumn.cchTextMax = 4;
	lvColumn.iSubItem = 0;

	m_lstNeuronId.InsertColumn( 0, &lvColumn );

	lvColumn.cx = 140;
	lvColumn.pszText = "IP:公共地址";
	lvColumn.cchTextMax = 11;
	lvColumn.iSubItem = 1;

	m_lstNeuronId.InsertColumn( 1, &lvColumn );

	lvColumn.cx = 50;
	lvColumn.pszText = "通讯";
	lvColumn.cchTextMax = 4;
	lvColumn.iSubItem = 2;

	m_lstNeuronId.InsertColumn( 2, &lvColumn );

	lvColumn.cx = 80;
	lvColumn.pszText = "制造商";
	lvColumn.cchTextMax = 8;
	lvColumn.iSubItem = 3;

	m_lstNeuronId.InsertColumn( 3, &lvColumn );

	lvColumn.cx = 80;
	lvColumn.pszText = "类型编号";
	lvColumn.cchTextMax = 8;
	lvColumn.iSubItem = 4;

	m_lstNeuronId.InsertColumn( 4, &lvColumn );

	lvColumn.cx = 80;
	lvColumn.pszText = "出厂编号";
	lvColumn.cchTextMax = 8;
	lvColumn.iSubItem = 4;

	m_lstNeuronId.InsertColumn( 5, &lvColumn );

	lvColumn.cx = 80;
	lvColumn.pszText = "版本号";
	lvColumn.cchTextMax = 6;
	lvColumn.iSubItem = 4;

	m_lstNeuronId.InsertColumn( 6, &lvColumn );

	POSITION pos1 = theApp.m_ListChannel.GetHeadPosition();
	while( pos1 )
	{
		CChannel* pChannel = theApp.m_ListChannel.GetNext( pos1 );

		POSITION pos = pChannel->m_ListEquipment.GetHeadPosition();
		while( pos )
		{
			CEquipment* pEquipment = pChannel->m_ListEquipment.GetNext( pos );

			// 编号
			char szTemp[64];
			if ( (WORD)-1 != pEquipment->m_LogicAddr.m_wRtu )
				sprintf( szTemp, "%d", pEquipment->m_LogicAddr.m_wRtu );
			else
				sprintf( szTemp, "?" );

			int nIndex = m_lstNeuronId.InsertItem( m_lstNeuronId.GetItemCount(), szTemp );

			// IP:LogicAddr
			sprintf( szTemp, ":%u", pEquipment->m_LogicAddr.m_btAddrLgc );
			if ( pEquipment->m_pChannel )
				m_lstNeuronId.SetItemText( nIndex, 1, pEquipment->m_pChannel->GetIP() + szTemp );

			// 通讯
			if ( pEquipment->m_pChannel && pEquipment->m_pChannel->IsCommOK() )
				sprintf( szTemp, "正常" );
			else
				sprintf( szTemp, "中断" );

			m_lstNeuronId.SetItemText( nIndex, 2, szTemp );

			// 装置类型
			m_lstNeuronId.SetItemText( nIndex, 3, pEquipment->m_szInfo );

			// 类型编号
			sprintf( szTemp, "%d", pEquipment->m_btInfo[0] );
			m_lstNeuronId.SetItemText( nIndex, 4, szTemp );
			
			// 出厂编号
			sprintf( szTemp, "%d", pEquipment->m_btInfo[1] );
			m_lstNeuronId.SetItemText( nIndex, 5, szTemp );

			// 版本号
			sprintf( szTemp, "%d.%d", pEquipment->m_btInfo[3], pEquipment->m_btInfo[2] );
			m_lstNeuronId.SetItemText( nIndex, 6, szTemp );
		}
	}

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -