www.pudn.com > SmartCardSrc.zip > ACOS1.h


//------------------------------------------------------------------------------ 
// 
// Copyright (c) 1999-2005  Matt Brunk   
// 
// This program is free software; you can redistribute it and/or modify 
// it under the terms of the GNU General Public License VERSION 2 as 
// published by the Free Software Foundation.  You are not allowed to 
// use any other version of the license; unless you got the explicit 
// permission from the author to do so. 
// 
// This program is distributed in the hope that it will be useful, 
// but WITHOUT ANY WARRANTY; without even the implied warranty of 
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
// GNU General Public License for more details. 
// 
// You should have received a copy of the GNU General Public License 
// along with this program; if not, write to the Free Software 
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
// 
//------------------------------------------------------------------------------ 
#ifndef ACOS1_H_INCLUDED__ 
#define ACOS1_H_INCLUDED__ 
 
#include "serialport.h" 
 
class CACOS1 
{ 
 
public: 
 
	//-------------------------------------------------------------------------- 
	//	Constructor 
	//-------------------------------------------------------------------------- 
	CACOS1(); 
 
	//-------------------------------------------------------------------------- 
	//	Destructor 
	//-------------------------------------------------------------------------- 
	virtual ~CACOS1(); 
 
	bool	GetATR(unsigned char *outBuf, DWORD &nLength); 
	void	GetLastError(CString &ErrorMsg); 
	bool	SubmitIC(unsigned char *ic); 
	bool	SelectFile(unsigned char *file); 
	bool	StartSession(unsigned char *key, DWORD &dwLength); 
	bool	ReadRecord(int recordNum, int numBytes, unsigned char *data, DWORD &dwLength); 
	bool	WriteRecord(int recordNum, unsigned char *data, int numBytes); 
	void	DumpDCB(); 
 
	void	SetPort(int iPort) {m_iPort = iPort;} 
	void	SetBaud(int iBaud) {m_iBaud = iBaud;} 
	void	SetEditControl(CEdit *pEdit) {m_pEdit = pEdit;} 
	bool	OpenPort(); 
	void	ClosePort(); 
	void	EnableEncryption(bool bEnable); 
	void	SetVerbose(bool bEnable); 
 
	void	SetStopBits(int num); 
	CString	GetLastErrorMsg(); 
 
private: 
 
	void	AppendText(LPCTSTR Text); 
	bool	SendCommand(unsigned char *cmd); 
	bool	SendData(unsigned char *data, DWORD dwLength); 
	bool	GetStatus(); 
	bool	GetData(unsigned char *data, DWORD &dwLength); 
 
	int						m_iPort; 
	int						m_iBaud; 
	CSerialPort				m_port; 
	CSerialPort::StopBits	m_stopBits; 
	CString					m_lastErrorMsg; 
	bool					m_bEnableEncryption; 
	bool					m_bVerbose; 
 
	CEdit			*m_pEdit; 
	unsigned char	m_buf[1024]; 
	unsigned char	m_inBuf[64]; 
}; 
 
 
#endif	// ACOS1_H_INCLUDED__