8ca6e89d
Tuo Wenbo
20211021
|
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using TIS.Imaging;//引用相机名称空间
namespace OS.Spin.Common.Camera
{
public class TisCamera
{
public TIS.Imaging.VCDButtonProperty Softtrigger;//触发属性
public TIS.Imaging.VCDSwitchProperty TrigEnableSwitch;//触发使能开关
public TIS.Imaging.VCDAbsoluteValueProperty Trigger_Delay_Time;//触发延时属性值对象
public TIS.Imaging.VCDSwitchProperty TriPolarity;//触发极性属性
public TIS.Imaging.VCDAbsoluteValueProperty Trigger_Debounce_Time;//Debounce属性
private List<string> _serialNumbers = new List<string>() { "36814387", "36814387", "36814387" };
//相机初始化
public void CameraInitialize(TIS.Imaging.ICImagingControl icImagingControl1,int id)
{
//文件打开相机
try
{
icImagingControl1.LoadDeviceStateFromFile(string.Format("Camera_settings_{0}.dat", id) , true);
}
catch (Exception)
{
icImagingControl1.ShowDeviceSettingsDialog();
if (!icImagingControl1.DeviceValid)
{
MessageBox.Show("没有找到设备");
Application.Exit();
}
else
{
icImagingControl1.SaveDeviceStateToFile(string.Format("Camera_settings_{0}.dat", id));
}
}
//SN号打开相机
//OpenBySN(icImagingControl1, "51614008");
////初始化控件
//icImagingControl1.LiveCaptureContinuous = true;//设置回调模式
//icImagingControl1.LiveDisplayDefault = false;
//icImagingControl1.LiveDisplayHeight = icImagingControl1.Height;
//icImagingControl1.LiveDisplayWidth = icImagingControl1.Width;
icImagingControl1.MemoryCurrentGrabberColorformat = TIS.Imaging.ICImagingControlColorformats.ICY8;//黑白格式为:ICY8;彩色格式为:ICRGB32
}
//SN号打开相机
public void OpenBySN(TIS.Imaging.ICImagingControl icImagingControl1, string Ctemp)
{
string temp = "";
if (icImagingControl1.Devices.Length > 0)
{
foreach (Device Dev in icImagingControl1.Devices)
{
if (Dev.GetSerialNumber(out temp))
{
if (temp == Ctemp)//判断是否等于指定相机序号
{
icImagingControl1.Device = Dev.Name;
break;
}
}
}
if (!icImagingControl1.DeviceValid)
{
MessageBox.Show("没有找到相机,是否SN号有误!");
Application.Exit();
}
}
else
{
MessageBox.Show("没有找到设备,请确认相机是否连接好");
Application.Exit();
}
}
//开始取图
public void StartLiveVideo(TIS.Imaging.ICImagingControl icImagingControl1)
{
icImagingControl1.LiveStart();
}
//停止取图
public void StopLiveVideo(TIS.Imaging.ICImagingControl icImagingControl1)
{
icImagingControl1.LiveStop();
}
//相机属性
public void Camproperty(TIS.Imaging.ICImagingControl icImagingControl1)
{
icImagingControl1.ShowPropertyDialog();
}
//保存图片
public void SaveImage(TIS.Imaging.ICImagingControl icImagingControl1)
{
icImagingControl1.LiveStop();
icImagingControl1.LiveStart();
icImagingControl1.ImageActiveBuffer.SaveImage("test.bmp");
//icImagingControl1.ImageActiveBuffer.
}
//触发使能
public void TriEnable(TIS.Imaging.ICImagingControl icImagingControl1)
{
TrigEnableSwitch = (TIS.Imaging.VCDSwitchProperty)icImagingControl1.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
TIS.Imaging.VCDIDs.VCDElement_Value + ":" + TIS.Imaging.VCDIDs.VCDInterface_Switch);
}
//软触发
public void Strigger(TIS.Imaging.ICImagingControl icImagingControl1)
{
//Softtrigger = (TIS.Imaging.VCDButtonProperty)icImagingControl1.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
// TIS.Imaging.VCDIDs.VCDElement_SoftwareTrigger + ":" + TIS.Imaging.VCDIDs.VCDInterface_Button);
Softtrigger = (TIS.Imaging.VCDButtonProperty)icImagingControl1.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
TIS.Imaging.VCDIDs.VCDElement_SoftwareTrigger + ":" + TIS.Imaging.VCDIDs.VCDInterface_Button);
//var TriggerMode = icImagingControl1.VCDPropertyItems.FindItem(VCDIDs.VCDID_TriggerMode);
//Softtrigger = (VCDButtonProperty)TriggerMode.Elements.FindInterface("{FDB4003C-552C-4FAA-B87B-42E888D54147}" + ":" + VCDIDs.VCDInterface_Button);
Softtrigger.Push();//软触发
}
//触发延时
public void TrigDelay(TIS.Imaging.ICImagingControl icImagingControl1, double Dtime)
{
Trigger_Delay_Time = (TIS.Imaging.VCDAbsoluteValueProperty)icImagingControl1.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
TIS.Imaging.VCDIDs.VCDElement_TriggerDelay + ":" + TIS.Imaging.VCDIDs.VCDInterface_AbsoluteValue);
if (Dtime <= Trigger_Delay_Time.RangeMin)
{
Trigger_Delay_Time.Value = Trigger_Delay_Time.RangeMin;
}
else if (Dtime >= Trigger_Delay_Time.RangeMax)
{
Trigger_Delay_Time.Value = Trigger_Delay_Time.RangeMax;
}
else
{
Trigger_Delay_Time.Value = Dtime;
}
}
//Debounce
public void TriDebounce(TIS.Imaging.ICImagingControl icImagingControl1, double DeTime)
{
Trigger_Debounce_Time = (TIS.Imaging.VCDAbsoluteValueProperty)icImagingControl1.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
TIS.Imaging.VCDIDs.VCDElement_TriggerDebounceTime + ":" + TIS.Imaging.VCDIDs.VCDInterface_AbsoluteValue);
if (DeTime <= Trigger_Debounce_Time.RangeMin)
{
Trigger_Debounce_Time.Value = Trigger_Debounce_Time.RangeMin;
}
else if (DeTime >= Trigger_Debounce_Time.RangeMax)
{
Trigger_Debounce_Time.Value = Trigger_Debounce_Time.RangeMax;
}
else
{
Trigger_Debounce_Time.Value = DeTime;
}
}
//极化
public void TriggerPolary(TIS.Imaging.ICImagingControl icImagingControl1)
{
//极化初始化
TriPolarity = (TIS.Imaging.VCDSwitchProperty)icImagingControl1.VCDPropertyItems.FindInterface(TIS.Imaging.VCDIDs.VCDID_TriggerMode + ":" +
TIS.Imaging.VCDIDs.VCDElement_TriggerPolarity + ":" + TIS.Imaging.VCDIDs.VCDInterface_Switch);
TriPolarity.Switch = false;
}
//退出时关闭相机
public void CamClose(TIS.Imaging.ICImagingControl icImagingControl1)
{
if (icImagingControl1.DeviceValid)
{
icImagingControl1.LiveStop();
}
}
}
}
|