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
{
///
///
///
///
public ScanWarningServiceClient(UInt32 serviceId) : base(serviceId) { }
///
///
///
///
///
public ScanWarningServiceClient(UInt32 serviceId, string connName) : base(serviceId, connName) { }
#region IScanWarningService
///
/// 使能
///
public bool Enable { get; set; }
///
/// 自动目标值
///
public bool IsAutoTarget { get; set; }
///
/// 连续N个点,大于规格线(公差)才算报警
///
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(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);
}
}
}