1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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);
}
}
}