亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久―日本道色综合久久| 亚洲免费高清视频在线| 国产精品超碰97尤物18| 丝瓜av网站精品一区二区| 风间由美一区二区av101| 在线播放视频一区| 亚洲综合色丁香婷婷六月图片| 国产一区二区三区免费| 91麻豆精品国产| 一区二区免费视频| www.激情成人| 久久久精品tv| 麻豆成人久久精品二区三区小说| 在线日韩av片| 国产精品国产自产拍在线| 黄网站免费久久| 日韩欧美在线网站| 日韩国产精品久久| 欧美猛男男办公室激情| 亚洲精品免费在线| av一区二区三区在线| 国产精品私人自拍| 国产麻豆视频精品| 精品国产电影一区二区| 久久成人麻豆午夜电影| 日韩三级av在线播放| 蜜桃精品视频在线观看| 3d动漫精品啪啪1区2区免费| 亚洲www啪成人一区二区麻豆| 91社区在线播放| 国产精品超碰97尤物18| 99久久精品免费观看| 亚洲视频在线观看三级| 91日韩在线专区| 亚洲激情六月丁香| 91福利精品视频| 亚洲一区在线观看视频| 欧美日韩精品免费观看视频| 性感美女久久精品| 欧美一区二区在线免费播放| 日韩高清不卡一区| 精品国产免费一区二区三区四区| 精品一区二区三区视频| 久久综合一区二区| 99亚偷拍自图区亚洲| 亚洲男同性恋视频| 欧美美女黄视频| 美国av一区二区| 欧美高清在线精品一区| 色悠悠久久综合| 日韩电影在线观看网站| 久久婷婷一区二区三区| 成人小视频在线| 亚洲福利电影网| 欧美大片在线观看| av成人老司机| 亚洲高清在线视频| 精品国产123| 一本久道中文字幕精品亚洲嫩| 亚洲一区二区欧美激情| 26uuu国产日韩综合| 91麻豆.com| 国产精品 欧美精品| 中文一区在线播放| 7777精品伊人久久久大香线蕉超级流畅| 蜜桃av一区二区| 国产精品成人免费精品自在线观看| 欧美日韩一级黄| 大陆成人av片| 人人爽香蕉精品| 中文字幕在线观看不卡视频| 欧美日韩一区二区三区在线| 国产一区中文字幕| 亚洲国产va精品久久久不卡综合 | 精品久久人人做人人爰| 成人动漫中文字幕| 蜜桃视频一区二区| 亚洲精品成人在线| 欧美激情资源网| 欧美一级欧美一级在线播放| av成人老司机| 国产激情视频一区二区三区欧美 | 日韩美女视频一区| 日韩一二三区不卡| 欧美亚洲动漫精品| av男人天堂一区| 精品无码三级在线观看视频| 一级做a爱片久久| 国产精品久久久久久久久图文区| 717成人午夜免费福利电影| 成人黄动漫网站免费app| 久久激情五月激情| 亚洲丶国产丶欧美一区二区三区| 国产精品你懂的在线欣赏| 精品日本一线二线三线不卡| 欧美日韩一二三区| 欧美专区在线观看一区| av电影在线观看完整版一区二区| 韩国女主播成人在线观看| 图片区小说区区亚洲影院| 亚洲色图欧洲色图婷婷| 国产精品全国免费观看高清| 久久久亚洲高清| 欧美va亚洲va国产综合| 欧美疯狂做受xxxx富婆| 欧美肥妇free| 在线播放日韩导航| 欧美一区二区观看视频| 欧美一级理论片| 欧美一二三区精品| 欧美一级在线观看| 日韩亚洲电影在线| 日韩精品在线一区| 精品久久久影院| 精品91自产拍在线观看一区| 亚洲精品一区二区三区蜜桃下载| 日韩久久久久久| 精品少妇一区二区三区在线视频| 日韩一区二区三区在线视频| 欧美成人r级一区二区三区| 日韩一级片网址| 精品国产乱码久久久久久图片| 欧美videos中文字幕| 久久伊人蜜桃av一区二区| 中文字幕av资源一区| 中文字幕永久在线不卡| 亚洲蜜臀av乱码久久精品蜜桃| 一区二区三区日本| 日韩高清在线电影| 蜜臀久久99精品久久久久宅男| 久久99国产精品尤物| 国产乱子伦视频一区二区三区| 成人黄色777网| 欧美视频中文字幕| 精品国产乱码久久久久久久久| 国产亚洲精品精华液| 亚洲女性喷水在线观看一区| 亚洲6080在线| 国产成人啪免费观看软件| 国产成人精品亚洲午夜麻豆| 91在线porny国产在线看| 欧美理论片在线| 久久久影视传媒| 亚洲精品欧美综合四区| 奇米亚洲午夜久久精品| 国产成人欧美日韩在线电影| 欧洲中文字幕精品| 日韩精品在线一区二区| 亚洲欧洲av在线| 日韩制服丝袜先锋影音| 处破女av一区二区| 欧美福利电影网| 欧美国产乱子伦 | 亚洲视频一二三区| 亚洲妇女屁股眼交7| 国产.欧美.日韩| 在线观看91精品国产麻豆| 国产网站一区二区| 亚洲成人免费视频| 国产成人av电影在线播放| 欧日韩精品视频| 日本一区二区三级电影在线观看| 亚洲美女视频在线观看| 精品一区中文字幕| 欧洲国产伦久久久久久久| 国产无遮挡一区二区三区毛片日本| 亚洲激情自拍偷拍| 成人听书哪个软件好| 日韩一区二区在线播放| 亚洲激情男女视频| 成人少妇影院yyyy| 精品国产一区二区精华| 亚洲成人av资源| 一本色道综合亚洲| 国产欧美日韩激情| 国内成人免费视频| 777色狠狠一区二区三区| 亚洲欧美激情一区二区| 国产美女在线精品| 欧美v国产在线一区二区三区| 午夜私人影院久久久久| 91网站在线观看视频| 国产情人综合久久777777| 狠狠色丁香婷综合久久| 欧美一级一区二区| 爽爽淫人综合网网站| 欧美色图免费看| 一区二区三区日韩精品| 91视视频在线直接观看在线看网页在线看 | 国产激情一区二区三区| 日韩精品自拍偷拍| 捆绑调教美女网站视频一区| 欧美精品在欧美一区二区少妇| 亚洲精品日日夜夜| 91国偷自产一区二区开放时间 | a亚洲天堂av| 国产精品视频第一区| 成人一区二区三区视频| 最新中文字幕一区二区三区| 成人ar影院免费观看视频|