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

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

?? ppp.c

?? uCOS-II應用舉例
?? C
?? 第 1 頁 / 共 4 頁
字號:
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void PPPIllegalEvent(uint8 *DataBuf, uint8 Q)
{
    DataBuf = DataBuf;
    Q = Q;
}

/*********************************************************************************************************
** 函數名稱: PPP_UpLayer()
** 功能描述: This-Layer-Up
**          動作給自動進入打開階段的上邊的層做指示。
**          典型的,該動作被LCP用于對一個NCP發送向上的事件信號,或者鏈路質量協議,或者可以被一個NCP用于顯示該鏈路可用于它的網絡層往來。 
**          或者可以被一個NCP用于顯示該鏈路可用于它的網絡層往來。 
** 輸 入: DataBuf :接收到的數據包
**         Q       :接收到的消息(本函數沒有用到)
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        void PPP_UpLayer(uint8 *DataBuf, uint8 Q)
{
    NCPGetFrame(&PPPData, DataBuf, Q);
}

/*********************************************************************************************************
** 函數名稱: PPPDriverInit()
** 功能描述: PPP驅動接收初始化
** 輸 入: 無
** 輸 出: 無
** 全局變量: PPPData
** 調用模塊: 無
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 PPPDriverInit(void)
{
    PPPData.HardDrive = NULL;
    PPPData.Event = OSQCreate(PPPData.QBuf, PPP_DRIVER_Q_BUF_LEN);
    if (PPPData.Event == NULL)
    {
        return FALSE;
    }
    else
    {
        return TRUE;
    }
}

uint8 PPPLowLayerUpQ[1];
uint8 PPPLowLayerDownQ[1];
uint8 PPPOpenQ[1];
uint8 PPPCloseQ[1];

        uint8 PPPLowLayerUp(void)
{

#if OS_TASK_CREATE_EN > 0
    #if OS_STK_GROWTH > 0    
        OSTaskCreate(PPPReviceTask, NULL, Stk[1] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO + 1);
    #else
        OSTaskCreate(PPPReviceTask, NULL, Stk[1], PPP_DRIVER_TASK_PRIO + 1);
    #endif
#else
    #if OS_STK_GROWTH > 0    
        OSTaskCreateExt(PPPReviceTask, NULL, Stk[1] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO + 1, PPP_DRIVER_TASK_PRIO + 1, Stk[1],
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);

    #else
        OSTaskCreateExt(PPPReviceTask, NULL, Stk[1], PPP_DRIVER_TASK_PRIO + 1,
                 PPP_DRIVER_TASK_PRIO + 1, Stk[1] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);
    #endif
#endif
    
    PPPLowLayerUpQ[0] = PPP_EVENT_LOWER_UP;
    OSQPost(PPPData.Event, (void *)PPPLowLayerUpQ);

    return 0;
}

        uint8 PPPLowLayerDown(void)
{
    PPPLowLayerDownQ[0] = PPP_EVENT_LOWER_DOWN;
    OSQPost(PPPData.Event, (void *)PPPLowLayerDownQ);

    OSTaskDel(PPP_DRIVER_TASK_PRIO + 1);
    return 0;
}

        uint8 PPPOpen(void)
{
    PPPOpenQ[0] = PPP_EVENT_OPEN;
    OSQPost(PPPData.Event, (void *)PPPOpenQ);
    return 0;
}

        uint8 PPPClose(void)
{
    PPPCloseQ[0] = PPP_EVENT_CLOSE;
    OSQPost(PPPData.Event, (void *)PPPCloseQ);

    return 0;
}


        uint8 PPPCreate(NetHardDrivesSocket *HardDrive)
{
    if (PPPData.HardDrive == NULL && HardDrive != NULL)
    {
        PPPData.HardDrive = HardDrive;
        HardDrive->ThisLayerUp = PPPLowLayerUp;
        HardDrive->ThisLayerDown = PPPLowLayerDown;
        
        PPPData.MaxTerminate = 3 * OS_TICKS_PER_SEC;
        PPPData.MaxConfigure = 2 * OS_TICKS_PER_SEC;
        PPPData.MaxFailure = 10;
        PPPData.DelayTime = 0;
        PPPData.OverTimeSum = 0;
        PPPData.State = PPP_STATE_INITIAL;
        PPPData.FramID = 0;

#if OS_TASK_CREATE_EN > 0
    #if OS_STK_GROWTH > 0    
        OSTaskCreate(PPPDriverTask, NULL, Stk[0] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO);
    #else
        OSTaskCreate(PPPDriverTask, NULL, Stk[0], PPP_DRIVER_TASK_PRIO);
    #endif
#else
    #if OS_STK_GROWTH > 0    
        OSTaskCreateExt(PPPDriverTask, NULL, Stk[0] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_PRIO, PPP_DRIVER_TASK_PRIO, Stk[0],
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);
    #else
        OSTaskCreateExt(PPPDriverTask, NULL, Stk[0], PPP_DRIVER_TASK_PRIO,
                 PPP_DRIVER_TASK_PRIO, Stk[0] + PPP_DRIVER_TASK_STK_SIZE - 1,
                 PPP_DRIVER_TASK_STK_SIZE, NULL, 0);
    #endif
#endif
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

/*********************************************************************************************************
** 函數名稱: PPPDriveWrite()
** 功能描述: 使用PPP協議發送一個數據包,調用此函數前必須調用PPPDriveGetSendBuf獲取數據緩沖
** 輸 入: HardDrive :發送的硬件驅動
**         Buf  :指向發送的數據
**         NByte:發送的字節數
** 輸 出: TRUE :函數調用成功
**         FALSE:函數調用失敗
** 全局變量: PPPUseHardDrive,PPPFcs16
** 調用模塊:
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/

        uint8 PPPDriveWrite(NetHardDrivesSocket *HardDrive, uint8 *Buf, uint16 Nbyte)
{
    
    uint16 Fcs;
    uint8 Temp;
    
    if (HardDrive != NULL)
    if (HardDrive->GetFlag != NULL)
    if (HardDrive->GetFlag() == NET_HARD_OPEN)
    if (HardDrive->Putch != NULL)
    {
        Fcs = PPPFcs16(PPP_HARD_FCS16, Buf, Nbyte);
        Fcs = ~Fcs;
                
/* 取得信號量 */
                
        HardDrive->Putch(PPP_HARD_CHAR);
        HardDrive->Putch(PPP_ADDR_CHAR);
        HardDrive->Putch(PPP_DLE_CHAR);
        HardDrive->Putch(PPP_CTR_CHAR ^ PPP_DLE_XOR_CHAR);
        while (Nbyte--)
        {
            Temp = *Buf;
       
            if ((Temp == PPP_HARD_CHAR) || (Temp == PPP_DLE_CHAR) || (Temp < 0x20))
            {
                HardDrive->Putch(PPP_DLE_CHAR);
                HardDrive->Putch(Temp ^ PPP_DLE_XOR_CHAR);
            }
            else
            {
                HardDrive->Putch(*Buf);
            }
            Buf++;
        }

        Temp = Fcs % 256;
        if ((Temp == PPP_HARD_CHAR) || (Temp == PPP_DLE_CHAR) || (Temp < 0x20))
        {
            HardDrive->Putch(PPP_DLE_CHAR);
            HardDrive->Putch(Temp ^ PPP_DLE_XOR_CHAR);
        }
        else
        {
            HardDrive->Putch(Temp);
        }


        Temp = Fcs / 256;
        if ((Temp == PPP_HARD_CHAR) || (Temp == PPP_DLE_CHAR) || (Temp < 0x20))
        {
            HardDrive->Putch(PPP_DLE_CHAR);
            HardDrive->Putch(Temp ^ PPP_DLE_XOR_CHAR);
        }
        else
        {
            HardDrive->Putch(Temp);
        }
                
                
        HardDrive->Putch(PPP_HARD_CHAR);

/* 發送信號量 */
        return TRUE;
    }
    return FALSE;
}

/*********************************************************************************************************
** 函數名稱: PPPGetch()
** 功能描述: 接收一個字節
** 輸 入: 無
** 輸 出: 接收到的數據
** 全局變量: PPPUseHardDrive
** 調用模塊: OSTaskSuspend
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
        uint8 PPPGetch(NetHardDrivesSocket *HardDrive)
{
    uint8 Temp,err;
    
    while (1)
    {
        err = HardDrive->Getch(&Temp);
        if (err == NO_ERR)
        {
            break;
        }
    }
    return Temp;
}



/*********************************************************************************************************
** 函數名稱: PPPDriverGetFrame()
** 功能描述: PPP驅動接收到數據幀處理
** 輸 入: Fram :數據幀的起始地址
**         NByte:數據幀大小
** 輸 出: 無
** 全局變量: FramType
** 調用模塊: PPPFcs16,IPReviceFram,ICPCReviceFram,PAPReviceFram,LCPReviceFram
**
** 作 者: 陳明計
** 日 期: 2004年4月23日
**-------------------------------------------------------------------------------------------------------
** 修改人:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合丝袜美腿| 久久99精品国产麻豆婷婷洗澡| 一区二区理论电影在线观看| 精品制服美女丁香| 欧美视频一区二区三区四区| 国产网站一区二区| 看国产成人h片视频| 欧美午夜精品一区二区蜜桃| 国产精品久久久爽爽爽麻豆色哟哟| 调教+趴+乳夹+国产+精品| 成人app下载| 久久精品一区二区三区不卡| 日本亚洲最大的色成网站www| 91色.com| 国产精品久久久久久福利一牛影视 | 偷拍亚洲欧洲综合| 91丨porny丨户外露出| 国产日韩欧美不卡| 狂野欧美性猛交blacked| 欧美视频一区在线| 亚洲综合在线第一页| 91丝袜国产在线播放| 1区2区3区欧美| av中文字幕在线不卡| 国产精品无圣光一区二区| 国产老女人精品毛片久久| 精品剧情v国产在线观看在线| 午夜精品福利一区二区蜜股av| 91黄视频在线| 一区二区高清视频在线观看| 在线视频亚洲一区| 亚洲欧美日本在线| 91蜜桃视频在线| 亚洲男同1069视频| 色婷婷亚洲精品| 一区二区日韩av| 欧美卡1卡2卡| 精品一区二区在线播放| 精品国产免费视频| 国产风韵犹存在线视精品| 国产午夜精品一区二区三区四区| 国产精品系列在线播放| 国产精品私人影院| 日本韩国欧美一区二区三区| 亚洲午夜激情网站| 日韩免费性生活视频播放| 韩国精品一区二区| 国产区在线观看成人精品| 99精品偷自拍| 亚洲一区二区三区在线看| 欧美群妇大交群中文字幕| 日本不卡123| 国产亚洲婷婷免费| 色狠狠色噜噜噜综合网| 视频一区二区三区在线| 精品国产伦理网| 成人小视频在线| 亚洲成人高清在线| 欧美成人性福生活免费看| 国产91色综合久久免费分享| 亚洲欧美激情插| 91精品视频网| 成人a区在线观看| 亚洲超碰精品一区二区| 精品国产一区二区精华| 一本色道久久综合狠狠躁的推荐 | 777精品伊人久久久久大香线蕉| 狠狠色狠狠色合久久伊人| 亚洲另类在线一区| 精品久久久久久综合日本欧美| 成人永久看片免费视频天堂| 亚洲成年人网站在线观看| 久久麻豆一区二区| 欧美日韩一区二区在线观看视频| 加勒比av一区二区| 亚洲成人在线免费| 亚洲欧洲一区二区在线播放| 日韩欧美电影在线| 色综合久久天天| 国产精品99久久久久| 午夜伦欧美伦电影理论片| 国产精品亲子乱子伦xxxx裸| 精品区一区二区| 99久久综合精品| 韩国女主播成人在线观看| 亚洲国产精品久久艾草纯爱 | 亚洲永久免费av| 国产精品视频在线看| 精品捆绑美女sm三区| 欧美高清视频不卡网| 91免费小视频| 成人黄色777网| 精品综合免费视频观看| 亚洲va韩国va欧美va精品 | 91麻豆高清视频| 国产剧情一区二区三区| 奇米色一区二区| 日本亚洲天堂网| 亚洲一区二区三区中文字幕| 亚洲伦理在线免费看| 国产精品三级av| 国产日韩欧美精品综合| 欧美大片日本大片免费观看| 欧美日本在线一区| 欧美四级电影在线观看| 欧美亚洲国产一卡| 在线亚洲免费视频| 欧美性大战久久久久久久蜜臀| 色综合久久中文字幕综合网| 97久久精品人人做人人爽| 成人深夜福利app| 成人黄色免费短视频| www.成人网.com| 一本大道久久a久久综合婷婷| 成人av动漫在线| 不卡欧美aaaaa| 91久久精品一区二区三区| 一本一本大道香蕉久在线精品| 色婷婷久久久久swag精品| 91精品福利视频| 欧美日韩久久久久久| 欧美一区二区精美| wwww国产精品欧美| 国产精品欧美久久久久无广告| 国产精品二三区| 亚洲国产另类精品专区| 美脚の诱脚舐め脚责91| 捆绑调教一区二区三区| 国产福利一区二区三区| 91美女在线视频| 51精品久久久久久久蜜臀| 精品国产成人系列| 日本一区二区三区在线不卡| 夜夜精品视频一区二区 | 成人午夜伦理影院| 一本色道综合亚洲| 91精品国产乱| 国产色一区二区| 亚洲午夜免费福利视频| 久久国产综合精品| 成人黄色av电影| 欧美日韩高清一区二区| 精品久久久三级丝袜| 日韩理论片网站| 天天综合网天天综合色| 国产精品一二一区| 在线视频欧美区| 亚洲精品一区二区三区99| 综合久久综合久久| 麻豆精品久久久| 色老综合老女人久久久| 日韩精品专区在线| 亚洲视频一区二区在线观看| 国产精品亚洲综合一区在线观看| 成人av网址在线| 69堂国产成人免费视频| 国产精品国产自产拍在线| 午夜不卡av在线| 成人免费视频免费观看| 制服.丝袜.亚洲.另类.中文| 国产精品女人毛片| 日日摸夜夜添夜夜添精品视频| 国产成人精品一区二| 欧美日韩精品一二三区| 国产精品无遮挡| 精品一区二区久久| 欧美性生活久久| 国产精品区一区二区三区| 琪琪久久久久日韩精品| 91国产视频在线观看| 久久久一区二区| 日韩成人av影视| 一本色道久久综合精品竹菊 | 91精品国产综合久久久久久久 | 欧美精品xxxxbbbb| 中文字幕一区二区三区蜜月| 免费人成精品欧美精品| 在线观看网站黄不卡| 中文字幕av一区二区三区免费看| 青草av.久久免费一区| 日本道在线观看一区二区| 国产精品乱码久久久久久| 麻豆视频观看网址久久| 欧美日韩色一区| 亚洲在线一区二区三区| 91视频在线观看| 综合久久综合久久| 懂色av一区二区三区免费看| 精品国产一区二区三区久久久蜜月 | 亚洲一区在线观看免费| 成人av先锋影音| 国产精品久久久久影院色老大| 国产呦精品一区二区三区网站| 91精品国产手机| 日本视频免费一区| 日韩一级大片在线观看| 日本美女视频一区二区| 欧美精品在欧美一区二区少妇| 亚洲一区影音先锋| 欧美日韩激情一区二区三区|