mbtoolcli 0.3.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,473 @@
1
+ Metadata-Version: 2.4
2
+ Name: mbtoolcli
3
+ Version: 0.3.1
4
+ Summary: A comprehensive Modbus Master/Slave testing tool supporting TCP, RTU, and ASCII protocols
5
+ Author: Modbus Tool Contributors
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/yourusername/modbus-tool
8
+ Project-URL: Documentation, https://github.com/yourusername/modbus-tool#readme
9
+ Project-URL: Repository, https://github.com/yourusername/modbus-tool
10
+ Project-URL: Issues, https://github.com/yourusername/modbus-tool/issues
11
+ Keywords: modbus,master,slave,tcp,rtu,ascii,industrial,testing
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: Intended Audience :: Information Technology
15
+ Classifier: Intended Audience :: Science/Research
16
+ Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: Operating System :: OS Independent
18
+ Classifier: Programming Language :: Python :: 3
19
+ Classifier: Programming Language :: Python :: 3.8
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
25
+ Classifier: Topic :: System :: Hardware :: Hardware Drivers
26
+ Requires-Python: >=3.8
27
+ Description-Content-Type: text/markdown
28
+ License-File: LICENSE
29
+ Requires-Dist: pymodbus<4.0.0,>=3.0.0
30
+ Provides-Extra: dev
31
+ Requires-Dist: pytest>=7.0.0; extra == "dev"
32
+ Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
33
+ Requires-Dist: pyinstaller>=5.0.0; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # Modbus Tool 操作手册
37
+
38
+ ## 概述
39
+
40
+ Modbus Tool 是一款综合性的 **Modbus 主站/从站调试工具**,支持 **TCP**、**RTU** 和 **ASCII** 三种协议。它将 **modpoll**(主站)和 **diagslave**(从站)的功能合二为一,提供命令行式的工业通信调试体验。
41
+
42
+ ### 主要功能
43
+
44
+ - **主站模式**:读写线圈、离散输入、保持寄存器和输入寄存器
45
+ - **从站模式**:模拟 Modbus 从站设备,支持动态仿真
46
+ - **扫描模式**:自动发现网络中活动的从站设备
47
+ - **实时轮询**:周期性读取寄存器值,支持阈值告警和 CSV 导出
48
+ - **多种数据类型**:int16、uint16、int32、uint32、float32、hex
49
+ - **灵活的字节序**:同时支持大端序、小端序、字交换等工业变体
50
+ - **原始帧调试**:输出 Modbus 协议层的原始收发帧
51
+ - **彩色终端输出**:关键字高亮,减少视觉疲劳
52
+
53
+ ---
54
+
55
+ ## 安装
56
+
57
+ ### 从源码安装
58
+
59
+ ```bash
60
+ git clone https://github.com/yourusername/modbus-tool.git
61
+ cd modbus-tool
62
+ pip install -e .
63
+ ```
64
+
65
+ ### 构建单文件可执行文件
66
+
67
+ ```bash
68
+ pip install pyinstaller
69
+ pyinstaller --onefile --name mbtool src/modbus_slave_sim/cli.py
70
+ ```
71
+
72
+ 编译后在 `dist/` 目录下生成 `mbtool`(或 `mbtool.exe`)。
73
+
74
+ ---
75
+
76
+ ## 命令参考
77
+
78
+ ### 模式选择(三选一,必填)
79
+
80
+ | 选项 | 说明 |
81
+ |------|------|
82
+ | `--master` | 主站模式:读写 Modbus 从站设备 |
83
+ | `--slave` | 从站模式:模拟一个 Modbus 从站设备 |
84
+ | `--scan` | 扫描模式:探测网络中活动的从站 ID(1-247) |
85
+
86
+ ### 连接选项
87
+
88
+ | 选项 | 说明 | 默认值 |
89
+ |------|------|--------|
90
+ | `-m`, `--mode` | 协议:`tcp`、`rtu`、`ascii` | `tcp` |
91
+ | `-H`, `--host` | TCP 目标主机地址 | `127.0.0.1` |
92
+ | `-p`, `--port` | TCP 端口或串口路径(如 COM3、/dev/ttyUSB0) | `502` |
93
+ | `-a`, `--address` | 从站 ID(单个如 `1`,或多 ID `1,2,3`) | `1` |
94
+ | `--timeout` | 通信超时(秒) | `3.0` |
95
+
96
+ ### 串口选项(RTU/ASCII 模式)
97
+
98
+ | 选项 | 说明 | 默认值 |
99
+ |------|------|--------|
100
+ | `-b`, `--baudrate` | 波特率 | `9600` |
101
+ | `--parity` | 校验位:`N`=无, `E`=偶, `O`=奇 | `N` |
102
+ | `--stopbits` | 停止位:`1` 或 `2` | `1` |
103
+ | `--bytesize` | 数据位:`7` 或 `8` | `8` |
104
+ | `--inter-char-delay` | 字符间延迟(秒,RTU 调优用) | 无 |
105
+
106
+ ### 主站读选项
107
+
108
+ | 选项 | 说明 | 默认值 |
109
+ |------|------|--------|
110
+ | `-r`, `--register` | 起始寄存器/线圈地址 | `0` |
111
+ | `-c`, `--count` | 读取数量 | `1` |
112
+ | `-t`, `--type` | 数据类型:`int16`, `uint16`, `int32`, `uint32`, `float`, `hex` | `int16` |
113
+ | `-f`, `--function` | 功能码:`1`(线圈), `2`(离散输入), `3`(保持寄存器), `4`(输入寄存器) | `3` |
114
+ | `--hex` | 同时显示十六进制值 | 关闭 |
115
+ | `--byte-order` | 32 位类型字节序:`ABCD`, `CDBA`, `BADC`, `DCBA` | `ABCD` |
116
+
117
+ ### 主站写选项
118
+
119
+ | 选项 | 说明 |
120
+ |------|------|
121
+ | `--write` | 写寄存器模式(配合 `-v`) |
122
+ | `--write-coil` | 写线圈模式(配合 `--coil-value`) |
123
+ | `--coil-value {0,1}` | 线圈值:0=OFF, 1=ON |
124
+ | `-v`, `--value` | 写入值,多个值用逗号分隔实现批量写入 |
125
+
126
+ ### 轮询选项
127
+
128
+ | 选项 | 说明 | 默认值 |
129
+ |------|------|--------|
130
+ | `--poll` | 连续轮询模式 | 关闭 |
131
+ | `-i`, `--interval` | 轮询间隔(秒) | `1.0` |
132
+ | `-n`, `--iterations` | 轮询次数(`0`=无限) | `0` |
133
+ | `--alarm` | 告警表达式:`ADDR>VALUE`,如 `"0>100"` | 无 |
134
+ | `-o`, `--output` | 导出结果到 CSV 文件 | 无 |
135
+
136
+ ### 从站选项
137
+
138
+ | 选项 | 说明 | 默认值 |
139
+ |------|------|--------|
140
+ | `--register-map` | 从 JSON 文件加载自定义寄存器映射 | 无 |
141
+ | `--simulate` | 启用动态值仿真 | 关闭 |
142
+ | `--sim-interval` | 仿真更新间隔(秒) | `0.1` |
143
+ | `--status` | 显示寄存器状态后退出(仅从站模式) | 关闭 |
144
+
145
+ ### 调试选项
146
+
147
+ | 选项 | 说明 |
148
+ |------|------|
149
+ | `-V`, `--verbose` | 启用详细日志输出 |
150
+ | `--debug-frame` | 启用 Modbus 原始帧日志 |
151
+
152
+ ---
153
+
154
+ ## 功能码说明
155
+
156
+ | 功能码 | 名称 | 读写属性 | 数据类型 |
157
+ |--------|------|----------|----------|
158
+ | 1 | Read Coils(读线圈) | 读写 | 布尔值(0/1) |
159
+ | 2 | Read Discrete Inputs(读离散输入) | 只读 | 布尔值(0/1) |
160
+ | 3 | Read Holding Registers(读保持寄存器) | 读写 | 16 位值 |
161
+ | 4 | Read Input Registers(读输入寄存器) | 只读 | 16 位值 |
162
+
163
+ ## 数据类型
164
+
165
+ | 类型 | 说明 | 占用寄存器 | 值范围 |
166
+ |------|------|-----------|--------|
167
+ | `int16` | 有符号 16 位整数 | 1 | -32768 ~ 32767 |
168
+ | `uint16` | 无符号 16 位整数 | 1 | 0 ~ 65535 |
169
+ | `int32` | 有符号 32 位整数 | 2 | -2³¹ ~ 2³¹-1 |
170
+ | `uint32` | 无符号 32 位整数 | 2 | 0 ~ 2³²-1 |
171
+ | `float` | 32 位 IEEE 754 浮点数 | 2 | ±3.4×10⁻³⁸ ~ ±3.4×10³⁸ |
172
+ | `hex` | 十六进制显示 | 1+ | 0x0000 ~ 0xFFFF |
173
+
174
+ ### modpoll 兼容的类型字符串
175
+
176
+ ```bash
177
+ # 3:int 或 3:int32 表示 32 位有符号整数
178
+ # 4:float 表示 32 位浮点数
179
+ # uint16 或 u16 表示无符号 16 位整数
180
+ mbtool --master -a 1 -r 0 -c 4 -t "3:int32"
181
+ ```
182
+
183
+ ## 字节序说明
184
+
185
+ 对于 32 位数据类型(int32、uint32、float),数据在 2 个寄存器中排列方式可能有多种。默认为标准大端序(ABCD),可通过 `--byte-order` 切换:
186
+
187
+ | 字节序 | 说明 | 寄存器排列 | 常见设备 |
188
+ |--------|------|-----------|----------|
189
+ | `ABCD` | 标准大端序 | Reg[0]=高16位, Reg[1]=低16位 | 标准 Modbus |
190
+ | `CDBA` | 字交换 | Reg[0]=低16位, Reg[1]=高16位 | Siemens S7 |
191
+ | `BADC` | 字节交换 | 每个寄存器的字节互换 | 部分国产设备 |
192
+ | `DCBA` | 小端序 | 完全小端排列 | 部分 PLC |
193
+
194
+ ---
195
+
196
+ ## 操作示例
197
+
198
+ ### 主站模式
199
+
200
+ #### 基本读取
201
+
202
+ ```bash
203
+ # 读取 10 个保持寄存器(FC03)
204
+ mbtool --master -a 1 -r 0 -c 10
205
+
206
+ # 读线圈(FC01)
207
+ mbtool --master -f 1 -a 1 -r 0 -c 8
208
+
209
+ # 读离散输入(FC02)
210
+ mbtool --master -f 2 -a 1 -r 0 -c 8
211
+
212
+ # 读输入寄存器(FC04)
213
+ mbtool --master -f 4 -a 1 -r 0 -c 5 -t float
214
+
215
+ # 以十六进制格式读取并显示
216
+ mbtool --master -a 1 -r 0 -c 10 -t hex --hex
217
+ ```
218
+
219
+ #### 写入
220
+
221
+ ```bash
222
+ # 写单个寄存器
223
+ mbtool --master --write -a 1 -r 0 -v 100
224
+
225
+ # 写浮点数到 2 个寄存器
226
+ mbtool --master --write -t float -a 1 -r 0 -v 3.14
227
+
228
+ # 批量写入:从地址 0 开始写入 3 个值
229
+ mbtool --master --write -a 1 -r 0 -v "100,200,300"
230
+
231
+ # 写线圈(FC05)
232
+ mbtool --master --write-coil -a 1 -r 0 --coil-value 1
233
+
234
+ # 指定字节序写入 32 位值
235
+ mbtool --master --write -t float -a 1 -r 0 -v 123.456 --byte-order CDBA
236
+ ```
237
+
238
+ #### 连续轮询
239
+
240
+ ```bash
241
+ # 每 2 秒轮询一次,无限循环
242
+ mbtool --master --poll -a 1 -r 0 -c 5 -i 2
243
+
244
+ # 轮询 10 次后停止
245
+ mbtool --master --poll -a 1 -r 0 -c 10 -i 1 -n 10
246
+
247
+ # 带阈值告警:寄存器[0] > 1000 时红色高亮
248
+ mbtool --master --poll -a 1 -r 0 -c 5 -t int16 -i 1 --alarm "0>1000"
249
+
250
+ # 轮询结果导出到 CSV 文件
251
+ mbtool --master --poll -a 1 -r 0 -c 5 -i 1 -o data.csv
252
+
253
+ # 轮询 + 告警 + CSV 导出 + 十六进制显示
254
+ mbtool --master --poll -a 1 -r 0 -c 10 -i 2 --hex --output log.csv --alarm "0>500"
255
+ ```
256
+
257
+ #### 字节序示例
258
+
259
+ ```bash
260
+ # 以 CDBA(字交换)读浮点数
261
+ mbtool --master -a 1 -r 0 -c 4 -t float --byte-order CDBA
262
+
263
+ # 以小端序读 32 位整数
264
+ mbtool --master -a 1 -r 0 -c 4 -t int32 --byte-order DCBA
265
+ ```
266
+
267
+ #### 原始帧调试
268
+
269
+ ```bash
270
+ mbtool --master -a 1 -r 0 -c 10 --debug-frame
271
+ ```
272
+
273
+ 输出中会包含 Modbus 协议层的收发原始数据,用于排查通信问题。
274
+
275
+ ### 扫描模式
276
+
277
+ 扫描从站 ID 1~247,发现网络中活动的设备:
278
+
279
+ ```bash
280
+ # TCP 扫描
281
+ mbtool --scan -H 192.168.1.100 -p 502
282
+
283
+ # RTU 串口扫描
284
+ mbtool --scan -m rtu -p COM3 -b 9600
285
+ ```
286
+
287
+ ### 从站模式
288
+
289
+ #### TCP 从站
290
+
291
+ ```bash
292
+ # 默认端口 502 启动 TCP 从站
293
+ mbtool --slave
294
+
295
+ # 指定端口和从站 ID
296
+ mbtool --slave -p 5020 -a 1
297
+
298
+ # 启用动态仿真
299
+ mbtool --slave --simulate
300
+ ```
301
+
302
+ #### RTU/ASCII 从站
303
+
304
+ ```bash
305
+ # RTU 从站
306
+ mbtool --slave -m rtu -p COM3 -b 19200 --parity E
307
+
308
+ # ASCII 从站
309
+ mbtool --slave -m ascii -p COM3 -b 9600
310
+ ```
311
+
312
+ #### 自定义寄存器映射
313
+
314
+ 从 JSON 文件加载自定义寄存器定义:
315
+
316
+ ```bash
317
+ mbtool --slave --register-map my_device.json
318
+ ```
319
+
320
+ JSON 文件格式:
321
+
322
+ ```json
323
+ {
324
+ "coils": [
325
+ {"address": 0, "value": false, "description": "电机启动"},
326
+ {"address": 1, "value": true, "description": "电机运行"}
327
+ ],
328
+ "holding_registers": [
329
+ {"address": 0, "value": 100, "description": "温度设定值"},
330
+ {"address": 1, "value": 200, "description": "压力上限"}
331
+ ],
332
+ "input_registers": [
333
+ {"address": 0, "value": 25, "description": "当前温度"},
334
+ {"address": 1, "value": 180, "description": "当前压力"},
335
+ {"address": 2, "value": 80, "description": "液位百分比"},
336
+ {"address": 3, "value": 1500, "description": "转速"},
337
+ {"address": 4, "value": 0, "description": "报警代码"}
338
+ ],
339
+ "discrete_inputs": [
340
+ {"address": 0, "value": false, "description": "门开状态"},
341
+ {"address": 1, "value": true, "description": "急停未按下"}
342
+ ]
343
+ }
344
+ ```
345
+
346
+ #### 查看寄存器状态
347
+
348
+ ```bash
349
+ # 查看默认寄存器状态
350
+ mbtool --slave --status
351
+
352
+ # 查看自定义寄存器映射状态
353
+ mbtool --slave --register-map my_device.json --status
354
+ ```
355
+
356
+ ---
357
+
358
+ ## 彩色输出说明
359
+
360
+ 终端输出使用不同颜色标识不同类型的信息,减少视觉疲劳:
361
+
362
+ | 颜色 | 用途 |
363
+ |------|------|
364
+ | **青色粗体** | 标题、参数值、边框 |
365
+ | **绿色粗体** | 成功信息(已连接、写入成功、ON) |
366
+ | **红色粗体** | 错误信息、告警、OFF 状态 |
367
+ | **黄色** | 操作描述文字 |
368
+ | **品红色** | 寄存器地址索引 `[N]` |
369
+ | **白色粗体** | 标签文字(Protocol、Address 等) |
370
+ | **暗灰色** | 次要信息、描述文字 |
371
+
372
+ ---
373
+
374
+ ## CSV 导出格式
375
+
376
+ 使用 `--output` 或 `-o` 参数导出的 CSV 文件格式:
377
+
378
+ **读操作导出**:两列
379
+ ```
380
+ address,value
381
+ 0,100
382
+ 1,200
383
+ 2,300
384
+ ```
385
+
386
+ **轮询导出**:三列(每轮询周期追加行)
387
+ ```
388
+ iteration,address,value
389
+ 1,0,100
390
+ 1,1,200
391
+ 2,0,105
392
+ 2,1,205
393
+ ```
394
+
395
+ ---
396
+
397
+ ## 故障排除
398
+
399
+ ### 端口 502 被占用
400
+
401
+ 在 Linux 上 1024 以下端口需要 root 权限:
402
+
403
+ ```bash
404
+ sudo mbtool --slave -p 502
405
+ ```
406
+
407
+ 或使用更高端口:
408
+
409
+ ```bash
410
+ mbtool --slave -p 5020
411
+ ```
412
+
413
+ ### 串口权限(Linux)
414
+
415
+ ```bash
416
+ sudo usermod -a -G dialout $USER
417
+ # 重新登录后生效
418
+ ```
419
+
420
+ ### 连接被拒绝
421
+
422
+ 确保从站服务器已启动,端口正确,并检查防火墙设置。
423
+
424
+ ### 读取到错误值
425
+
426
+ 如果多寄存器类型(int32、float)读取到的值异常,可能是字节序不匹配。尝试不同的 `--byte-order` 选项:
427
+
428
+ ```bash
429
+ # 尝试不同的字节序
430
+ mbtool --master -a 1 -r 0 -c 2 -t float --byte-order ABCD
431
+ mbtool --master -a 1 -r 0 -c 2 -t float --byte-order CDBA
432
+ mbtool --master -a 1 -r 0 -c 2 -t float --byte-order BADC
433
+ mbtool --master -a 1 -r 0 -c 2 -t float --byte-order DCBA
434
+ ```
435
+
436
+ ---
437
+
438
+ ## 项目结构
439
+
440
+ ```
441
+ modbus-tool/
442
+ ├── pyproject.toml # 项目配置
443
+ ├── README.md # 本文件
444
+ ├── src/
445
+ │ └── modbus_slave_sim/
446
+ │ ├── __init__.py # 包初始化
447
+ │ ├── cli.py # 命令行界面
448
+ │ ├── colors.py # ANSI 颜色工具
449
+ │ ├── datatypes.py # 数据类型与字节序转换
450
+ │ ├── master.py # Modbus 主站客户端
451
+ │ ├── registers.py # 寄存器数据结构
452
+ │ ├── simulation.py # 仿真引擎
453
+ │ ├── tcp_server.py # Modbus TCP 从站服务器
454
+ │ └── rtu_server.py # Modbus 串口从站服务器(RTU/ASCII)
455
+ └── tests/
456
+ └── ...
457
+ ```
458
+
459
+ ---
460
+
461
+ ## 开发
462
+
463
+ ```bash
464
+ # 安装开发依赖
465
+ pip install -e ".[dev]"
466
+
467
+ # 运行测试
468
+ pytest
469
+ ```
470
+
471
+ ## 许可证
472
+
473
+ MIT License
@@ -0,0 +1,16 @@
1
+ mbtoolcli-0.3.1.dist-info/licenses/LICENSE,sha256=ohMh_st7a5VH5UwbdhB8V4G5AkG-2hTkCXh2ihKzxI4,1081
2
+ modbus_slave_sim/__init__.py,sha256=XZUO4kVYeEbnCY1GvNm5JlnThGfpGpINwfnHokp_kCg,1020
3
+ modbus_slave_sim/cli.py,sha256=heeG9lQX4Cvvxh7_IHokeeXWHq2Nw5CqtrVyd0k_aLo,34281
4
+ modbus_slave_sim/colors.py,sha256=qa7XL8yT22pQBEZVXNARe2nd9MbgRiAFAokQsYlJXrI,1594
5
+ modbus_slave_sim/datatypes.py,sha256=TFCSnMaoTJzWaCFuhxJkAfihbSg0co7wXFczbfjGGlk,10698
6
+ modbus_slave_sim/gui_server.py,sha256=OjNNiDm4yAL3tK9V2a52DkFZvCY0LHnxiuV1XzkyPZM,42821
7
+ modbus_slave_sim/master.py,sha256=xHPV4RadKMPGd0cMmGP5rjNzwu8cdyIpkJfNdIHroAg,20941
8
+ modbus_slave_sim/registers.py,sha256=HId-7OrnM2C9CHFlD_GVwKNDt3KzS0UXT1GlOeD6WAo,10633
9
+ modbus_slave_sim/rtu_server.py,sha256=VLTV5IFBS6NOX3ZHImn9559mlqNSY3vnoZqRrIUiDw0,6080
10
+ modbus_slave_sim/simulation.py,sha256=mxbcxDd1ndGU6gj2CVLbVAeNumRgfpb3jA17EgBM9lU,10337
11
+ modbus_slave_sim/tcp_server.py,sha256=pkHKN7j_LjdJ4rfBUIi8EpIpjueA29F8vgzesOtswOE,6601
12
+ mbtoolcli-0.3.1.dist-info/METADATA,sha256=hGin0Qd6gsjLiYP1HFxPmClxGdsgMgizm2lLXBbdI6Q,13966
13
+ mbtoolcli-0.3.1.dist-info/WHEEL,sha256=K260EYznzXsJYBQGqmI8VTxEdiZYNvDZwW9cBh9-_MA,91
14
+ mbtoolcli-0.3.1.dist-info/entry_points.txt,sha256=pNGxKT5sIbLACXHPIok1HT1bg1NxsRlzXXwb8808dck,134
15
+ mbtoolcli-0.3.1.dist-info/top_level.txt,sha256=9GxM28Cbp0AHh8wjtOPHVGpt9YodUndr2J_RweUieeg,17
16
+ mbtoolcli-0.3.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (83.0.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,4 @@
1
+ [console_scripts]
2
+ mbtool = modbus_slave_sim.cli:main
3
+ modbus-slave = modbus_slave_sim.cli:main
4
+ modbus-tool = modbus_slave_sim.cli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Modbus Tool Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ modbus_slave_sim
@@ -0,0 +1,42 @@
1
+ """
2
+ Modbus Tool - A comprehensive Modbus Master/Slave testing tool.
3
+
4
+ Supports both Master (client) and Slave (server) modes for testing
5
+ and debugging Modbus communication.
6
+ """
7
+
8
+ __version__ = "0.3.1"
9
+ __author__ = "Modbus Tool Contributors"
10
+
11
+ from .registers import (
12
+ CoilRegister,
13
+ DiscreteInputRegister,
14
+ HoldingRegister,
15
+ InputRegister,
16
+ ModbusRegisterMap,
17
+ )
18
+ from .simulation import SimulationEngine, SimulationType
19
+ from .tcp_server import ModbusTCPServer
20
+ from .rtu_server import ModbusSerialServer
21
+ from .master import ModbusMaster
22
+ from .gui_server import run_gui
23
+ from .datatypes import DataType, ByteOrder, parse_data_type, parse_byte_order
24
+
25
+ __all__ = [
26
+ "__version__",
27
+ "CoilRegister",
28
+ "DiscreteInputRegister",
29
+ "HoldingRegister",
30
+ "InputRegister",
31
+ "ModbusRegisterMap",
32
+ "SimulationEngine",
33
+ "SimulationType",
34
+ "ModbusTCPServer",
35
+ "ModbusSerialServer",
36
+ "ModbusMaster",
37
+ "run_gui",
38
+ "DataType",
39
+ "ByteOrder",
40
+ "parse_data_type",
41
+ "parse_byte_order",
42
+ ]