using System; using System.Collections.Generic; using System.Linq; using System.Text; using FObjBase; using FLY.Thick.Blowing.OBJ_INTERFACE; using FLY.Thick.Blowing.IService; using Newtonsoft.Json; namespace FLY.Thick.Blowing.Server.OBJProxy { public class ScanWarning_OBJProxy : FObj { #region 延时推送 MARKNO const int MARKNO_PUSH_PARAMS = 1; #endregion IScanWarningService mScanWarning; public ScanWarning_OBJProxy(int objsys_idx, UInt32 id, IScanWarningService scanWarning):base(objsys_idx) { ID = id; mScanWarning = scanWarning; mScanWarning.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(mScanWarning_PropertyChanged); } void mScanWarning_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if ((e.PropertyName == "AlarmCnt_Tolerance") || (e.PropertyName == "Enable") || (e.PropertyName == "IsAutoTarget") ) { FObjBase.PollModule.Current.Poll_JustOnce( new PollModule.PollHandler(delegate() { byte[] buf; GetValue(null, 0, SCANWARNING_OBJ_INTERFACE.GET_PARAMS, out buf); CurrObjSys.PushObjInfoEx( this, SCANWARNING_OBJ_INTERFACE.PUSH_PARAMS, buf); }), this, MARKNO_PUSH_PARAMS); } } public override void GetValue(IFConn from, uint srcid, ushort memid, out byte[] infodata) { switch (memid) { case SCANWARNING_OBJ_INTERFACE.GET_PARAMS: { SCANWARNING_OBJ_INTERFACE.Pack_Params p = new SCANWARNING_OBJ_INTERFACE.Pack_Params() { alarmcnt_tolerance= mScanWarning.AlarmCnt_Tolerance, enable = mScanWarning.Enable, isAutoTarget = mScanWarning.IsAutoTarget }; string json = JsonConvert.SerializeObject(p); infodata = Misc.Converter.StringToBytes(json); } break; default: infodata = null; break; } } public override void SetValue(IFConn from, uint srcid, ushort memid, byte[] infodata) { switch (memid) { case SCANWARNING_OBJ_INTERFACE.SET_PARAMS: { string json = Misc.Converter.BytesToString(infodata); SCANWARNING_OBJ_INTERFACE.Pack_Params p = JsonConvert.DeserializeObject<SCANWARNING_OBJ_INTERFACE.Pack_Params>(json); mScanWarning.AlarmCnt_Tolerance = p.alarmcnt_tolerance; mScanWarning.Enable = p.enable; mScanWarning.IsAutoTarget = p.isAutoTarget; mScanWarning.Apply(); } break; } } } }