MF32BSP_XerolySkinner 2.0.0
C++版本的驱动库
载入中...
搜索中...
未找到
bsp_ModBus.h
浏览该文件的文档.
1/*----------------------------------------------------------------------------------------------------
2 #
3 # Copyright (c) 2022 Yuankang Liang(XerolySkinner)
4 #
5 # 本软件按原样提供,无任何明示或暗示
6 # 在任何情况下,作者都不承担任何损害赔偿责任
7 #
8 # 使用的许可声明:
9 # 1. 不得歪曲本软件的来源,你不能声称你编写了原始软件.
10 # 2. 免费授予以任何目的,前提是版权声明出现在所有副本中.
11 # 并且版权声明和许可声明同时出现.
12 # 3. 你有使用,复制,修改,分发,和销售本软件的许可.
13 # 4. 如果你在产品中使用,产品文档中的声明是赞赏的但不是必须的.
14 # 5. 本通知不得从任何来源删除或更改.
15 #
16 # Yuankang Liang(XerolySkinner)
17 # E-mail:zabbcccbbaz@163.com
18 # QQ:2715099320
19 # Mobile Phone:13005636215
20 #
21 # All rights reserved.
22 */
23
33#pragma once
34#include "varint.h"
35#include "usart.h"
36#include <stdarg.h>
37#ifdef __cplusplus
39//----------------------------------------------------------------------------------------------------
40// 数据码
43 Fun_R_InCoil = 0x02,
45 Fun_R_InReg = 0x04,
46
48 Fun_W_OneReg = 0x06,
49 Fun_W_Coils = 0x0F,
50 Fun_W_Regs = 0x10,
51};
53//----------------------------------------------------------------------------------------------------
54// 类目
59 public:
61 public:
62 void ReadKeepReg(u16 address,u16 mem);
63 void ReadInReg(u16 address, u16 mem);
64 void WriteOneReg(u16 address, u16 var);
65 void WriteRegs(u16 address, u16 mem, u16* var);
66 void WriteRegsVar(u16 address, u16 mem,...);
67
68 void ReadOutCoil(u16 address,u16 mem);
69 void ReadInCoil(u16 address, u16 mem);
70 void WriteOneCoil(u16 address, u16 state);
71 void WriteCoils(u16 address, u16 mem, u8* var);
72 void WriteCoilsVar(u16 address, u16 mem,...);
73 protected:
74 virtual void Transmit(u8 *dat, u16 len)=0;
75 protected:
77 };
78//----------------------------------------------------------------------------------------------------
83 public:
84 bsp_ModBus_Rx(void);
85 ~bsp_ModBus_Rx(void);
86 public:
87 void analysis(u8* dat);
88 // 共有变量
92 // 保持寄存器特有
95 // 输入寄存器特有
98 // 输出线圈特有
101 // 输入线圈特有
105#endif
Fun_ModBus
Definition: bsp_ModBus.h:41
@ Fun_W_Coils
写入多线圈
Definition: bsp_ModBus.h:49
@ Fun_W_OneReg
写入单寄存
Definition: bsp_ModBus.h:48
@ Fun_W_Regs
写入多寄存
Definition: bsp_ModBus.h:50
@ Fun_R_InCoil
读取输入线圈
Definition: bsp_ModBus.h:43
@ Fun_W_OneCoil
写入单线圈
Definition: bsp_ModBus.h:47
@ Fun_R_KeepReg
读取保持寄存
Definition: bsp_ModBus.h:44
@ Fun_R_InReg
读取输入寄存
Definition: bsp_ModBus.h:45
@ Fun_R_OutCoil
读取输出线圈
Definition: bsp_ModBus.h:42
ModBus协议分析器
Definition: bsp_ModBus.h:82
u8 ID
器件ID
Definition: bsp_ModBus.h:89
u16 * KeepRegDat
Definition: bsp_ModBus.h:93
u8 Func
功能号
Definition: bsp_ModBus.h:90
void analysis(u8 *dat)
以ModBus协议分析缓冲区内数据
Definition: bsp_ModBus.cpp:304
u8 * OutCoilDat
Definition: bsp_ModBus.h:99
bsp_ModBus_Rx(void)
Definition: bsp_ModBus.cpp:365
u16 * InRegDat
Definition: bsp_ModBus.h:96
u8 crcts
CRC测试
Definition: bsp_ModBus.h:91
~bsp_ModBus_Rx(void)
Definition: bsp_ModBus.cpp:371
ModBus发送器
Definition: bsp_ModBus.h:58
void WriteOneReg(u16 address, u16 var)
发送写一个寄存器的指令
Definition: bsp_ModBus.cpp:90
void WriteRegs(u16 address, u16 mem, u16 *var)
发送写多个寄存器的指令
Definition: bsp_ModBus.cpp:112
void WriteCoilsVar(u16 address, u16 mem,...)
发送写多个线圈的指令
Definition: bsp_ModBus.cpp:268
u8 ID
器件ID
Definition: bsp_ModBus.h:76
void WriteCoils(u16 address, u16 mem, u8 *var)
发送写多个线圈的指令
Definition: bsp_ModBus.cpp:240
void ReadInCoil(u16 address, u16 mem)
发送读输入线圈的指令
Definition: bsp_ModBus.cpp:195
void WriteOneCoil(u16 address, u16 state)
发送写入一个线圈的指令
Definition: bsp_ModBus.cpp:217
void ReadOutCoil(u16 address, u16 mem)
发送读输出线圈的指令
Definition: bsp_ModBus.cpp:175
virtual void Transmit(u8 *dat, u16 len)=0
void WriteRegsVar(u16 address, u16 mem,...)
发送写多个寄存器的指令
Definition: bsp_ModBus.cpp:142
void ReadKeepReg(u16 address, u16 mem)
发送读取保存寄存器的指令
Definition: bsp_ModBus.cpp:50
void ReadInReg(u16 address, u16 mem)
发送读取输入寄存器的指令
Definition: bsp_ModBus.cpp:70
uint8_t u8
8位无符号数类型
Definition: varint.h:40
uint16_t u16
16位无符号数类型
Definition: varint.h:41