亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? isa.cpp

?? 一個(gè)電力系統(tǒng)方面的ISA通訊規(guī)約
?? CPP
字號(hào):
// ISA.cpp : Defines the initialization routines for the DLL.
//
// create : Benny 2001.7.25

#include "stdafx.h"
#include "ISA.h"
#include "IPremSvr.h"
#include "Serial.h"
#include "nsIRdbTable.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

DECLARE_PREMSERVER_INTERFACE

void FAR PASCAL EXPORT CommCallBack( UINT uMsg, HANDLE handle, WPARAM wParam, LPARAM lParam );
void FAR PASCAL EXPORT TimerProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam );

//
//	Note!
//
//		If this DLL is dynamically linked against the MFC
//		DLLs, any functions exported from this DLL which
//		call into MFC must have the AFX_MANAGE_STATE macro
//		added at the very beginning of the function.
//
//		For example:
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// normal function body here
//		}
//
//		It is very important that this macro appear in each
//		function, prior to any calls into MFC.  This means that
//		it must appear as the first statement within the 
//		function, even before any object variable declarations
//		as their constructors may generate calls into the MFC
//		DLL.
//
//		Please see MFC Technical Notes 33 and 58 for additional
//		details.
//

/////////////////////////////////////////////////////////////////////////////
// CISAApp

BEGIN_MESSAGE_MAP(CISAApp, CWinApp)
	//{{AFX_MSG_MAP(CISAApp)
		// NOTE - the ClassWizard will add and remove mapping macros here.
		//    DO NOT EDIT what you see in these blocks of generated code!
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CISAApp construction

CISAApp::CISAApp()
{
	m_uCTTimer = 0;
	m_uTimer = 0;
	m_uTimes = 0;
	m_uWait = 0;
	m_uTimeOut = 0;
	m_uSimulationTime = 0;
	m_uSwitchTime = 0;
	m_uAnaTime = 0;
	m_uPulTime = 0;
	m_uAllDgtTime = 0;
}

CISAApp::~CISAApp()
{
}

int CISAApp::SendPremMessage(UINT msg, WPARAM wParam, LPARAM lParam)
{
	int nRet = PREM_OK;
    BYTE btAddr;
	PREMDZHPARAM* pDZHParam = NULL;
	RELAYPARAM* pRelayParam = NULL;

	CDevice* pDevice = NULL;
   
	if (  ISPROTECTMSG( msg ) )
	{
		if ( PREM_PROTECTSIGNALRESET==msg )
		{
			PROTECTPARAM *pProtParam = (PROTECTPARAM *)wParam;
			if (!pProtParam)
				return PREM_ERR_PARAM;
			pDevice = GetDevice( pProtParam->btAddr );	
			
		}
		else
		{
			pDZHParam = (PREMDZHPARAM*)lParam;

			if ( !pDZHParam )
				return PREM_ERR_PARAM;
			
			BYTE btAddr = 0;
			((nsIRdbTable*)(pDZHParam->pProtectParam))->GetFieldValue( "地址", &btAddr, DBVT_UCHAR, sizeof(BYTE) );
				
			pDevice = GetDevice( btAddr );	
		}
		if ( !pDevice )
			return PREM_ERR_PARAM;
		
//		if ( !pDevice->CheckProtParam( pDZHParam ) )
//			return PREM_ERR_PARAM;
	}
	else if (  ISRELAYMSG( msg ) )
		return PREM_ERR_PARAM;

	
	switch ( msg )
	{
		case PREM_INIT:
			nRet = InitPrem();
			break;

		case PREM_EXIT:
			ExitPrem();
			break;

		case PREM_SETINTERFACE:
			if ( INTERFACE_PREMSERVER == wParam )
				SET_PREMSERVER_INTERFACE( lParam )
			break;

		case PREM_GETPROTOCOLNAME:
			strcpy( (char*)lParam, PROTOCOLNAME );
			break;

		case PREM_RELAYSELECT:
			break;

		case PREM_RELAYRUN:
			break;

		case PREM_RELAYCANCEL:
			break;

		case PREM_ASKAREA:
			break;

		case PREM_CHANGEAREA:
			break;

		case PREM_ACKCHANGEAREA:
			break;

		case PREM_CANCELCHANGEAREA:
			break;

		case PREM_ASKPROTECTVALUE:
			nRet = pDevice->AskValue( pDZHParam, msg );
			break;

		case PREM_CHANGEPROTECTVALUE:
			nRet = pDevice->ChangeValue( pDZHParam, msg );
			break;

		case PREM_ACKCHANGEPROTECTVALUE:
			nRet = pDevice->AckChangeValue( pDZHParam, msg ); 
			break;

		case PREM_CANCELCHANGEPROTECTVALUE:
			nRet = pDevice->NakChangeValue( pDZHParam, msg ); 
			break;

		case PREM_PROTECTSIGNALRESET:
			nRet = pDevice->SignalReset( pDZHParam, msg );
		
			break;

		case PREM_ASKANALOGUE:
			nRet = pDevice->AskProtectAna( pDZHParam , msg );
			break;
		case PREM_CHECKTIME:
			nRet = pDevice->CheckTime( pDZHParam, msg );
			break;

		case PREM_ASKACCIDENT:
			break;

		default:
			return PREM_ERR_MSG;
	}

	return nRet;

}

void CISAApp::CommCallBack(UINT uMsg, HANDLE handle, WPARAM wParam, LPARAM lParam)
{
	CComPort* pComPort = GetComPort( handle );
	if ( !pComPort )
		return;

	switch ( uMsg )
	{
		case CM_DATA:
			pComPort->Recv(); 
			break;

		case CM_IDLE:
//			pComPort->ResetComm(); 
			break;
	}
}

int CISAApp::InitPrem()
{
	m_uTimes = ::GetPrivateProfileInt( "Setting", "Retry", 3, PROTOCOL_INIFILE );

	m_uTimeOut = ::GetPrivateProfileInt( "Setting", "TimeOut", 5, PROTOCOL_INIFILE );
	m_uWait = ::GetPrivateProfileInt( "Setting", "Wait", 20, PROTOCOL_INIFILE );

	m_uTimeOut *= 1000 / TIMER_ELAPSE;
	m_uWait *= 1000 / TIMER_ELAPSE;
	
	DBHANDLE dbHandle = ::FindDbHandle( (WORD)-1, TYPE_NULL, 0 );
	for ( ; ::IsValidDbHandle( dbHandle ); dbHandle = ::GetNextDbHandle( dbHandle ) )
	{
		char szProtocol[PROTOCOLNAMELEN] = "";
		DBHANDLE dbParent = ::GetParentDbHandle( dbHandle);
		if (!::IsValidDbHandle( dbParent ))
			continue;
		if ( !::GetAttr( dbParent, ATTR_ST_PROTOCOLNAME, szProtocol )
			|| _stricmp( szProtocol, PROTOCOLNAME ) )
			continue;
		
		CDevice* pDevice = new CDevice();
		if ( !pDevice )
			continue;

		pDevice->OnInit( dbHandle );


		m_ListDevice.AddTail( pDevice );

		char szCom[COMSETTINGLEN] = "";
		::GetAttr( dbParent, ATTR_ST_COM, szCom );
		CComPort* pComPort = GetComPort( ::StringToPort( szCom ) );
		if ( !pComPort )
		{
			pComPort = new CComPort();
			if ( !pComPort )
				continue;

			pComPort->Open( szCom );
			m_ListComPort.AddTail( pComPort );
		}

		if ( pComPort )
		{
			pDevice->m_hComPort = pComPort->m_hComPort;
			pComPort->AddDevice( pDevice );
		}
	}
	::GetKerTable( "ACCTYPE", getter_AddRefs( m_pAccTable ) ) ;
	::GetKerTable( "PROTTYPE", getter_AddRefs( m_pProtTable ) ) ;
	::GetKerTable( "ANATYPE", getter_AddRefs( m_pAnaTable ) ) ;
	::GetKerTable( "DZHTYPE", getter_AddRefs( m_pDzhTable ) ) ;
	::GetKerTable( "DIAGTYPE", getter_AddRefs( m_pDiagTable ) ) ;
    //add by llj to add anavalue
	::GetKerTable( "ANAVALUE",getter_AddRefs( m_pAnaValueTable) );


	m_uTimer = ::SetTimer( NULL, 0x0001, TIMER_ELAPSE, (TIMERPROC)::TimerProc );
	if ( 0 == m_uTimer )
		return PREM_ERR_TIMER;

	return PREM_OK;
}


CComPort* CISAApp::GetComPort(UINT uPort)
{
	POSITION pos = m_ListComPort.GetHeadPosition();
	while( pos )
	{
		CComPort* pComPort = m_ListComPort.GetNext( pos );
		if ( pComPort->GetPortNO() == uPort )
			return pComPort;
	}

	return NULL;
}

void CISAApp::TimerProc()
{
	POSITION pos = m_ListDevice.GetHeadPosition();
	while( pos )
	{
		CDevice* pDevice = m_ListDevice.GetNext( pos );
		pDevice->OnTimer();
	}

	pos = m_ListComPort.GetHeadPosition();
	while( pos )
	{
 		CComPort* pComPort = m_ListComPort.GetNext( pos );
		pComPort->OnTimer();
	}
}

CDevice* CISAApp::GetDevice(BYTE btAddr)
{
	POSITION pos = m_ListDevice.GetHeadPosition();
	while( pos )
	{
		CDevice* pDevice = m_ListDevice.GetNext( pos );
		if ( pDevice->m_btAddr == btAddr )
			return pDevice;
	}
	return NULL;

}

CComPort* CISAApp::GetComPort(HANDLE handle)
{
	POSITION pos = m_ListComPort.GetHeadPosition();
	while ( pos )
	{
		CComPort* pComPort = m_ListComPort.GetNext( pos );
		if ( pComPort->m_hComPort == handle )
			return pComPort;
	}

	return NULL;
}

void CISAApp::ExitPrem()
{
	::KillTimer( NULL, m_uTimer );

	while( !m_ListComPort.IsEmpty() )
		delete m_ListComPort.RemoveHead();

	while( !m_ListDevice.IsEmpty() )
		delete m_ListDevice.RemoveHead();
}

/////////////////////////////////////////////////////////////////////////////
// The one and only CISAApp object

CISAApp theApp;

int FAR PASCAL EXPORT SendPremMessage( UINT msg, WPARAM wParam, LPARAM lParam )
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	return theApp.SendPremMessage( msg, wParam, lParam );
}

void FAR PASCAL EXPORT CommCallBack( UINT uMsg, HANDLE handle, WPARAM wParam, LPARAM lParam )
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	theApp.CommCallBack( uMsg, handle, wParam, lParam );
}

void FAR PASCAL EXPORT TimerProc( HWND, UINT, WPARAM, LPARAM )
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());

	theApp.TimerProc();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人黄色一级视频| 一本色道综合亚洲| 一区二区三区四区在线播放| 欧美一区二区视频观看视频| av爱爱亚洲一区| 久久精品国产99国产精品| 一区二区三区成人在线视频| 久久婷婷成人综合色| 在线电影院国产精品| av中文字幕不卡| 黄色小说综合网站| 蜜桃精品视频在线| 亚洲va在线va天堂| 亚洲欧美日韩国产综合在线| 国产丝袜欧美中文另类| 欧美成人一区二区三区| 欧美日韩一区国产| 日本高清视频一区二区| 成人免费视频一区二区| 国产在线不卡一区| 青娱乐精品视频在线| 午夜精品久久久久久久久| 亚洲裸体xxx| 国产精品久久久久久久久果冻传媒| 精品久久久久av影院| 91精品国产免费久久综合| 欧美三级电影在线观看| 色成年激情久久综合| 99re亚洲国产精品| 成人黄色国产精品网站大全在线免费观看 | 色欲综合视频天天天| 成人aa视频在线观看| 国产成人免费视频网站| 国产一区不卡精品| 韩国视频一区二区| 国产一区二区三区四区五区美女 | 国产精品成人免费| 国产精品免费丝袜| 国产精品视频免费看| 国产精品污www在线观看| 久久精品亚洲乱码伦伦中文| 久久久亚洲精品一区二区三区| 精品国产亚洲一区二区三区在线观看 | 亚洲综合免费观看高清完整版在线 | 一区二区三区四区乱视频| 中文字幕中文字幕一区| 中文字幕永久在线不卡| 综合欧美一区二区三区| 日韩av高清在线观看| 亚洲福利电影网| 五月天精品一区二区三区| 免费成人av资源网| 美女视频一区在线观看| 精品一区二区三区不卡| 国产高清精品久久久久| 成人污污视频在线观看| 97超碰欧美中文字幕| 在线国产电影不卡| 91精品国产色综合久久| 久久久久久久久97黄色工厂| 中文一区二区完整视频在线观看| 国产精品美女久久福利网站| 亚洲精品国久久99热| 日韩精品三区四区| 国产精品综合网| 色欧美乱欧美15图片| 欧美一级午夜免费电影| 久久精品一区二区三区不卡| 国产精品国产三级国产有无不卡 | 成人av一区二区三区| 97se亚洲国产综合自在线| 欧美日韩日本视频| 欧美精品一区二区三区久久久| 国产精品美日韩| 性久久久久久久久久久久| 国产精品自拍在线| 欧美写真视频网站| 久久在线观看免费| 一区二区在线观看av| 久久国产三级精品| 色婷婷精品久久二区二区蜜臂av| 欧美乱妇20p| 国产精品乱码人人做人人爱 | 精品国产不卡一区二区三区| 国产精品国产精品国产专区不蜜| 午夜电影网亚洲视频| 国产精品亚洲一区二区三区妖精 | 国产一区二区免费在线| 91麻豆福利精品推荐| 日韩美女在线视频| 一区二区三区在线观看动漫| 国产一区二区不卡老阿姨| 欧美写真视频网站| 中文字幕免费不卡在线| 另类调教123区| 色综合久久久久网| 国产片一区二区| 日韩成人一区二区| 色综合久久综合中文综合网| 久久精品男人天堂av| 首页综合国产亚洲丝袜| 91亚洲资源网| 久久久久久久久久看片| 日韩精品午夜视频| 在线观看国产91| 国产精品福利一区| 国产老肥熟一区二区三区| 91精品国产综合久久香蕉麻豆| 亚洲色图视频网| 国产成人午夜99999| 欧美国产视频在线| 男女性色大片免费观看一区二区| 在线视频中文字幕一区二区| 国产精品网站在线| 国产一区福利在线| 日韩美女视频在线| 天天综合日日夜夜精品| 在线亚洲精品福利网址导航| 国产精品电影一区二区| 成人永久看片免费视频天堂| 日韩精品一区二区三区视频播放| 性久久久久久久| 欧美视频精品在线| 亚洲图片欧美色图| 欧美做爰猛烈大尺度电影无法无天| 国产精品久久久久久久久搜平片| 国产精品69久久久久水密桃| 久久久一区二区| 国产米奇在线777精品观看| 日韩你懂的在线观看| 免费观看在线综合| 日韩视频中午一区| 日韩高清不卡一区二区三区| 欧美精品久久天天躁| 午夜精品福利一区二区三区av| 91福利视频久久久久| 一区av在线播放| 欧美三级韩国三级日本三斤 | 亚洲成人中文在线| 欧美天天综合网| 午夜精品免费在线观看| 91精品啪在线观看国产60岁| 水蜜桃久久夜色精品一区的特点| 91精品国产手机| 看片的网站亚洲| 久久久一区二区三区捆绑**| 成人网在线免费视频| 中文字幕亚洲视频| 欧美性视频一区二区三区| 五月婷婷综合网| 欧美一区二区三区在线视频| 精品一区二区三区在线播放视频| 精品日韩在线观看| 国产99一区视频免费| 亚洲人成在线观看一区二区| 欧美视频三区在线播放| 免费精品视频在线| 国产亚洲人成网站| 色哟哟国产精品免费观看| 亚洲午夜激情av| 精品奇米国产一区二区三区| 床上的激情91.| 亚洲一区二区视频| 精品久久国产字幕高潮| 成人免费高清视频| 亚洲成av人片一区二区| 日韩欧美成人激情| 99久久精品国产导航| 天堂在线亚洲视频| 久久久激情视频| 91传媒视频在线播放| 美女视频黄 久久| 久久精品人人爽人人爽| 日本高清成人免费播放| 蜜桃视频一区二区| 国产精品网站在线| 7777精品久久久大香线蕉| 国产一区啦啦啦在线观看| 樱花影视一区二区| 精品国产乱子伦一区| 97aⅴ精品视频一二三区| 日韩av一区二| 亚洲三级电影网站| 精品日韩99亚洲| 日本高清免费不卡视频| 国产精品亚洲综合一区在线观看| 亚洲自拍与偷拍| 国产日韩亚洲欧美综合| 欧美另类一区二区三区| av在线播放成人| av中文字幕不卡| 免费在线观看日韩欧美| 亚洲欧美经典视频| 精品久久久久久久一区二区蜜臀| 在线亚洲人成电影网站色www| 国产精品影视在线| 日本欧美在线观看| 亚洲精选视频在线| 亚洲国产精品v| 精品盗摄一区二区三区|