using EGFramework; public class RequestTrackEnabled : ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackEnabled() { this.DeviceAddress = 0x03; this.RegisterAddress = 0xB6; this.Value = 0x01; } } public class RequestTrackDisabled : ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackDisabled() { this.DeviceAddress = 0x03; this.RegisterAddress = 0xB6; this.Value = 0x02; } } public class RequestTrackSpeed: ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackSpeed(ushort speed) { this.DeviceAddress = 0x03; this.RegisterAddress = 0x56; this.Value = speed; } } public class RequestTrackStop : ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackStop() { this.DeviceAddress = 0x03; this.RegisterAddress = 0x66; this.Value = 0x00; } } public class RequestTrackMove : ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackMove() { this.DeviceAddress = 0x03; this.RegisterAddress = 0x66; this.Value = 0x01; } } public class RequestTrackBack : ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackBack() { this.DeviceAddress = 0x03; this.RegisterAddress = 0x66; this.Value = 0x02; } } public class RequestTrackBreak : ModbusRTU_WriteSingleHoldingRegister, IEGFramework { public RequestTrackBreak() { this.DeviceAddress = 0x03; this.RegisterAddress = 0x66; this.Value = 0x03; } } public class RequestTrackReadEnabled: ModbusRTU_ReadHoldingRegisters, IEGFramework { public RequestTrackReadEnabled() { this.DeviceAddress = 0x03; this.RegisterAddress = 0xB6; this.ReadCount = 0x01; } } public class ResponseTrack : ModbusRTU_Response, IEGFramework { public uint ResValue { set; get; } public override bool TrySetData(string protocolData, byte[] protocolBytes) { bool result = base.TrySetData(protocolData, protocolBytes); if (!result) { return false; } if (this.HoldingRegister != null && this.HoldingRegister.Length >= 1) { ResValue = HoldingRegister[0]; } else { return false; } return result; } }