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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mtp3app.c

?? MTP3層測試程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 * Test app to send and receive MTP3 packets and generate other MTP3 API calls.
 * Always displays any MTP packets (or other events) received. User hits <CR>
 * and can get a prompt to enter MTP3 primitive command.
 *
 * To run:
 *
 *  mtp3app  -o <opc> [-s <sio>] [-b <board>] [-n <nsap> ] -?
 *
 *      <opc>       originating point code to use for outgoing packets: required
 *
 *      <sio>       Service Information Octet value; default: 0x85 (ISUP)
 *
 *      <board>     Board number to use (defaults to 1)
 *
 *      <nsap>      MTP network SAP number to bind to
 *
 * User Commands:
 *
 *      SEND <dpc>              # prompts for data to send
 *      FLOW [OFF | ON]
 *      STA [OFF | ON]          # Turn on/off extended status indications
 */

#ifdef UNIX
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stream.h>
#include <ctype.h>
#endif                                    /* UNIX */

#ifdef __OS2__
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#endif                                    /* __OS2__ */

#ifdef WIN32
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#endif                                    /* WIN32 */

#include "ss7type.h"
#include "mtp3api.h"
#include "tx_core.h"


#define DFLT_ENT   0x20                 /* Default application entity ID                   */
#define DFLT_INST  0                    /* PC is always board zero                         */
#define DFLT_SAP   0                    /* defaults to first SAP in MTP configuration file */


/* globals (with defaults) for parameter values */
U32         Dpc         = 0;            /* dest point code - no default                    */
U32         Opc         = 0L;           /* my point code, no default                       */
U8          Sio         = 0x85;         /* SIO value to send (default national ISUP)       */
U8          MyEnt       = DFLT_ENT;     /* application entity ID, can be overridden to allow
                                         * multiple copies to run simultaneously           */
S16         MySap       = 0;            /* MTP3 NSAP to bind to (default 0)                */
int         Board       = 1;            /* MTP3's Board Number                             */


/* other globals */
#define            MAX_PACKET     272
U8                 Buf[MAX_PACKET];     /* packet buffer     */
unsigned long      PktXmitCnt = 0;      /* packet xmit count */
unsigned long      ByteXmitCnt = 0;     /* byte xmit count   */

#define MAX_PARMS    10

extern CPI_WAIT_TYPE stdInput;

/*
    func to dump data in hex+ascii format

    IN:  Buf        data to show
         ByteCnt    #Bytes in Buf
    OUT: <file>     gets multiple lines
*/
void showHex(unsigned char *Buf, unsigned short ByteCnt)
{
    unsigned short Li;
    unsigned short LMax;
    unsigned short ToDo;
    unsigned short Bi;
    unsigned short Ai;

    char Ascii[80];
    unsigned char B;

    /* Dump to std out in hex followed by ascii */
    for (ToDo = ByteCnt, Bi = 0; ToDo > 0; ToDo -= LMax)
    {
        LMax = (ToDo > 16) ? 16 : ToDo;            /* max bytes this line */
        printf("%04X| ", Bi);
        Ai = 0;

        for (Li = 0; Li < LMax; Li++)              /* each byte this line */
        {
            B = *Buf++;                            /* next byte to show */
            printf("%02X ", B);                    /* as hex */
            if (!isprint(B))                       /* printable ascii? */
                B = '.';                           /* no, use this */
            Ascii[Ai++] = B;                       /* into ascii portiob */
        }                                          /* for Li */

        for (Li = LMax; Li < 16; Li++)             /* pad short ln if necessary */
        {
             printf("   ");                        /* so asci lines up */
        }

        Ascii[Ai] = 0;                             /* terminate the ascii */
        printf("    ");
        printf("%s\n", Ascii);                     /* show the ascii */
        Bi += LMax;
    }                                              /* for ToDo */
}                                                  /* ShowHex */


/* tokenize
 *
 * Takes input line and creates an array of pointers to individual
 * tokens in the input line.  First separator after each token in
 * input line is replaced with a null so that each token becomes
 * a null terminated string.
 */
short tokenize( char *buf, char *tokens[] )
{
    char  *p = buf;
    char  *endp;
    short cnt;

    /* initialize token pointers to all null */
    for(cnt = 0; cnt <= MAX_PARMS; cnt++ )
    {
        tokens[cnt] = 0;
    }

    /* begin scanning for tokens */
    cnt = 0;
    while( *p != 0 && cnt <= MAX_PARMS )
    {
        /* skip leading space or tabs */
        while( *p == ' ' || *p == '\t' )
        {
            p++;
        }

        /* beginning of token (or end of line) */
        if( *p != 0 )
        {
            /* scan for end of token, converting to upper case as we go */
            endp = p;
            while( *endp != ' ' && *endp != '\t' && *endp != 0 )
            {
                if( islower( *endp ) )
                {
                    *endp = 'A' + (*endp - 'a');    /* convert to upper */
                }
                endp++;
            }

            /* now have a begin & end of token */
            tokens[cnt++] = p;
            if( *endp == 0 )
            {
                p = endp;    /* end of input - terminate scan */
            }
            else
            {
                *endp = 0;        /* null terminate token */
                p = &endp[1];    /* start next scan at after null */
            }
        }    /* end if *p != 0 */
    }    /* end while *p != 0 .... */

    return( cnt );
}


/* cmdPrompt
 *
 * Prompts user to enter command, collects parameters, and issues appropriate
 * MTP3 API command
 */
void cmdPrompt( void )
{
    char    buffer[256];
    char    *tokens[MAX_PARMS +1];
    short   len;
    short   cnt;
    short   status;
    short   action;
    long    a1, a2, a3;                 /* individual point code components */

    /* prompt for a command */
    printf( "Command?>" );
    tx_core_gets(buffer, 255);
    printf( "\n" );
    cnt = tokenize( buffer, tokens );
    if( cnt == 0 )
        return;

    if( (strcmp( tokens[0], "SEND" ) == 0) || (strcmp( tokens[0], "S" ) == 0) )
    {
        if( cnt < 2 )
        {
            printf( "Point code expected\n" );
            return;
        }
        /* scan next token for valid DPC */
        if( (sscanf( tokens[1], "%lu.%lu.%lu", &a1, &a2, &a3 )) == 3 )
        {
            Dpc = ((a1 & 0xFF) << 16) + ((a2 & 0xFF) << 8) + (a3 & 0xFF);
        }
        else if( (sscanf( tokens[1], "%iu", &Dpc )) != 1 )
        {
            printf( "Parameter error [%s] - point code expected\n", tokens[1]);
            return;
        }

        /* prompt for message data */
        printf( "Message Data?>" );
        tx_core_gets(buffer, 255);
        printf( "\n" );
        if ((len = strlen( buffer )) > 0)
        {
            /* send the data, including terminating null */
            status = MTP3SendData((U8) Board, 
                                  MySap, 
                                  Opc, 
                                  Dpc,
                                  (U8) 0,
                                  (U8) 1,
                                  (U8 *) buffer,
                                  (short) len,
                                  Sio );
            if( status != 0 )
            {
                printf( "Mtp3SendData failed, status = %d\n", status);
            }
        }
    }
    else if( (strcmp( tokens[0], "FLOW" ) == 0) || (strcmp( tokens[0], "F" ) == 0) )
    {
        /* scan next token for valid DPC */
        if( cnt < 2 )
        {
            printf( "FLOW OFF or ON expected\n" );
            return;
        }
        if( strncmp( tokens[1], "ON", 2 ) == 0 )
            action = 1;
        else if( strncmp( tokens[1], "OFF", 3 ) == 0 )
            action = 0;
        else
        {
            printf( "FLOW OFF or ON expected\n" );
            return;
        }
        status = MTP3Flow( (U8) Board, MySap, action );
        if( status != 0 )
        {
            printf( "Mtp3Flow failed, status = %d\n", status );
        }
    }
    else if( (strcmp( tokens[0], "XSTA" ) == 0) || (strcmp( tokens[0], "X" ) == 0) )
    {
        /* scan for ON or OFF */
        if( cnt < 2 )
        {
            printf( "XSTA OFF or ON expected\n" );
            return;
        }
        if( strncmp( tokens[1], "ON", 2 ) == 0 )
        {
           status = MTP3RegXStaReq( (U8) Board, MySap);
           if( status != 0 )
            {
                printf( "MTP3RegXStatReq failed, status = %d\n", status );
            }
        }
        else if( strncmp( tokens[1], "OFF", 3 ) == 0 )
        {
           status = MTP3DeregXStaReq( (U8) Board, MySap);
           if( status != 0 )
            {
                printf( "MTP3DeregXStaReq failed, status = %d\n", status );
            }
        }
        else
        {
            printf( "XSTA OFF or ON expected\n" );
            return;
        }
    }
    else
    {
        printf( "SEND, FLOW or XSTA command expected\n" );
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美怡红院视频| 中文字幕一区二区三区四区不卡 | 亚洲午夜精品17c| 国产三级欧美三级日产三级99 | 亚洲欧美激情视频在线观看一区二区三区 | 中文字幕一区二区三区乱码在线| 欧美精品一区二区三区在线 | 国产精品午夜在线观看| 精品国精品国产| 精品女同一区二区| 欧美一区二区三区视频在线观看 | 国产99久久久国产精品免费看| 久久精品国产亚洲5555| 精品在线观看视频| 国产精品正在播放| 从欧美一区二区三区| 99久久免费国产| 91丨porny丨蝌蚪视频| 91黄视频在线| 91精品国产综合久久久久久久| 91精品国产综合久久精品| 日韩欧美一级二级| 国产精品久久久久久久久免费樱桃| 成人免费在线视频观看| 亚洲国产精品尤物yw在线观看| 麻豆国产一区二区| 国产成人精品影视| 欧美性大战久久久久久久蜜臀| 4438x成人网最大色成网站| 久久久蜜桃精品| 亚洲国产日韩一区二区| 麻豆成人免费电影| 91亚洲男人天堂| 欧美一二三区在线| 国产精品久久久久久福利一牛影视 | 国产欧美va欧美不卡在线| 洋洋av久久久久久久一区| 久久精品久久久精品美女| 成人激情黄色小说| 91麻豆精品91久久久久久清纯 | 欧美丰满一区二区免费视频| 国产日本一区二区| 亚洲bdsm女犯bdsm网站| 高清视频一区二区| 91精品久久久久久蜜臀| 国产精品第13页| 韩国成人在线视频| 欧美日韩一本到| 自拍av一区二区三区| 国产一区二区三区蝌蚪| 欧美日韩精品欧美日韩精品一综合| 欧美激情一区二区三区四区| 免费看日韩a级影片| 91亚洲精品久久久蜜桃网站| 久久久国产精华| 麻豆成人久久精品二区三区小说| 日本韩国视频一区二区| 欧美激情一区不卡| 国产一区二区女| 日韩女优制服丝袜电影| 亚洲成人一区在线| 欧美专区日韩专区| 1000部国产精品成人观看| 国产成人综合自拍| 欧美精品一区二| 日本亚洲天堂网| 欧美日韩一区二区三区四区五区| 国产精品午夜免费| 成人h动漫精品| 国产精品福利一区| 国产喷白浆一区二区三区| 国内精品久久久久影院薰衣草 | 免费高清在线一区| 欧美丝袜第三区| 一区二区欧美国产| 欧美综合一区二区| 香蕉av福利精品导航| 欧美三级蜜桃2在线观看| 亚洲精品成人悠悠色影视| 91电影在线观看| 亚洲午夜久久久久久久久电影网| 色欧美88888久久久久久影院| 日韩理论片在线| 91国在线观看| 亚洲成人精品影院| 欧美一级日韩一级| 国产一区二区三区免费观看| 久久精品在这里| 色婷婷综合久久| 午夜久久久久久| 欧美精品一区二区三区在线播放 | 欧美成人一区二区三区片免费| 免费在线一区观看| 国产三级三级三级精品8ⅰ区| 成人午夜激情影院| 亚洲影视资源网| 精品国产乱码久久久久久免费| 国产在线一区观看| 国产精品国产三级国产| 欧美影视一区二区三区| 捆绑紧缚一区二区三区视频 | 日本韩国一区二区三区视频| 亚洲成人免费在线| 久久久久99精品一区| 99久久免费视频.com| 日本中文一区二区三区| 日本一区二区三区高清不卡| 色综合天天综合网国产成人综合天 | 成人一级黄色片| 一区二区免费看| 精品美女被调教视频大全网站| 成人h动漫精品一区二区| 亚洲午夜精品17c| 国产亚洲午夜高清国产拍精品| 日本久久一区二区三区| 精东粉嫩av免费一区二区三区| 最新热久久免费视频| 91精品国产日韩91久久久久久| 成人涩涩免费视频| 久草这里只有精品视频| 亚洲乱码国产乱码精品精的特点| 久久亚洲精品小早川怜子| 色成人在线视频| 国产一区二区三区香蕉| 日韩电影在线看| 亚洲男同性视频| 国产欧美视频一区二区三区| 欧美日韩一区高清| 91麻豆免费在线观看| 国产一区二区三区在线观看免费| 亚洲午夜一区二区| 亚洲婷婷国产精品电影人久久| 2023国产精品视频| 5月丁香婷婷综合| 91免费看片在线观看| 国产成人精品亚洲777人妖 | 欧美日韩国产精品自在自线| 成人av网站在线| 精品午夜一区二区三区在线观看| 亚洲成人精品影院| 亚洲激情成人在线| 中文字幕一区二区三中文字幕| 欧美精品一区二区三区久久久| 色94色欧美sute亚洲线路二| 国产suv精品一区二区6| 国产毛片精品视频| 国产在线视频一区二区三区| 免费观看日韩av| 久久国产精品色婷婷| 日韩黄色免费电影| 亚洲国产sm捆绑调教视频| 亚洲男同性视频| 亚洲女性喷水在线观看一区| 亚洲精品欧美在线| 亚洲午夜久久久久久久久电影网| 亚洲一区在线观看网站| 亚洲一区视频在线观看视频| 亚洲精品成人精品456| 夜色激情一区二区| 五月激情六月综合| 另类小说欧美激情| 国产精品系列在线播放| 成年人午夜久久久| 色综合久久天天综合网| 欧美日韩国产大片| 欧美一二三四在线| 久久精品夜色噜噜亚洲a∨| 中文乱码免费一区二区| 亚洲激情五月婷婷| 奇米影视在线99精品| 国产精品一二三| 99久久免费视频.com| 欧美日韩精品欧美日韩精品一| 日韩精品资源二区在线| 中文av一区二区| 亚洲高清不卡在线| 国产麻豆成人精品| 91蜜桃网址入口| 欧美一区二区三区在线看| 精品精品国产高清a毛片牛牛 | 日韩视频中午一区| 国产日韩欧美亚洲| 一区二区三区久久久| 美国三级日本三级久久99| 国产91对白在线观看九色| 91免费在线视频观看| 日韩一区二区视频在线观看| 国产精品视频在线看| 亚洲曰韩产成在线| 国产在线一区二区| 精品视频在线免费看| 国产亚洲欧洲一区高清在线观看| 一级特黄大欧美久久久| 久久99久久精品欧美| 色悠久久久久综合欧美99| 欧美成人伊人久久综合网| 亚洲国产日韩a在线播放性色| 国产在线一区观看| 777精品伊人久久久久大香线蕉| 国产精品免费视频网站|