ppp_test_support.inl

来自「eCos操作系统源码」· INL 代码 · 共 226 行

INL
226
字号
//==========================================================================////      tests/ppp_test_support.c////      PPP testing support routines////==========================================================================//####ECOSGPLCOPYRIGHTBEGIN####// -------------------------------------------// This file is part of eCos, the Embedded Configurable Operating System.// Portions created by Nick Garnett are// Copyright (C) 2003 eCosCentric Ltd.//// eCos is free software; you can redistribute it and/or modify it under// the terms of the GNU General Public License as published by the Free// Software Foundation; either version 2 or (at your option) any later version.//// eCos 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 eCos; if not, write to the Free Software Foundation, Inc.,// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.//// As a special exception, if other files instantiate templates or use macros// or inline functions from this file, or you compile this file and link it// with other works to produce a work based on this file, this file does not// by itself cause the resulting work to be covered by the GNU General Public// License. However the source code for this file must still be made available// in accordance with section (3) of the GNU General Public License.//// This exception does not invalidate any other reasons why a work based on// this file might be covered by the GNU General Public License.//// -------------------------------------------//####ECOSGPLCOPYRIGHTEND####//####BSDCOPYRIGHTBEGIN####//// -------------------------------------------//// Portions of this software may have been derived from OpenBSD, // FreeBSD or other sources, and are covered by the appropriate// copyright disclaimers included herein.//// -------------------------------------------////####BSDCOPYRIGHTEND####//==========================================================================//#####DESCRIPTIONBEGIN####//// Author(s):    nickg// Contributors: nickg// Date:         2003-07-01// Purpose:      // Description:  This file contains routines that are used by the PPP tests.////####DESCRIPTIONEND####////==========================================================================// PPP test support#include <network.h>#include <pkgconf/system.h>#include <pkgconf/net.h>#include <pkgconf/ppp.h>#include <cyg/ppp/ppp.h>#include <cyg/io/io.h>#include <cyg/io/serialio.h>#include <stdio.h>#include <cyg/infra/testcase.h>//==========================================================================static cyg_serial_baud_rate_t ppp_test_set_baud( cyg_serial_baud_rate_t baud ){#ifdef CYGPKG_PPP_TESTS_AUTOMATE    cyg_io_handle_t     handle;    cyg_serial_info_t   cfg;    int                 err;    int                 len = sizeof(cfg);    char                buf[30];    int                 blen;    cyg_serial_baud_rate_t old_baud;        CYG_TEST_INFO( "Switching baud rate" );        err = cyg_io_lookup( CYGPKG_PPP_TEST_DEVICE, &handle );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_lookup: failed");    }    sprintf( buf, "BAUD:%03d\r\n", baud );    blen = strlen(buf);        err = cyg_io_write( handle, buf, &blen );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_write: failed");    }    // Wait for those characters to reach the remote end    cyg_thread_delay(200);    err = cyg_io_get_config( handle,                             CYG_IO_GET_CONFIG_SERIAL_INFO,                             &cfg,                             &len);    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_get_config: failed");    }    cfg.flags |= CYGNUM_SERIAL_FLOW_RTSCTS_RX|CYGNUM_SERIAL_FLOW_RTSCTS_TX;    old_baud = cfg.baud;    cfg.baud = baud;        err = cyg_io_set_config( handle,                             CYG_IO_SET_CONFIG_SERIAL_INFO,                             &cfg,                             &len);    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_set_config failed");    }    // Wait for other end to switch...    cyg_thread_delay(100);    CYG_TEST_INFO( "Baud rate switched" );    return old_baud;#else    return 0;#endif}//==========================================================================static void ppp_test_announce( char *buf ){#ifdef CYGPKG_PPP_TESTS_AUTOMATE        cyg_io_handle_t     handle;    int                 err;    int                 blen;//    cyg_thread_delay(200);    CYG_TEST_INFO( "Sending announce string" );        err = cyg_io_lookup( CYGPKG_PPP_TEST_DEVICE, &handle );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_lookup: failed");    }    blen = strlen(buf);      err = cyg_io_write( handle, buf, &blen );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_write: failed");    }    blen = 2;    err = cyg_io_write( handle, "\r\n", &blen );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_write: failed");    }    cyg_thread_delay(200);            CYG_TEST_INFO( "Announce string sent" );#endif}//==========================================================================static void ppp_test_finish(void){#ifdef CYGPKG_PPP_TESTS_AUTOMATE        cyg_io_handle_t     handle;    int                 err;    char                *buf = "FINISH\r\n";    int                 blen;//    cyg_thread_delay(200);    CYG_TEST_INFO( "Sending FINISH" );        err = cyg_io_lookup( CYGPKG_PPP_TEST_DEVICE, &handle );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_lookup: failed");    }    blen = strlen(buf);      err = cyg_io_write( handle, buf, &blen );    if( err != 0 ) {        CYG_TEST_INFO("cyg_io_write: failed");    }    cyg_thread_delay(200);            CYG_TEST_INFO( "FINISH sent" );#endif}//==========================================================================

⌨️ 快捷键说明

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