using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.ComponentModel; using FObjBase; using FLY.Thick.Blowing.IService; using FLY.Thick.Blowing.OBJ_INTERFACE; using Newtonsoft.Json; namespace FLY.Thick.Blowing.Client { public class ScanWarningServiceClient : FObjServiceClient, IScanWarningService { /// <summary> /// /// </summary> /// <param name="serviceId"></param> public ScanWarningServiceClient(UInt32 serviceId) : base(serviceId) { } /// <summary> /// /// </summary> /// <param name="serviceId"></param> /// <param name="connName"></param> public ScanWarningServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { } #region IScanWarningService /// <summary> /// 使能 /// </summary> public bool Enable { get; set; } /// <summary> /// 自动目标值 /// </summary> public bool IsAutoTarget { get; set; } /// <summary> /// 连续N个点,大于规格线(公差)才算报警 /// </summary> public int AlarmCnt_Tolerance { get; set; } #endregion public void Apply() { SCANWARNING_OBJ_INTERFACE.Pack_Params p = new SCANWARNING_OBJ_INTERFACE.Pack_Params(); p.alarmcnt_tolerance = AlarmCnt_Tolerance; p.enable = Enable; p.isAutoTarget = IsAutoTarget; string json = JsonConvert.SerializeObject(p); //获取所有数据,设置推送 CurrObjSys.SetValueEx( mConn, mServerID, ID, SCANWARNING_OBJ_INTERFACE.SET_PARAMS, Misc.Converter.StringToBytes(json) ); } public override void ConnectNotify(IFConn from) { base.ConnectNotify(from); if (from.IsConnected) { //获取所有数据,设置推送 CurrObjSys.GetValueEx( mConn, mServerID, ID, SCANWARNING_OBJ_INTERFACE.GET_PARAMS); CurrObjSys.SenseConfigEx(mConn, mServerID, ID, 0xffffffff, SENSE_CONFIG.ADD); } } public override void PushGetValue(IFConn from, uint srcid, ushort memid, byte[] infodata) { switch (memid) { case SCANWARNING_OBJ_INTERFACE.GET_PARAMS: { string json = Misc.Converter.BytesToString(infodata); SCANWARNING_OBJ_INTERFACE.Pack_Params p = JsonConvert.DeserializeObject<SCANWARNING_OBJ_INTERFACE.Pack_Params>(json); AlarmCnt_Tolerance = p.alarmcnt_tolerance; Enable = p.enable; IsAutoTarget = p.isAutoTarget; } break; } } public override void PushInfo(IFConn from, uint srcid, ushort infoid, byte[] infodata) { PushGetValue(from, srcid, infoid, infodata); } } }