-
Notifications
You must be signed in to change notification settings - Fork 136
2.4 具体协议层 ProtocolLinker
具体协议层是指代某种具体的通讯协议,比如Modbus Rtu,它在Modbus协议公共部分的基础之上,增加了CRC16,并使用串口进行通讯。
在接收了IProtocol的SendReceive之后,协议首先判断发送的ProtocolUnit是否挂载了SpecialProtocolUnitAttribute属性。
如果ProtocolUnit挂载了SpecialProtocolUnitAttribute,就直接把ProtocolUnit转换成IConnector的接收对象并将其发送给IConnector。
接收时执行检查命令CheckRight,如果接收的命令是正确的,就把接收的信息转换成ProtocolUnit的接收对象返回给IProtocol。
如果ProtocolUnit未挂载SpecialProtocolUnitAttribute,就把ProtocolUnit转换成IConnector的接收对象,之后反射ProtocolLinker对应的ProtocolLinkerBytesExtend,执行其中的BytesExtend,把公共协议内核扩展成完整的具体协议,之后发送给IConnector。
接收时执行检查命令CheckRight,如果接收的命令是正确的,就执行ProtocolLinkerBytesExtend里的BytesDecact,把具体协议收缩回公共协议内核,然后转换为ProtocolUnit的接收对象返回给IProtocol。
AProtocolLinker对应AProtocolLinkerBytesExtend,名称必须完全对应。
IProtocol向IProtocolLinker发送SendMessage,IProtocolLinker向IConnector发送SendMessage。
具体如何发送,采用何种方式发送由ProtocolLinker内部控制。
IProtocol向IProtocolLinker发送Connect/Disconnect,IProtocolLinker向IConnector发送Connect/Disconnect。
Modbus.Net Hangzhou Delian Science Technology Co.,Ltd. © 2023
-
2 Specification of Modbus.Net main framework
- 2.1 Modbus.Net Architecture
- 2.2 Transmission Control Layer Controller
- 2.3 Transmission Link Layer Connector
- 2.4 Concrete Protocol Layer ProtocolLinker
- 2.5 Abstract Protocol Layer Protocol
- 2.6 Protocol Presentation Layer Utility
- 2.7 Device Application Layer Machine
- 2.8 Task Application Layer MachineJob
-
3 Using Modbus.Net to implement a protocol
- 3.1 Global Tools
- 3.2 Extends Protocol and ProtocolUnit according to protocol specification
- 3.3 Extends Connector to create a link method
- 3.4 Extends Machine and Utility, creating two apis
- 3.5 Extends API methods to Machine and Utility
- 3.6 Extends Formater, Translator and Combiner, Creating Encoding,Decoding,Combining methods for address
- 3.7 Extends Controller, to control message