123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344 |
- using MECF.Framework.Common.Communications;
- namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TurboPumps.PfeifferHipace
- {
- public abstract class HipaceHandler : HandlerBase
- {
- protected const string QueryDataText = "=?";
- public HipaceTurboPump PumpDevice { get; }
- protected HipaceHandler(HipaceTurboPump pump, string deviceAddress, bool isQuery, string parameter, string data)
- : base(BuildMessage(deviceAddress, isQuery, parameter, data))
- {
- PumpDevice = pump;
- }
- private static string BuildMessage(string deviceAddress, bool isQuery, string parameter, string data)
- {
- string msg = deviceAddress + (isQuery ? "00" : "10") + parameter + data.Length.ToString("D2") + data;
- return msg + CalcSum(msg).ToString("D3") + "\r";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- ResponseMessage = msg;
- handled = true;
- return true;
- }
-
- private static int CalcSum(string value)
- {
- int sum = 0;
- foreach (var item in value)
- {
- sum += (int)item;
- }
- return sum % 256;
- }
- }
- //010
- public class HipacePumpStationHandler : HipaceHandler
- {
- public HipacePumpStationHandler(HipaceTurboPump pump, string deviceAddress, bool isOn, bool isQuery)
- : base(pump, deviceAddress, isQuery, "010", isQuery ? QueryDataText : (isOn ? "111111" : "000000"))
- {
- Name = "Pump " + (isOn ? "On" : "Off");
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (result.Data == "111111")
- {
- PumpDevice.NoteOnOff(true);
- }
- else if (result.Data == "000000")
- {
- PumpDevice.NoteOnOff(false);
- }
- else
- {
- PumpDevice.SetError(result.Data + " format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
-
- //023
- public class HipaceMotorPumpHandler : HipaceHandler
- {
- public HipaceMotorPumpHandler(HipaceTurboPump pump, string deviceAddress, bool isOn)
- : base(pump, deviceAddress, false, "023", isOn ? "111111" : "000000")
- {
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (result.Data == "111111")
- {
- PumpDevice.NoteOnOff(true);
- }
- else if (result.Data == "000000")
- {
- PumpDevice.NoteOnOff(false);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- //303
- public class HipaceQueryErrorHandler : HipaceHandler
- {
- public HipaceQueryErrorHandler(HipaceTurboPump pump, string deviceAddress)
- : base(pump, deviceAddress, true, "303", QueryDataText)
- {
- Name = "Query Error";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (int.TryParse(result.Data, out int code))
- {
- PumpDevice.SetErrorCode(code);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- //398
- public class HipaceQuerySpeedHandler : HipaceHandler
- {
- public HipaceQuerySpeedHandler(HipaceTurboPump pump, string deviceAddress)
- : base(pump, deviceAddress, true, "398", QueryDataText)
- {
- Name = "Query Speed";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (int.TryParse(result.Data, out int value))
- {
- PumpDevice.SetSpeed(value);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- //346
- public class HipaceQueryTemperatureHandler : HipaceHandler
- {
- public HipaceQueryTemperatureHandler(HipaceTurboPump pump, string deviceAddress)
- : base(pump, deviceAddress, true, "346", QueryDataText)
- {
- Name = "Query Temperature";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (int.TryParse(result.Data, out int value))
- {
- PumpDevice.SetTemperature(value);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- //307
- public class HipaceAccelerateHandler : HipaceHandler
- {
- public HipaceAccelerateHandler(HipaceTurboPump pump, string deviceAddress)
- : base(pump, deviceAddress, true, "307", QueryDataText)
- {
- Name = "Query Accelerate";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (result.Data == "111111")
- {
- PumpDevice.SetIsAccelerate(true);
- }
- else if (result.Data == "000000")
- {
- PumpDevice.SetIsAccelerate(false);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- //306
- public class HipaceAtSpeedHandler : HipaceHandler
- {
- public HipaceAtSpeedHandler(HipaceTurboPump pump, string deviceAddress)
- : base(pump, deviceAddress, true, "306", QueryDataText)
- {
- Name = "Query At Speed";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (result.Data == "111111")
- {
- PumpDevice.SetAtSpeed(true);
- }
- else if (result.Data == "000000")
- {
- PumpDevice.SetAtSpeed(false);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- //305
- public class HipaceOverTempHandler : HipaceHandler
- {
- public HipaceOverTempHandler(HipaceTurboPump pump, string deviceAddress)
- : base(pump, deviceAddress, true, "305", QueryDataText)
- {
- Name = "Query over temp";
- }
- public override bool HandleMessage(MessageBase msg, out bool handled)
- {
- var result = msg as HipaceMessage;
- if (result.IsError)
- {
- PumpDevice.SetError(result.Data);
- }
- else
- {
- if (result.Data == "111111")
- {
- PumpDevice.SetOverTemp(true);
- }
- else if (result.Data == "000000")
- {
- PumpDevice.SetOverTemp(false);
- }
- else
- {
- PumpDevice.SetError(result.Data + "format error");
- }
- }
- ResponseMessage = msg;
- handled = true;
- return true;
- }
- }
- }
|