⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fmbus.h

📁 这是一个潜入式开发的c语言代码
💻 H
字号:

/*#########################################################################

  Copyright (c) 2005,
  All rights reserved.
  
  File name     : fpubdef.h
  Description   :公共定义

  Version       :1.00
  Author        :
  Complete Date :2006-06-05

  Function List :
  History       :
  _________________________________________________________________________
  DATE          AUTHOR    VERSION    DESCRIBE
  -------------------------------------------------------------------------
  2005-06-05     zlz      Ver1.00    Create

#########################################################################*/

#include "fpubdef.h"
#include "crclrc.h"

#ifndef __F_MODBUS_H__
#define __F_MODBUS_H__


#define CHECKFAIL    101
#define CHECKSUCCESS 100
#define ASCII        1001
#define RTU          1002




/*---------------------------    requery frame    ----------------------------*/     
#define  FMB_MAX_BUF_SIZE   512
typedef  BYTE  FMBIOBUF[FMB_MAX_BUF_SIZE];


/*Set*/
VOID  FmbReqSetAdr ( BYTE *pfmbreq, BYTE aAdr );
VOID  FmbReqSetFun ( BYTE *pfmbreq, BYTE aFun );
VOID  FmbReqSetR1  ( BYTE *pfmbreq, INT16 aReg1 );
VOID  FmbReqSetRN  ( BYTE *pfmbreq, INT16 aRegNum);
VOID  FmbReqSetCRC ( BYTE *pfmbreq);
VOID  FmbReqSetLRC ( BYTE *pfmbreq);

BYTE *  FmbReqMakeBuffer  ( BYTE *pfmbreq, REGINT aTagMode );/* FMB_TAG_ASC, FMB_TAG_RTU */

/*Get*/
BYTE   FmbReqGetAdr      ( BYTE *pfmbreq );
BYTE   FmbReqGetFun      ( BYTE *pfmbreq );
UINT16 FmbReqGetR1       ( BYTE *pfmbreq );
UINT16 FmbReqGetRN       ( BYTE *pfmbreq );
UINT16 FmbReqGetCRC      ( BYTE *pfmbreq );
BYTE   FmbReqGetLRC      ( BYTE *pfmbreq );
Boolean   FmbReqParseBuffer ( BYTE *pfmbreq, REGINT aTagMode );


/*---------------------------    response frame    ----------------------------*/     

#define  FMB_MAX_INT_NUM  512

/*Set*/

VOID  FmbRspSetAdr      ( BYTE *pfmbrsp, BYTE aAdr );
VOID  FmbRspSetFun      ( BYTE *pfmbrsp, BYTE aFun );
VOID  FmbRspSetDataNum  ( BYTE *pfmbrsp, BYTE DataNum );
VOID  FmbRspSetData     ( BYTE *pfmbrsp, REGINT aIdx, UINT16 aData );
VOID  FmbRspSetCRC      ( BYTE *pfmbrsp);
VOID  FmbRspSetLRC      ( BYTE *pfmbrsp);
BYTE* FmbRspMakeBuffer  ( BYTE *pfmbrsp, REGINT aTagMode );

/*Get*/
REGINT  FmbRspGetLength   ( BYTE *pfmbrsp );
BYTE    FmbRspGetAdr      ( BYTE *pfmbrsp );
BYTE    FmbRspGetFun      ( BYTE *pfmbrsp );
REGINT  FmbRspGetByteNum  ( BYTE *pfmbrsp );
UINT16  FmbRspGetData     ( BYTE *pfmbreq, REGINT aIdx );
UINT16  FmbRspGetCRC      ( BYTE *pfmbreq );
BYTE    FmbRspGetLRC      ( BYTE *pfmbreq );
Boolean FmbRspParseBuffer ( BYTE *pfmbreq,   REGINT aTagMode );


/*-----------------------  FMBEVENT frame -----------------------------------------*/

/*typedef struct tag_FMBEVENT
{
  REGINT  TagMode;/* FMB_TAG_ASC, FMB_TAG_RTU */
  /*FMBREQ  REQ;
  FMBRSP  RSP;
}  FMBEVENT;

VOID FmbReqInterpreterAsc ( FMBREQ *pfmbreq);
VOID FmbReqInterpreterRTU ( FMBREQ *pfmbreq);
VOID FmbRspInterpreterAsc ( FMBRSP *pfmbrsp);
VOID FmbRspInterpreterRTU ( FMBRSP *pfmbrsp);*/

#define  FMODBUS_ADR  0
#define  FMODBUS_FUN  1
#define  FMODBUS_RSP_DATA_NUM  3
#define  FMODBUS_RSP_DATA_BASE  5
#define  FMODBUS_ASK_REG_ADR  2
#define  FMODBUS_ASK_REG_NUM  4


#endif

⌨️ 快捷键说明

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