using System; using System.Collections.Generic; using System.Linq; using System.Text; using FObjBase; namespace FLY.FeedbackRenZiJia.OBJ_INTERFACE { public class HEATCELL_OBJ_INTERFACE { #region pack public class Pack_Params : IPack { public double kp; public double autoONoKp; public double thresholdHeatSigma; public bool isAutoONo; public bool isForbidUpDown; public bool isBreakUpMode; public int ctrlLine; #region IPack 成员 public byte[] ToBytes() { List<byte> buf = new List<byte>(); buf.AddRange(BitConverter.GetBytes(kp)); buf.AddRange(BitConverter.GetBytes(autoONoKp)); buf.AddRange(BitConverter.GetBytes(thresholdHeatSigma)); buf.AddRange(BitConverter.GetBytes(ctrlLine)); buf.AddRange(BitConverter.GetBytes(isAutoONo)); buf.AddRange(BitConverter.GetBytes(isForbidUpDown)); buf.AddRange(BitConverter.GetBytes(isBreakUpMode)); return buf.ToArray(); } public bool TryParse(byte[] value) { if (value.Length < (8*3+4+3)) return false; int idx = 0; kp = BitConverter.ToDouble(value, idx); idx += 8; autoONoKp = BitConverter.ToDouble(value, idx); idx += 8; thresholdHeatSigma = BitConverter.ToDouble(value, idx); idx += 8; ctrlLine = BitConverter.ToInt32(value, idx); idx += 4; isAutoONo = BitConverter.ToBoolean(value, idx); idx += 1; isForbidUpDown = BitConverter.ToBoolean(value, idx); idx += 1; isBreakUpMode = BitConverter.ToBoolean(value, idx); idx += 1; return true; } #endregion } public class Pack_Status : IPack { public bool isInAutoONo; public double maxHeatSigma; #region IPack 成员 public byte[] ToBytes() { List<byte> buf = new List<byte>(); buf.AddRange(BitConverter.GetBytes(isInAutoONo)); buf.AddRange(BitConverter.GetBytes(maxHeatSigma)); return buf.ToArray(); } public bool TryParse(byte[] value) { if (value.Length < (1 + 8)) return false; int idx = 0; isInAutoONo = BitConverter.ToBoolean(value, idx); idx += 1; maxHeatSigma = BitConverter.ToDouble(value, idx); idx += 8; return true; } #endregion } public class Pack_CallSmoothRequest : IPack { public double thresholdHeatSigma; #region IPack 成员 public byte[] ToBytes() { List<byte> buf = new List<byte>(); buf.AddRange(BitConverter.GetBytes(thresholdHeatSigma)); return buf.ToArray(); } public bool TryParse(byte[] value) { if (value.Length < (8)) return false; int idx = 0; thresholdHeatSigma = BitConverter.ToDouble(value, idx); idx += 8; return true; } #endregion } public class Pack_Frame : IPack { public int[] frame; #region IPack 成员 public byte[] ToBytes() { List<byte> buf = new List<byte>(); buf.AddRange(BitConverter.GetBytes(frame.Length)); for (int i = 0; i < frame.Length; i++) { buf.AddRange(BitConverter.GetBytes(frame[i])); } return buf.ToArray(); } public bool TryParse(byte[] value) { if (value.Length < 4) return false; int idx = 0; int len = BitConverter.ToInt32(value, idx); idx += 4; frame = new int[len]; for (int i = 0; i < len; i++) { frame[i] = BitConverter.ToInt32(value, idx); idx += 4; if (idx > value.Length) return false; } return true; } #endregion } public class Pack_ModifyHeatOffset : IPack { public int index; public int heatoffset; #region IPack 成员 public byte[] ToBytes() { List<byte> buf = new List<byte>(); buf.AddRange(BitConverter.GetBytes(index)); buf.AddRange(BitConverter.GetBytes(heatoffset)); return buf.ToArray(); } public bool TryParse(byte[] value) { if (value.Length < 8) return false; int idx = 0; index = BitConverter.ToInt32(value, idx); idx += 4; heatoffset = BitConverter.ToInt32(value, idx); idx += 4; return true; } #endregion } public class Pack_ModifyBase : IPack { public int change; #region IPack 成员 public byte[] ToBytes() { List<byte> buf = new List<byte>(); buf.AddRange(BitConverter.GetBytes(change)); return buf.ToArray(); } public bool TryParse(byte[] value) { if (value.Length < 4) return false; int idx = 0; change = BitConverter.ToInt32(value, idx); idx += 4; return true; } #endregion } #endregion #region Get /// <summary> /// Pack_Params /// </summary> public const UInt16 GET_PARAMS = 1;//参数 /// <summary> /// Pack_Status /// </summary> public const UInt16 GET_STATE = 2; /// <summary> /// Pack_Frame /// </summary> public const UInt16 GET_THICKS = 4; /// <summary> /// Pack_Frame /// </summary> public const UInt16 GET_HEATS = 5; /// <summary> /// Pack_Frame /// </summary> public const UInt16 GET_OFFSETS = 6; /// <summary> /// Pack_Frame /// </summary> public const UInt16 GET_PREHEATS = 7; #endregion #region Set /// <summary> /// Pack_Params /// </summary> public const UInt16 SET_PARAMS = 1;//参数 #endregion #region Call public const UInt16 CALL_HEATAPPLY = 1; public const UInt16 CALL_CAL = 2; /// <summary> /// Pack_ModifyHeatOffset /// </summary> public const UInt16 CALL_MODIFYHEATOFFSET = 3; /// <summary> /// Pack_BaseHeatOffset /// </summary> public const UInt16 CALL_MODIFYBASE = 4; public const UInt16 CALL_CLEARHEATOFFSETS = 5; public const UInt16 CALL_CLEARHEATS = 6; /// <summary> /// request:Pack_CallSmoothRequest /// reponse:NULL /// </summary> public const UInt16 CALL_SMOOTH = 9; #endregion #region Push /// <summary> /// Pack_Params /// </summary> public const UInt16 PUSH_PARAMS = 1;//参数 /// <summary> /// Pack_Status /// </summary> public const UInt16 PUSH_STATE = 2; /// <summary> /// Pack_Frame /// </summary> public const UInt16 PUSH_THICKS = 4; /// <summary> /// Pack_Frame /// </summary> public const UInt16 PUSH_HEATS = 5; /// <summary> /// Pack_Frame /// </summary> public const UInt16 PUSH_OFFSETS = 6; /// <summary> /// Pack_Frame /// </summary> public const UInt16 PUSH_PREHEATS = 7; #endregion } }