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

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

?? mbtcp.c

?? modbus的例程,非常不錯,大家可以
?? C
字號:
 /*
  * FreeModbus Libary: A portable Modbus implementation for Modbus ASCII/RTU.
  * Copyright (C) 2006 Christian Walter <wolti@sil.at>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
  * version 2.1 of the License, or (at your option) any later version.
  *
  * This library 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
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  *
  * File: $Id: mbtcp.c,v 1.2 2006/06/26 19:27:04 wolti Exp $
  */

/* ----------------------- System includes ----------------------------------*/
#include "stdlib.h"
#include "string.h"

/* ----------------------- Platform includes --------------------------------*/
#include "port.h"

/* ----------------------- Modbus includes ----------------------------------*/
#include "mb.h"
#include "mbconfig.h"
#include "mbtcp.h"
#include "mbframe.h"
#include "mbport.h"

#if MB_TCP_ENABLED > 0

/* ----------------------- Defines ------------------------------------------*/

/* ----------------------- MBAP Header --------------------------------------*/
/*
 *
 * <------------------------ MODBUS TCP/IP ADU(1) ------------------------->
 *              <----------- MODBUS PDU (1') ---------------->
 *  +-----------+---------------+------------------------------------------+
 *  | TID | PID | Length | UID  |Code | Data                               |
 *  +-----------+---------------+------------------------------------------+
 *  |     |     |        |      |                                           
 * (2)   (3)   (4)      (5)    (6)                                          
 *
 * (2)  ... MB_TCP_TID          = 0 (Transaction Identifier - 2 Byte) 
 * (3)  ... MB_TCP_PID          = 2 (Protocol Identifier - 2 Byte)
 * (4)  ... MB_TCP_LEN          = 4 (Number of bytes - 2 Byte)
 * (5)  ... MB_TCP_UID          = 6 (Unit Identifier - 1 Byte)
 * (6)  ... MB_TCP_FUNC         = 7 (Modbus Function Code)
 *
 * (1)  ... Modbus TCP/IP Application Data Unit
 * (1') ... Modbus Protocol Data Unit
 */

#define MB_TCP_TID          0
#define MB_TCP_PID          2
#define MB_TCP_LEN          4
#define MB_TCP_UID          6
#define MB_TCP_FUNC         7

#define MB_TCP_PROTOCOL_ID  0   /* 0 = Modbus Protocol */


/* ----------------------- Start implementation -----------------------------*/
eMBErrorCode
eMBTCPDoInit( USHORT ucTCPPort )
{
    eMBErrorCode    eStatus = MB_ENOERR;

    if( xMBTCPPortInit( ucTCPPort ) == FALSE )
    {
        eStatus = MB_EPORTERR;
    }
    return eStatus;
}

void
eMBTCPStart( void )
{
}

void
eMBTCPStop( void )
{
    /* Make sure that no more clients are connected. */
    vMBTCPPortDisable( );
}

eMBErrorCode
eMBTCPReceive( UCHAR * pucRcvAddress, UCHAR ** ppucFrame, USHORT * pusLength )
{
    eMBErrorCode    eStatus = MB_EIO;
    UCHAR          *pucMBTCPFrame;
    USHORT          usLength;
    USHORT          usPID;

    if( xMBTCPPortGetRequest( &pucMBTCPFrame, &usLength ) != FALSE )
    {
        usPID = pucMBTCPFrame[MB_TCP_PID] << 8U;
        usPID |= pucMBTCPFrame[MB_TCP_PID + 1];

        if( usPID == MB_TCP_PROTOCOL_ID )
        {
            *ppucFrame = &pucMBTCPFrame[MB_TCP_FUNC];
            *pusLength = usLength - MB_TCP_FUNC;
            eStatus = MB_ENOERR;

            /* Modbus TCP does not use any addresses. Fake the source address such
             * that the processing part deals with this frame.
             */
            *pucRcvAddress = MB_TCP_PSEUDO_ADDRESS;
        }
    }
    else
    {
        eStatus = MB_EIO;
    }
    return eStatus;
}

eMBErrorCode
eMBTCPSend( UCHAR _unused, const UCHAR * pucFrame, USHORT usLength )
{
    eMBErrorCode    eStatus = MB_ENOERR;
    UCHAR          *pucMBTCPFrame = ( UCHAR * ) pucFrame - MB_TCP_FUNC;
    USHORT          usTCPLength = usLength + MB_TCP_FUNC;

    /* The MBAP header is already initialized because the caller calls this
     * function with the buffer returned by the previous call. Therefore we 
     * only have to update the length in the header. Note that the length 
     * header includes the size of the Modbus PDU and the UID Byte. Therefore 
     * the length is usLength plus one.
     */
    pucMBTCPFrame[MB_TCP_LEN] = ( usLength + 1 ) >> 8U;
    pucMBTCPFrame[MB_TCP_LEN + 1] = ( usLength + 1 ) & 0xFF;
    if( xMBTCPPortSendResponse( pucMBTCPFrame, usTCPLength ) == FALSE )
    {
        eStatus = MB_EIO;
    }
    return eStatus;
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区四区四| 欧美男女性生活在线直播观看| 99精品欧美一区| 欧美日韩久久久| 中文字幕一区二区三| 久久精品国产一区二区| 91黄色免费网站| 国产精品美日韩| 国产真实乱对白精彩久久| 在线播放91灌醉迷j高跟美女 | 日本午夜精品视频在线观看| jizzjizzjizz欧美| 久久影院电视剧免费观看| 麻豆精品一区二区三区| 精品视频1区2区3区| 一区二区三区在线视频免费观看| 国产宾馆实践打屁股91| 国产亚洲精品免费| 国产精品一色哟哟哟| 欧美成人女星排名| 蜜臀av在线播放一区二区三区 | 日本视频一区二区三区| 欧美日韩国产乱码电影| 亚洲一二三区不卡| 欧美视频完全免费看| 亚洲精品国产高清久久伦理二区| av影院午夜一区| 中文天堂在线一区| 白白色亚洲国产精品| 国产精品久久久久影视| 白白色 亚洲乱淫| 国产精品色噜噜| 91影院在线免费观看| 亚洲图片你懂的| 91免费版在线| 亚洲第一会所有码转帖| 欧美一级日韩不卡播放免费| 麻豆精品在线播放| 26uuu国产电影一区二区| 国产伦精品一区二区三区免费 | 欧美日本一区二区三区| 视频一区二区中文字幕| 91精品国产全国免费观看| 免费看欧美女人艹b| 久久久久久久久久电影| 99久久国产综合精品麻豆| 亚洲免费看黄网站| 欧美卡1卡2卡| 国产一区视频在线看| 国产精品网曝门| 欧美性猛交xxxx乱大交退制版| 日本成人在线不卡视频| 久久九九影视网| 色综合久久久久综合体桃花网| 一区二区三区日韩在线观看| 欧美一二区视频| 成人天堂资源www在线| 亚洲综合男人的天堂| 日韩欧美亚洲国产精品字幕久久久| 韩国欧美一区二区| 日韩美女视频一区| 91精品福利在线一区二区三区| 国产一区二区视频在线播放| 亚洲欧美另类在线| 日韩美女主播在线视频一区二区三区 | 视频精品一区二区| 久久久国产精华| 欧美日韩国产高清一区二区三区| 麻豆视频一区二区| 一区二区三区资源| 久久久www免费人成精品| 一本色道久久综合亚洲精品按摩| 蜜臀久久99精品久久久久久9| 中文字幕中文字幕在线一区| 91麻豆精品国产无毒不卡在线观看| 成人久久视频在线观看| 青青草成人在线观看| 亚洲三级久久久| 精品久久人人做人人爽| 91传媒视频在线播放| 国产美女精品在线| 丝瓜av网站精品一区二区| 中文字幕不卡三区| 日韩精品中午字幕| 色综合久久久久久久久久久| 国产精品一区二区免费不卡 | 亚洲一区二区成人在线观看| 久久精品亚洲麻豆av一区二区| 欧美日韩免费一区二区三区视频| 成人三级伦理片| 国产寡妇亲子伦一区二区| 偷拍亚洲欧洲综合| 最近日韩中文字幕| 久久精品视频在线看| 欧美一级片在线| 欧美老年两性高潮| 色婷婷av一区二区三区大白胸| 北条麻妃一区二区三区| 国产盗摄视频一区二区三区| 蜜桃一区二区三区在线观看| 丝袜脚交一区二区| 午夜精品影院在线观看| 亚洲综合免费观看高清完整版| 自拍偷拍国产精品| 国产精品入口麻豆九色| 欧美激情一区二区| 欧美国产成人在线| 久久精品在这里| 久久精品男人天堂av| 欧美精品一区在线观看| 日韩精品一区二区三区四区| 精品国产自在久精品国产| 精品日韩欧美一区二区| 日韩精品一区二区三区蜜臀| 欧美精品一区二区三区高清aⅴ| 欧美成人三级电影在线| 久久久久久麻豆| 中文字幕精品—区二区四季| 国产精品免费aⅴ片在线观看| 国产精品青草久久| 亚洲男同性恋视频| 一卡二卡三卡日韩欧美| 亚洲va中文字幕| 美女尤物国产一区| 国产精品99久久久久久宅男| 岛国av在线一区| 91网站在线观看视频| 欧美色综合影院| 日韩美女在线视频| 欧美经典三级视频一区二区三区| 国产精品女同互慰在线看| 亚洲免费观看视频| 日韩黄色免费网站| 国产乱国产乱300精品| 成人成人成人在线视频| 在线免费视频一区二区| 欧美一区二区三区播放老司机| 2021久久国产精品不只是精品| 国产精品免费丝袜| 午夜不卡av在线| 国产精品一区二区三区四区| 色综合亚洲欧洲| 精品国产乱码久久久久久闺蜜| 国产精品麻豆久久久| 日韩av电影免费观看高清完整版在线观看| 久久成人免费日本黄色| 99精品久久只有精品| 欧美一区二区啪啪| 国产精品久久久久aaaa| 五月天亚洲婷婷| 成人国产免费视频| 制服丝袜在线91| 欧美国产一区在线| 日韩国产在线一| 99国产精品久久久久久久久久 | 日韩一区二区在线观看视频| 国产精品久久99| 久久91精品久久久久久秒播| 色综合色狠狠综合色| 亚洲精品一区二区在线观看| 一区二区三区日韩欧美| 成人亚洲一区二区一| 日韩精品一区二区三区swag| 一区二区三区四区蜜桃| 国产成人一级电影| 欧美一区永久视频免费观看| 亚洲特黄一级片| 国内精品国产三级国产a久久| 欧美欧美欧美欧美首页| 日韩美女视频一区| 国产成人免费视频| 日韩午夜激情电影| 午夜精品国产更新| 欧美在线免费视屏| 中文字幕一区二区三区视频 | 51精品视频一区二区三区| 国产精品国产自产拍在线| 国产精品一区二区你懂的| 日韩午夜在线观看| 亚洲国产精品精华液网站| 色狠狠桃花综合| 亚洲女厕所小便bbb| 99re热视频这里只精品| 欧美高清在线视频| 国产高清一区日本| 久久久久久久精| 国产乱码精品1区2区3区| 精品国产伦一区二区三区观看方式 | 一本久久综合亚洲鲁鲁五月天 | 成人中文字幕合集| 精品区一区二区| 精品中文字幕一区二区| 欧美一区二区久久| 久久精品国产色蜜蜜麻豆| 欧美变态tickling挠脚心| 久久成人羞羞网站| 久久九九久久九九| 国产不卡免费视频| 1区2区3区欧美| 在线中文字幕不卡|