-
Notifications
You must be signed in to change notification settings - Fork 136
3.5 Extends API methods to Machine and Utility
parallelbgls edited this page Jun 29, 2017
·
1 revision
Machine and Utility methods group are based on one base interface for each, IMachineMethod and IUtilityMethod. These two interfaces are empty but has the same extending steps. Following example only shows the way of IUtilityMethod.
IUtlityMethod is an empty interface.
public interface IUtilityMethod
{
}
Author implements a single data write interface based on Modbus protocol in Modbus.Net.Modbus.
public interface IUtilityMethodWriteSingle : IUtilityMethod
{
Task<bool> SetSingleDataAsync(string startAddress, object setContent);
}
IUtilityMethodWriteSingle must inherits from IUtilityMethod due to the fact of GetUtilityMethods' template.
Implementing this interface in ModbusUtility.
public class ModbusUtility : BaseUtility, IUtilityMethodTime, IUtilityMethodWriteSingle
{
public async Task<bool> SetSingleDataAsync(string startAddress, object setContent)
{
try
{
var inputStruct = new WriteSingleDataModbusInputStruct(SlaveAddress, startAddress, setContent,
(ModbusTranslatorBase)AddressTranslator, Endian);
var outputStruct = await
Wrapper.SendReceiveAsync<WriteSingleDataModbusOutputStruct>(Wrapper[typeof(WriteSingleDataModbusProtocal)],
inputStruct);
return outputStruct?.WriteValue.ToString() == setContent.ToString();
}
catch (Exception e)
{
Log.Error(e, $"ModbusUtility -> SetSingleDatas: {ConnectionString} error");
return false;
}
}
}
Then we finish extending "write single data" method group to ModbusUtility.
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