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

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

?? chapt03.cpp

?? CHAPT03CHAPT03.CPP 16-Bit test program for class PC8250 CHAPT03CHAPT03.EXE 16-Bit executable of the
?? CPP
字號:
//
//  CHAPT03.CPP
//
//  Serial Communications: A C++ Developer's Guide, 2nd Edition
//  by Mark Nelson, IDG Books, 1999
//
//  Please see the book for information on usage.
//
//  This test program is used to test the PC8250 classe.  To
//  build it using your compiler, see CHAPT03.MAK
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <ctype.h>
#include "rs232.h"
#include "textwind.h"
#include "pc8250.h"

//
// The following short section of definitions are used to customize
// the program.  You can hard code 1 or 2 ports, and select various
// port setups.  If you want to use a different number it's pretty
// easy to make other configurations work.
//
// In the one port configuration, I define the first port used to
// be COM1.  If your system uses a serial mouse, you might want to
// change this to COM2.
//

#define PORT_COUNT 1

RS232PortName port_names[ 4 ] = { COM1, COM2 };
TextWindow *Windows[ PORT_COUNT ] = { 0 };
RS232 *Ports[ PORT_COUNT ] = { 0 };
RS232 *Port = 0;
int window_parms[ PORT_COUNT ][ 4 ] = {
#if PORT_COUNT == 1
                               { 1,  1,  78, 24 }
#else
                               { 1,  1,  38, 24 },
                               { 1, 41,  38, 24 }
#endif
                                };
int Spewing[ PORT_COUNT ] = { 0 };
long SpewCount[ PORT_COUNT ] = { 0L };
int Reading[ PORT_COUNT ] = { 0 };

void HandleCommand( int key );
void DrawHelp( void );
void DrawDump( void );

TextWindow *UserWindow;
TextWindow *StatusLine;
int FocusWindow = -1;
int Done = 0;
int Helping = 1;
long NextStatusUpdate = 0;

int main()
{
    int i;
    int c;
    char buffer[ 81 ];

    Set43LineMode( 1 );
    TextWindow *temp = new TextWindow( 0, 0, 80, 43 );
    UserWindow = new TextWindow( 27, 0, 80, 12 );
    StatusLine = new TextWindow( 39, 0, 80, 1 );
    temp->Clear();
    delete temp;
    UserWindow->Clear();
    StatusLine->Clear();

    for ( i = 0 ; i < PORT_COUNT ; i++ ) {
        Ports[ i ] = new PC8250( port_names[ i ],
                                 57600L, 'N', 8, 1, 1, 1 );
        if ( Ports[ i ]->ErrorStatus() == RS232_SUCCESS ) {
            Windows[ i ] = new TextWindow( window_parms[ i ][ 0 ],
                                           window_parms[ i ][ 1 ],
                                           window_parms[ i ][ 2 ],
                                           window_parms[ i ][ 3 ] );
            Windows[ i ]->Clear();
            Windows[ i ]->AddBorder();
            Windows[ i ]->SetPosition( 0, 0 );
            if ( FocusWindow == -1 )
                FocusWindow = i;
            Reading[ i ] = 1;
        } else {
            *StatusLine << "\nError opening port "
                        << itoa( i, buffer, 10 )
                        << "  status = "
                        << Ports[ i ]->ErrorName(
                                  Ports[ i ]->ErrorStatus() )
                        << ".  Hit any key to continue...";
            while ( Windows[ FocusWindow ]->ReadKey() == 0 )
                ;
            *StatusLine << '\n';
        }
    }
    DrawHelp();
    Port = Ports[ FocusWindow ];
    while ( FocusWindow != -1 && !Done ) {
        c = Windows[ FocusWindow ]->ReadKey();
        if ( c > 255 ) {
            HandleCommand( c );
            Windows[ FocusWindow ]->Goto();
        } else if ( c != 0 )
        Port->Write( c );
        for ( i = 0 ; i < PORT_COUNT ; i++ ) {
            if ( Spewing[ i ] && Ports[ i ]->TXSpaceUsed() == 0 ) {
                sprintf( buffer,
                         "Spewing packet %ld from port %d\r\n",
                         SpewCount[ i ]++,
                         i );
                Ports[ i ]->Write( buffer );
            }
            if ( Reading[ i ] ) {
                Ports[ i ]->Read( buffer, 80 );
                if ( Ports[ i ]->ByteCount > 0 ) {
                    *Windows[ i ] << buffer;
                    if ( i != FocusWindow )
                        Windows[ FocusWindow ]->Goto();
                }
            }
        }
        if ( !Helping ) {
            if ( ReadTime() > NextStatusUpdate ) {
                DrawDump();
                NextStatusUpdate = ReadTime() + 500;
            }
        }
    }
    for ( i = 0 ; i < PORT_COUNT ; i++ ) {
        if ( Windows[ i ] )
            delete Windows[ i ];
        delete Ports[ i ];
    }
    Set43LineMode( 0 );
    return 0;
}

void HandleCommand( int c )
{
    char buffer[ 11 ];
    RS232Error status;
    int result;

    *StatusLine << '\n';
    switch ( c ) {
        case F1 :
            Helping = !Helping;
            UserWindow->Clear();
            if ( Helping )
                DrawHelp();
            return;
        case F2 :
            do
                FocusWindow = ++FocusWindow % PORT_COUNT;
            while ( Windows[ FocusWindow ] == 0 );
            Port = Ports[ FocusWindow ];
            if ( !Helping )
                UserWindow->Clear();
            Windows[ FocusWindow ]->Goto();
            return;
        case F3 :
            Spewing[ FocusWindow ] = !Spewing[ FocusWindow ];
            Windows[ FocusWindow ]->AddBorder();
            if ( Spewing[ FocusWindow ] )
                Windows[ FocusWindow ]->DisplayTitle( "Spewing" );
            return;
        case F4 :
            Reading[ FocusWindow ] = !Reading[ FocusWindow ];
            *StatusLine << "Window "
                        << itoa( FocusWindow, buffer, 10 );
            *StatusLine << " reading flag is "
                        << itoa( Reading[ FocusWindow ], buffer, 10 );
            return;
        case F5 :
            ReadLine( "New baud rate:", buffer, 10 );
            status = Port->Set( atol( buffer ) );
            *StatusLine << "Set baud rate to "
                        << ltoa( atol( buffer ), buffer, 10 )
                        << " returns status of: ";
            break;
        case F6 :
            ReadLine( "New parity:", buffer, 10 );
            status = Port->Set( UNCHANGED, buffer[ 0 ] );
            *StatusLine << "Set parity to "
                        << buffer[ 0 ]
                        << " returns status of: ";
            break;
        case F7 :
            ReadLine( "New word length:", buffer, 10 );
            status = Port->Set( UNCHANGED, UNCHANGED, atoi( buffer ) );
            *StatusLine << "Set word length to "
                        << itoa( atoi( buffer ), buffer, 10 )
                        << " returns status of: ";
            break;
        case F8 :
            ReadLine( "New stop bits:", buffer, 10 );
            status = Port->Set( UNCHANGED,
                                UNCHANGED,
                                UNCHANGED,
                                atoi( buffer ) );
            *StatusLine << "Set stop bits to "
                        << itoa( atoi( buffer ), buffer, 10 )
                        << " returns status of: ";
            break;
        case F9 :
            status = (RS232Error) Port->Break();
            *StatusLine << "SendBreak returns: ";
            break;
        case F10 :
            Done = 1;
            return;
        case ALT_F1 :
            result = Port->XonXoffHandshaking();
            status = (RS232Error) Port->XonXoffHandshaking( !result );
            *StatusLine << "Toggle XON/XOFF handshaking returns: ";
            if ( status >= 0 ) {
                *StatusLine << itoa( status, buffer, 10 );
                return;
            }
            break;
        case ALT_F2 :
            result = Port->RtsCtsHandshaking();
            status = (RS232Error) Port->RtsCtsHandshaking( !result );
            *StatusLine << "Toggle RTS/CTS handshaking returns: ";
            if ( status >= 0 ) {
                *StatusLine << itoa( status, buffer, 10 );
                return;
            }
            break;
        case ALT_F3 :
            result = Port->DtrDsrHandshaking();
            status = (RS232Error) Port->DtrDsrHandshaking( !result );
            *StatusLine << "Toggle DTR/DSR handshaking returns: ";
            if ( status >= 0 ) {
                *StatusLine << itoa( status, buffer, 10 );
                return;
            }
            break;
        case ALT_F4 :
            status = (RS232Error) Port->Rts( !Port->Rts() );
            *StatusLine << "Toggle RTS returns: ";
            if ( status >= 0 ) {
                *StatusLine << itoa( status, buffer, 10 );
                return;
            }
            break;
        case ALT_F5 :
            status = (RS232Error) Port->Dtr( !Port->Dtr() );
            *StatusLine << "Toggle Dtr returns: ";
            if ( status >= 0 ) {
                *StatusLine << itoa( status, buffer, 10 );
                return;
            }
            break;
        case ALT_F6 :
            status = (RS232Error) Port->FlushRXBuffer();
            *StatusLine << "Flush RX Buffer returns: ";
            break;
        case ALT_F7 :
            status = (RS232Error) Port->FlushTXBuffer();
            *StatusLine << "Flush TX Buffer returns: ";
            break;
        case ALT_F8 :
            status = (RS232Error) Port->Peek();
            *StatusLine << "Peek count: "
                        << itoa( Port->ByteCount, buffer, 10 )
                        << "  ";
            if ( status >= 0 ) {
                if ( Port->ByteCount > 0 ) {
                    *StatusLine << "Char: ";
                    if ( isprint( status ) )
                        *StatusLine << (char) status;
                    else
                        *StatusLine << '<'
                                    << itoa( status, buffer, 16 )
                                    << '>';
                }
                return;
            }
            *StatusLine << "Status: ";
            break;
        case ALT_F9 :
            status = (RS232Error) Port->Read();
            if ( status >= 0 ) {
                *Windows[ FocusWindow ] << (char) status;
                return;
            }
            *StatusLine << "Read character returns: ";
            break;
        case ALT_F10 :
            {
                void *p = malloc( 1024 );
                if ( !p )
                    return;
                memset( p, 'A', 1024 );
                status = (RS232Error) Port->Write( p, 1024, 2500 );
                free( p );
            }
            *StatusLine << "Write 1K ByteCount: "
                        << itoa( Port->ByteCount, buffer, 10 )
                        << "  Elapsed Time: ";
            *StatusLine << ltoa( Port->ElapsedTime, buffer, 10 )
                        << "  Status: ";
            break;
        default :
            return;
    }
    *StatusLine << Port->ErrorName( status );
}

void DrawDump( void )
{
    int i;
    char buffer[ 81 ];

    UserWindow->SetPosition( 0, 0 );
    for ( i = 0 ;
          i < Port->DebugLineCount() ;
          i++ ) {
        Port->FormatDebugOutput( buffer, i );
        if ( i != 0 )
            *UserWindow << '\n';
        *UserWindow << buffer;
    }
    Windows[ FocusWindow ]->Goto();
}

void DrawHelp( void )
{
    UserWindow->Clear();
    UserWindow->SetPosition( 0, 0 );
    *UserWindow << "F1 Help Toggle      ALT F1 Toggle XON/XOFF\n";
    *UserWindow << "F2 Next port        ALT F2 Toggle RTS/CTS\n";
    *UserWindow << "F3 Spew Toggle      ALT F3 Toggle DTR/DSR\n";
    *UserWindow << "F4 Reading Toggle   ALT F4 Toggle RTS\n";
    *UserWindow << "F5 Set baud rate    ALT F5 Toggle DTR\n";
    *UserWindow << "F6 Set parity       ALT F6 Flush RX Buffer\n";
    *UserWindow << "F7 Set word length  ALT F7 Flush TX Buffer\n";
    *UserWindow << "F8 Set stop bits    ALT F8 Peek at 1 byte\n";
    *UserWindow << "F9 Send break       ALT F9 Read a byte\n";
    *UserWindow << "F10 Exit            ALT F10 Send 1K block\n";
    Windows[ FocusWindow ]->Goto();
}

// ******************** END OF TEST04.CPP ********************

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线影视一区二区三区| 欧美亚洲动漫制服丝袜| 亚洲自拍偷拍图区| 26uuu另类欧美亚洲曰本| 在线日韩av片| 粉嫩av亚洲一区二区图片| 日韩精品亚洲一区二区三区免费| 欧美国产精品劲爆| 91精品一区二区三区在线观看| 成人小视频在线| 麻豆精品精品国产自在97香蕉| 一区二区三区在线观看网站| 久久亚洲一区二区三区四区| 欧美裸体bbwbbwbbw| 一本久久a久久免费精品不卡| 国产精品资源在线看| 美女性感视频久久| 亚洲丶国产丶欧美一区二区三区| 中文字幕中文字幕在线一区| 久久免费看少妇高潮| 日韩午夜激情电影| 欧美人体做爰大胆视频| 欧美偷拍一区二区| 色哟哟精品一区| 99久久99久久精品免费观看| 黄一区二区三区| 久久99精品视频| 麻豆精品视频在线观看视频| 日本成人在线网站| 五月天激情小说综合| 亚洲第一搞黄网站| 亚洲国产日韩av| 亚洲国产日产av| 亚洲超碰精品一区二区| 一区二区三区免费网站| 一区二区三区在线看| 一区二区三区四区在线| 一区二区视频在线看| 亚洲人吸女人奶水| 一区二区三区色| 亚洲国产毛片aaaaa无费看| 亚洲综合一区二区三区| 亚洲高清视频的网址| 午夜欧美2019年伦理| 日韩成人精品在线观看| 在线观看日产精品| 欧美亚洲另类激情小说| 欧美日韩激情一区二区三区| 91精品国产色综合久久ai换脸 | 首页国产欧美日韩丝袜| 亚洲国产精品久久人人爱| 香蕉久久夜色精品国产使用方法| 亚洲高清视频中文字幕| 日韩精品亚洲专区| 久久66热偷产精品| 国产精品1024| 色婷婷精品久久二区二区蜜臂av| 在线一区二区三区做爰视频网站| 欧美无人高清视频在线观看| 7777女厕盗摄久久久| 久久这里只有精品6| 欧美高清在线精品一区| 亚洲精品国产一区二区精华液| 亚洲不卡一区二区三区| 久久er99精品| 不卡在线视频中文字幕| 欧美性xxxxxx少妇| 日韩欧美一级二级三级| 亚洲国产成人午夜在线一区 | 免费观看在线综合| 国产麻豆成人精品| 色综合天天综合| 日韩一区二区三区观看| 国产精品午夜在线观看| 亚洲高清视频在线| 国产精品一区在线观看乱码| 色综合久久六月婷婷中文字幕| 9191成人精品久久| 国产精品另类一区| 视频精品一区二区| 成人福利视频在线看| 欧美三级电影在线观看| 国产三级欧美三级日产三级99 | www.一区二区| 欧美二区在线观看| 国产片一区二区| 亚洲成人动漫一区| 成人一区二区视频| 3751色影院一区二区三区| 国产精品毛片大码女人| 日av在线不卡| 一本色道综合亚洲| 国产亚洲一区字幕| 日本成人在线视频网站| 99久久精品免费精品国产| 欧美一区二区三区四区高清| 亚洲四区在线观看| 久久99国产精品麻豆| 欧美偷拍一区二区| 国产精品国产三级国产aⅴ原创| 免费av网站大全久久| 色婷婷av一区二区三区gif| 久久久久国产成人精品亚洲午夜 | 精品视频在线免费| 中文字幕乱码亚洲精品一区| 日韩**一区毛片| 色狠狠综合天天综合综合| 国产三级精品视频| 久久 天天综合| 7878成人国产在线观看| 亚洲欧美成人一区二区三区| 国产精品一线二线三线| 日韩午夜激情av| 亚洲一区在线观看视频| 波多野结衣欧美| 久久精品欧美日韩| 激情成人综合网| 欧美成人一区二区三区片免费 | 蜜臀99久久精品久久久久久软件| 色婷婷综合久久久久中文| 国产精品每日更新| 国产馆精品极品| 国产人成亚洲第一网站在线播放| 麻豆视频观看网址久久| 欧美一级理论性理论a| 首页综合国产亚洲丝袜| 91精品1区2区| 一区二区三区日韩欧美精品| 色综合天天综合网国产成人综合天| 国产精品蜜臀在线观看| 国产91对白在线观看九色| 国产日韩欧美综合在线| 福利91精品一区二区三区| 欧美激情一区二区在线| 国产成人精品1024| 欧美激情一区在线| 99视频精品在线| 中文字幕一区在线观看| 99精品偷自拍| 亚洲综合在线五月| 欧美久久一二区| 日一区二区三区| 欧美大白屁股肥臀xxxxxx| 久久国产欧美日韩精品| 久久午夜国产精品| 风间由美一区二区三区在线观看| 中文字幕高清不卡| va亚洲va日韩不卡在线观看| 亚洲男同性视频| 欧美日韩中文字幕精品| 日本欧美加勒比视频| 日韩免费视频一区| 国产成人8x视频一区二区| 中文字幕欧美激情一区| 色综合 综合色| 天天爽夜夜爽夜夜爽精品视频| 欧美一区二区三区影视| 国产在线国偷精品产拍免费yy| 亚洲国产精品成人久久综合一区| 99视频在线精品| 图片区小说区国产精品视频| 欧美精品一区二区三区蜜桃视频 | 亚洲欧洲99久久| 欧美性色欧美a在线播放| 日本欧美一区二区三区乱码| 久久看人人爽人人| 91年精品国产| 美女在线视频一区| 国产精品三级视频| 欧美日韩激情一区二区| 久久不见久久见免费视频1| 亚洲国产成人一区二区三区| 欧美色爱综合网| 国产精品一区二区黑丝| 亚洲精品免费视频| 日韩欧美色电影| 91视频精品在这里| 欧美日韩国产精品自在自线| 激情综合网激情| 亚洲最大的成人av| 久久久久九九视频| 欧美婷婷六月丁香综合色| 国产乱人伦偷精品视频不卡| 一区二区三区高清在线| 欧美不卡一区二区三区四区| 9l国产精品久久久久麻豆| 日本大胆欧美人术艺术动态| 亚洲同性gay激情无套| 日韩精品一区二区三区在线| 91网站黄www| 国产曰批免费观看久久久| 亚洲一区二区三区在线| 久久久久久久久久久99999| 欧美日韩高清一区二区| 成人a区在线观看| 激情综合一区二区三区| 亚洲成a人片在线观看中文| 国产精品免费aⅴ片在线观看| 日韩欧美在线1卡| 欧美中文字幕不卡|