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

📄 port.h

📁 ecos为实时嵌入式操作系统
💻 H
字号:
//=================================================================////        Port.h////        Port test class////=================================================================//####COPYRIGHTBEGIN####//// -------------------------------------------// The contents of this file are subject to the Cygnus eCos Public License// Version 1.0 (the "License"); you may not use this file except in// compliance with the License.  You may obtain a copy of the License at// http://sourceware.cygnus.com/ecos// // Software distributed under the License is distributed on an "AS IS"// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See the// License for the specific language governing rights and limitations under// the License.// // The Original Code is eCos - Embedded Cygnus Operating System, released// September 30, 1998.// // The Initial Developer of the Original Code is Cygnus.  Portions created// by Cygnus are Copyright (C) 1998, 1999 Cygnus Solutions.// All Rights Reserved.// -------------------------------------------////####COPYRIGHTEND####//=================================================================//#####DESCRIPTIONBEGIN####//// Author(s):     sdf// Contributors:  sdf// Date:          1999-04-01// Description:   This class abstracts download ports for use in the testing infrastructure// Usage:////####DESCRIPTIONEND#####ifndef _PORT_H#define _PORT_H#include "stdafx.h"#include "eCosTest.h"#include "eCosTestSerial.h"// Class representing permission to run a test.  Instances of this class correspond// either to physically attached communications ports or to simulator processes.// GetPort acquires (locks) such a resource - Release() relinquishes it.class CPort {	friend class GarbageCollector;public:	// Declare the availability of a port to execute tests of type target.	// Two versions exist - one to give permission to execute a test in the current thread in a simulator and another	// on attached hardware.	// Simulator	CPort(CeCosTest::TargetType target);	// Hardware with reset	CPort(		CeCosTest::TargetType target, 		// Physical port characteristics.  If pszPort is null, simulator run is meant (in which case nBaud is ignored)		const char *pszPort, int nBaud,		// Associated X10 characteristics: pszPort may be a remote server (host:port) or a local port		const char *pszResetHostPort, char cControl1, char cControl2, const char *pszAuxPort=0,        int nDelay=1000		);	// Hardware without reset	CPort(CeCosTest::TargetType target, const char * pszDownloadPort, int nBaud);	virtual ~CPort();	// Count of ports (free or not) capable of executing this kind of test:	static int Count (const CeCosTest::ExecutionParameters &e);	static void DeleteAllInstances();	// For report purposes:	const char * Name() const { return m_strPort; }					// Name [of serial port]	const CeCosTest::TargetType Target() const { return m_Target; }	// Supported target		// Acquire a port for exclusive use by the current process and thread.	// [block current thread until such a port becomes available]	// This function is thread-safe.	static CPort *GetPort(const CeCosTest::ExecutionParameters &e);	void Release();	// Reset the hardware attached to this port    bool Reset(int &nErr, CeCosTestUtils::String &str);    bool IsLocked() const { return m_bLocked; }    bool Lock (const CeCosTest::ExecutionParameters &e);        int Baud() const { return m_nBaud; }							// Baud rate    char Control1()  const { return m_cControl1; }    char Control2()  const { return m_cControl2; }    const char *ResetHost() const { return m_strResetHost; }    int ResetPort() const { return m_nResetPort; }protected:    int m_nDelay;    CeCosTestSerial m_Serial;    bool OpenSerial ();    bool CloseSerial();    bool m_bLocked;    void Chain();	// Can this port deal with the given test?    bool Matches (const CeCosTest::ExecutionParameters &e) const {         return m_Target==e.Target()             ; }	// House code and device code for X10 reset:	char m_cControl1;	char m_cControl2;	// X10 daemon, host and tcp/ip port:	CeCosTestUtils::String m_strResetHost;	int m_nResetPort;	// Download host and serial port:	int m_nPort;	CeCosTestUtils::String m_strPort,m_strAuxPort;	int m_nBaud;						// Baud rate	CeCosTest::TargetType m_Target;		// Target type	bool m_bSim;						// Whether a simulator "port"	bool m_bInUse;						// Whether being used	// Chaining to support DeleteAllInstances:	static CPort *pFirstInstance;	CPort *m_pPrevInstance;	CPort *m_pNextInstance;	class GarbageCollector {	public:		GarbageCollector();		~GarbageCollector();		static GarbageCollector gc;	};};#endif

⌨️ 快捷键说明

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