TTYINFO.H 5.38 KB

/*-----------------------------------------------------------------------------
    This is a part of the Microsoft Source Code Samples. 
    Copyright (C) 1995 Microsoft Corporation.
    All rights reserved. 
    This source code is only intended as a supplement to 
    Microsoft Development Tools and/or WinHelp documentation.
    See these sources for detailed information regarding the 
    Microsoft samples programs.

    MODULE: TTYINFO.h

    PURPOSE: Contains global definitions for the TTYINFO structure

-----------------------------------------------------------------------------*/

//
// constant definitions
//

//
// hard coded maximum number of ports
//
#define MAXPORTS        32

//
// terminal size
//
#define MAXROWS         50
#define MAXCOLS         80

//
// cursor states
//
#define CS_HIDE         0x00
#define CS_SHOW         0x01

//
// ascii definitions
//
#define ASCII_BEL       0x07
#define ASCII_BS        0x08
#define ASCII_LF        0x0A
#define ASCII_CR        0x0D
#define ASCII_XON       0x11
#define ASCII_XOFF      0x13

//
// data structures
//

#define MAX_DEVICES_NUM      25

struct TTYInfoStruct
{
    HANDLE  hCommPort, hReaderStatus, hWriter ;
    DWORD   dwEventFlags;
    CHAR    Screen[MAXCOLS * MAXROWS];
    CHAR    chFlag, chXON, chXOFF;
    WORD    wXONLimit, wXOFFLimit;
    DWORD   fRtsControl;
    DWORD   fDtrControl;
    BOOL    fConnected, fTransferring, fRepeating,
            fLocalEcho, fNewLine,
            fDisplayErrors, fAutowrap,
            fCTSOutFlow, fDSROutFlow, fDSRInFlow, 
            fXonXoffOutFlow, fXonXoffInFlow,
            fTXafterXoffSent,
            fNoReading, fNoWriting, fNoEvents, fNoStatus,
            fDisplayTimeouts;
    BYTE    bPort, bByteSize, bParity, bStopBits ;
    DWORD   dwBaudRate ;
    WORD    wCursorState ;
    HFONT   hTTYFont ;
    LOGFONT lfTTYFont ;
    DWORD   rgbFGColor ;
	DWORD   rgbBGColor ;
    COMMTIMEOUTS timeoutsorig;
    COMMTIMEOUTS timeoutsnew;
    int     xSize, ySize, xScroll, yScroll, xOffset, yOffset,
            nColumn, nRow, xChar, yChar , nCharPos;
	char szFileName[MAX_PATH];
	BYTE unOpenedPortAry[255];
	BOOL DownloadReday;
	DWORD tickcountFinish;		//Íê³ÉÏÂÔØµÄʱ¼ä
	HWND hBtnAbortSend[50];
	HWND hprocessFlash[50];


} g_appdata;

//
// macros ( for easier readability )
//
//#define COMDEV(g_appdata)         (g_appdata.hCommPort)
//#define CURSORSTATE(g_appdata)    (g_appdata.wCursorState)
//#define PORT(g_appdata)           (g_appdata.bPort)
//#define g_appdata.Screen         (g_appdata.Screen)
//#define CONNECTED(g_appdata)      (g_appdata.fConnected)
//#define g_appdata.fTransferring   (g_appdata.fTransferring)
//#define g_appdata.fRepeating      (g_appdata.fRepeating)
//#define g_appdata.fLocalEcho      (g_appdata.fLocalEcho)
//#define g_appdata.fNewLine        (g_appdata.fNewLine)
//#define g_appdata.fAutowrap       g_appdata.fAutowrap
//#define g_appdata.bByteSize       g_appdata.bByteSize
//#define g_appdata.bParity         g_appdata.bParity
//#define g_appdata.bStopBits       g_appdata.bStopBits
//#define g_appdata.dwBaudRate       g_appdata.dwBaudRate
//#define g_appdata.hTTYFont       g_appdata.hTTYFont
//#define g_appdata.lfTTYFont      g_appdata.lfTTYFont
//#define g_appdata.rgbFGColor        g_appdata.rgbFGColor
//#define g_appdata.rgbBGColor        g_appdata.rgbBGColor
//#define g_appdata.xSize          g_appdata.xSize
//#define g_appdata.ySize          g_appdata.ySize
//#define g_appdata.xScroll        g_appdata.xScroll
//#define g_appdata.yScroll        g_appdata.yScroll
//#define g_appdata.xOffset        g_appdata.xOffset
//#define g_appdata.yOffset        g_appdata.yOffset
//#define g_appdata.nColumn         g_appdata.nColumn
//#define g_appdata.nRow            g_appdata.nRow
//#define g_appdata.xChar          g_appdata.xChar
//#define g_appdata.yChar          g_appdata.yChar
//#define g_appdata.fDisplayErrors  g_appdata.fDisplayErrors
//#define g_appdata.timeoutsorig   g_appdata.timeoutsorig
//#define g_appdata.timeoutsnew    g_appdata.timeoutsnew
//#define g_appdata.hWriter   g_appdata.hWriter
//#define g_appdata.hReaderStatus g_appdata.hReaderStatus
//#define g_appdata.dwEventFlags     g_appdata.dwEventFlags
//#define g_appdata.chFlag       g_appdata.chFlag
//#define SCREENCHAR( x, col, row )   g_appdata.Screen[row * MAXCOLS + col]

//#define g_appdata.fDtrControl     g_appdata.fDtrControl
//#define g_appdata.fRtsControl     g_appdata.fRtsControl
//#define g_appdata.chXON        g_appdata.chXON
//#define g_appdata.chXOFF       g_appdata.chXOFF
//#define g_appdata.wXONLimit       g_appdata.wXONLimit
//#define g_appdata.wXOFFLimit      g_appdata.wXOFFLimit
//#define g_appdata.fCTSOutFlow     g_appdata.fCTSOutFlow
//#define g_appdata.fDSROutFlow     g_appdata.fDSROutFlow
//#define g_appdata.fDSRInFlow      g_appdata.fDSRInFlow
//#define g_appdata.fXonXoffOutFlow g_appdata.fXonXoffOutFlow
//#define g_appdata.fXonXoffInFlow  g_appdata.fXonXoffInFlow
//#define g_appdata.fTXafterXoffSent  g_appdata.fTXafterXoffSent
//
//#define g_appdata.fNoReading      g_appdata.fNoReading
//#define g_appdata.fNoWriting      g_appdata.fNoWriting
//#define g_appdata.fNoEvents       g_appdata.fNoEvents
//#define g_appdata.fNoStatus       g_appdata.fNoStatus
//#define g_appdata.fDisplayTimeouts   g_appdata.fDisplayTimeouts)



//---------------------------------------------------------------------------
//  End of File: ttyinfo.h
//---------------------------------------------------------------------------