|
|
|
@ -1,11 +1,13 @@
|
|
|
|
|
using Admin.Core.Common;
|
|
|
|
|
using Aucma.Core.Scanner;
|
|
|
|
|
using log4net;
|
|
|
|
|
using MvCodeReaderSDKNet;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
namespace Aucma.Core.CodeBinding.Business
|
|
|
|
@ -21,10 +23,35 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
// sn扫码器ip
|
|
|
|
|
private static string ShellScannerIp = allScanners.First(x => x.Name == "sn扫码器").Ip;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static readonly log4net.ILog log = LogManager.GetLogger(typeof(MvCodeHelper));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 全局变量定义
|
|
|
|
|
public static MvCodeReader ShellDevice = null;
|
|
|
|
|
public static MvCodeReader LinerDevice = null;
|
|
|
|
|
public static DateTime ShellLiveTime = DateTime.Now;
|
|
|
|
|
public static DateTime LinerLiveTime = DateTime.Now;
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 委托事件
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 条码绑定上位机委托事件
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 刷新扫码器状态
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="materialCodeStr"></param>
|
|
|
|
|
/// <param name="ip"></param>
|
|
|
|
|
public delegate void RefreshState(string ip, bool flag);
|
|
|
|
|
public static event RefreshState RefreshStateEvent;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// code1扫码信息刷新
|
|
|
|
|
/// </summary>
|
|
|
|
@ -59,8 +86,11 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
// Console.WriteLine("CodeNum[" + Convert.ToString(stBcrResult.nCodeNum) + "]");
|
|
|
|
|
if (stBcrResult.nCodeNum == 0)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("shell--->No Read 处理");
|
|
|
|
|
NoReadEvent?.Invoke(ShellScannerIp);
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":SN--->No Read 处理");
|
|
|
|
|
log.Info(DateTime.Now + ":SN--->No Read 处理");
|
|
|
|
|
//更新扫码器存活时间
|
|
|
|
|
ShellLiveTime = DateTime.Now;
|
|
|
|
|
}
|
|
|
|
|
for (Int32 i = 0; i < stBcrResult.nCodeNum; i++)
|
|
|
|
|
{
|
|
|
|
@ -68,15 +98,20 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
if (bIsValidUTF8)
|
|
|
|
|
{
|
|
|
|
|
string strCode = Encoding.UTF8.GetString(stBcrResult.stBcrInfoEx2[i].chCode);
|
|
|
|
|
Console.WriteLine("Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string strCode = Encoding.GetEncoding("GB2312").GetString(stBcrResult.stBcrInfoEx2[i].chCode);
|
|
|
|
|
Console.WriteLine("Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
// RefreshMaterialCodeStrEvent?.Invoke(strCode.Trim().TrimEnd('\0'), ShellScannerIp);
|
|
|
|
|
// 业务处理
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":SN扫码器==>Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
log.Info(DateTime.Now + ":SN扫码器==>Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
|
|
|
|
|
//更新扫码器存活时间
|
|
|
|
|
ShellLiveTime = DateTime.Now;
|
|
|
|
|
BindingReceiveCodeEvent?.Invoke(strCode.Trim().TrimEnd('\0'), ShellScannerIp);
|
|
|
|
|
// 业务处理
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -99,8 +134,11 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
// Console.WriteLine("CodeNum[" + Convert.ToString(stBcrResult.nCodeNum) + "]");
|
|
|
|
|
if (stBcrResult.nCodeNum == 0)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("liner--->No Read 处理");
|
|
|
|
|
NoReadEvent?.Invoke(LinerScannerIp);
|
|
|
|
|
NoReadEvent?.Invoke(ShellScannerIp);
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":mes--->No Read 处理");
|
|
|
|
|
log.Info(DateTime.Now + ":mes--->No Read 处理");
|
|
|
|
|
// 更新存活时间
|
|
|
|
|
LinerLiveTime = DateTime.Now;
|
|
|
|
|
}
|
|
|
|
|
for (Int32 i = 0; i < stBcrResult.nCodeNum; i++)
|
|
|
|
|
{
|
|
|
|
@ -108,15 +146,19 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
if (bIsValidUTF8)
|
|
|
|
|
{
|
|
|
|
|
string strCode = Encoding.UTF8.GetString(stBcrResult.stBcrInfoEx2[i].chCode);
|
|
|
|
|
Console.WriteLine("Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string strCode = Encoding.GetEncoding("GB2312").GetString(stBcrResult.stBcrInfoEx2[i].chCode);
|
|
|
|
|
Console.WriteLine("Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
// RefreshMaterialCodeStrEvent?.Invoke(strCode.Trim().TrimEnd('\0'), LinerScannerIp);
|
|
|
|
|
Console.WriteLine(DateTime.Now + ":mes扫码器==>Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
log.Info(DateTime.Now + ":mes扫码器==>Get CodeNum: " + "CodeNum[" + i.ToString() + "], CodeString[" + strCode.Trim().TrimEnd('\0') + "]");
|
|
|
|
|
|
|
|
|
|
// 更新存活时间
|
|
|
|
|
LinerLiveTime = DateTime.Now;
|
|
|
|
|
// 业务处理
|
|
|
|
|
BindingReceiveCodeEvent?.Invoke(strCode.Trim().TrimEnd('\0'), LinerScannerIp);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -133,8 +175,7 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
|
|
|
|
|
public static void Shell()
|
|
|
|
|
{
|
|
|
|
|
string a1 = LinerScannerIp;
|
|
|
|
|
string a2 = ShellScannerIp;
|
|
|
|
|
ShellLiveTime = DateTime.Now;
|
|
|
|
|
MvCodeReader.cbOutputEx2delegate ImageCallback;
|
|
|
|
|
|
|
|
|
|
MvCodeReader.MV_CODEREADER_IMAGE_OUT_INFO_EX2 stFrameInfo = new MvCodeReader.MV_CODEREADER_IMAGE_OUT_INFO_EX2();
|
|
|
|
@ -148,17 +189,28 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
nRet = MvCodeReader.MV_CODEREADER_EnumDevices_NET(ref stDevList, MvCodeReader.MV_CODEREADER_GIGE_DEVICE);
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
|
|
|
|
|
RefreshStateEvent?.Invoke("mes", false);
|
|
|
|
|
Thread.Sleep(1000 * 10);
|
|
|
|
|
Console.WriteLine("Enum device failed:{0:x8}", nRet);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine("Enum device count : " + Convert.ToString(stDevList.nDeviceNum));
|
|
|
|
|
if (0 == stDevList.nDeviceNum)
|
|
|
|
|
{
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
|
|
|
|
|
RefreshStateEvent?.Invoke("mes", false);
|
|
|
|
|
Thread.Sleep(1000 * 10);
|
|
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MvCodeReader.MV_CODEREADER_DEVICE_INFO stDevInfo; // 通用设备信息
|
|
|
|
|
Int32 nDevIndex = -1;
|
|
|
|
|
int nDevIndex = -1;
|
|
|
|
|
// ch:打印设备信息 | en:Print device info
|
|
|
|
|
for (Int32 i = 0; i < stDevList.nDeviceNum; i++)
|
|
|
|
|
{
|
|
|
|
@ -178,10 +230,18 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
{
|
|
|
|
|
nDevIndex = i;
|
|
|
|
|
Console.WriteLine("device IP :" + ipStr);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (nDevIndex < 0)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("未找到SN扫码器");
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
Thread.Sleep(1000 * 30);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (nDevIndex < 0) return;
|
|
|
|
|
stDevInfo = (MvCodeReader.MV_CODEREADER_DEVICE_INFO)Marshal.PtrToStructure(stDevList.pDeviceInfo[nDevIndex], typeof(MvCodeReader.MV_CODEREADER_DEVICE_INFO));
|
|
|
|
|
|
|
|
|
|
// ch:创建设备 | en:Create device
|
|
|
|
@ -189,24 +249,32 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Create device failed:{0:x8}", nRet);
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ch:打开设备 | en:Open device
|
|
|
|
|
nRet = device.MV_CODEREADER_OpenDevice_NET();
|
|
|
|
|
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Open device failed:{0:x8}", nRet);
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", true);
|
|
|
|
|
// ch:注册回调函数 | en:Register image callback
|
|
|
|
|
ImageCallback = new MvCodeReader.cbOutputEx2delegate(ShellImageCallbackFunc);
|
|
|
|
|
nRet = device.MV_CODEREADER_RegisterImageCallBackEx2_NET(ImageCallback, IntPtr.Zero);
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Register image callback failed!");
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -215,12 +283,32 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Start grabbing failed:{0:x8}", nRet);
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 关闭使用
|
|
|
|
|
ShellDevice = device;
|
|
|
|
|
Console.WriteLine("Press enter to exit");
|
|
|
|
|
Console.ReadLine();
|
|
|
|
|
Console.WriteLine(DateTime.Now.ToString());
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(1000 * 60);
|
|
|
|
|
DateTime dateTime = DateTime.Now;
|
|
|
|
|
TimeSpan timeSpan = dateTime.Subtract(ShellLiveTime);
|
|
|
|
|
if (timeSpan.TotalMinutes >= 10)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("SN扫码器超时");
|
|
|
|
|
//CloseShell();
|
|
|
|
|
//Shell();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// Console.ReadLine();
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
// ch:停止抓图 | en:Stop grabbing
|
|
|
|
|
nRet = device.MV_CODEREADER_StopGrabbing_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
@ -245,16 +333,17 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} while (false);
|
|
|
|
|
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
// ch:销毁设备 | en:Destroy device
|
|
|
|
|
nRet = device.MV_CODEREADER_DestroyHandle_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Destroy device failed:{0:x8}", nRet);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
Shell();
|
|
|
|
|
//if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
//{
|
|
|
|
|
// // ch:销毁设备 | en:Destroy device
|
|
|
|
|
// nRet = device.MV_CODEREADER_DestroyHandle_NET();
|
|
|
|
|
// if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
// {
|
|
|
|
|
// Console.WriteLine("Destroy device failed:{0:x8}", nRet);
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -262,7 +351,7 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
|
|
|
|
|
public static void Liner()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
LinerLiveTime = DateTime.Now;
|
|
|
|
|
MvCodeReader.cbOutputEx2delegate ImageCallback;
|
|
|
|
|
|
|
|
|
|
MvCodeReader.MV_CODEREADER_IMAGE_OUT_INFO_EX2 stFrameInfo = new MvCodeReader.MV_CODEREADER_IMAGE_OUT_INFO_EX2();
|
|
|
|
@ -276,12 +365,22 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
nRet = MvCodeReader.MV_CODEREADER_EnumDevices_NET(ref stDevList, MvCodeReader.MV_CODEREADER_GIGE_DEVICE);
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
|
|
|
|
|
RefreshStateEvent?.Invoke("mes", false);
|
|
|
|
|
Thread.Sleep(1000 * 10);
|
|
|
|
|
Console.WriteLine("Enum device failed:{0:x8}", nRet);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine("Enum device count : " + Convert.ToString(stDevList.nDeviceNum));
|
|
|
|
|
if (0 == stDevList.nDeviceNum)
|
|
|
|
|
{
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
|
|
|
|
|
RefreshStateEvent?.Invoke("mes", false);
|
|
|
|
|
Thread.Sleep(1000 * 10);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -309,7 +408,15 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (nDevIndex < 0) return;
|
|
|
|
|
if (nDevIndex < 0)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("未找到mes扫码器");
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("mes", false);
|
|
|
|
|
Thread.Sleep(1000 * 30);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
stDevInfo = (MvCodeReader.MV_CODEREADER_DEVICE_INFO)Marshal.PtrToStructure(stDevList.pDeviceInfo[nDevIndex], typeof(MvCodeReader.MV_CODEREADER_DEVICE_INFO));
|
|
|
|
|
|
|
|
|
|
// ch:创建设备 | en:Create device
|
|
|
|
@ -325,9 +432,12 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Open device failed:{0:x8}", nRet);
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("SN", false);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 刷新扫码器状态
|
|
|
|
|
RefreshStateEvent?.Invoke("mes", true);
|
|
|
|
|
|
|
|
|
|
// ch:注册回调函数 | en:Register image callback
|
|
|
|
|
ImageCallback = new MvCodeReader.cbOutputEx2delegate(LinerImageCallbackFunc);
|
|
|
|
@ -345,9 +455,26 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
Console.WriteLine("Start grabbing failed:{0:x8}", nRet);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
// 关闭使用
|
|
|
|
|
ShellDevice = device;
|
|
|
|
|
|
|
|
|
|
Console.WriteLine("Press enter to exit");
|
|
|
|
|
Console.ReadLine();
|
|
|
|
|
Console.WriteLine(DateTime.Now.ToString());
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
Thread.Sleep(1000 * 60);
|
|
|
|
|
DateTime dateTime = DateTime.Now;
|
|
|
|
|
TimeSpan timeSpan = dateTime.Subtract(LinerLiveTime);
|
|
|
|
|
if (timeSpan.TotalMinutes >= 10)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("mes扫码器超时");
|
|
|
|
|
//CloseShell();
|
|
|
|
|
//Shell();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//Console.ReadLine();
|
|
|
|
|
|
|
|
|
|
// ch:停止抓图 | en:Stop grabbing
|
|
|
|
|
nRet = device.MV_CODEREADER_StopGrabbing_NET();
|
|
|
|
@ -372,6 +499,7 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
Console.WriteLine("Destroy device failed:{0:x8}", nRet);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} while (false);
|
|
|
|
|
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
@ -383,9 +511,80 @@ namespace Aucma.Core.CodeBinding.Business
|
|
|
|
|
Console.WriteLine("Destroy device failed:{0:x8}", nRet);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Thread.Sleep(1000);
|
|
|
|
|
Liner();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 关闭内胆扫码器
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static void CloseLiner()
|
|
|
|
|
{
|
|
|
|
|
int nRet = MvCodeReader.MV_CODEREADER_OK;
|
|
|
|
|
MvCodeReader device = LinerDevice;
|
|
|
|
|
// ch:停止抓图 | en:Stop grabbing
|
|
|
|
|
nRet = device.MV_CODEREADER_StopGrabbing_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Stop grabbing failed{0:x8}", nRet);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ch:关闭设备 | en:Close device
|
|
|
|
|
nRet = device.MV_CODEREADER_CloseDevice_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Close device failed{0:x8}", nRet);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ch:销毁设备 | en:Destroy device
|
|
|
|
|
nRet = device.MV_CODEREADER_DestroyHandle_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Destroy device failed:{0:x8}", nRet);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine("关闭内胆扫码器成功");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 关闭箱壳扫码器
|
|
|
|
|
/// </summary>
|
|
|
|
|
public static void CloseShell()
|
|
|
|
|
{
|
|
|
|
|
int nRet = MvCodeReader.MV_CODEREADER_OK;
|
|
|
|
|
MvCodeReader device = ShellDevice;
|
|
|
|
|
// ch:停止抓图 | en:Stop grabbing
|
|
|
|
|
nRet = device.MV_CODEREADER_StopGrabbing_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Stop grabbing failed{0:x8}", nRet);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ch:关闭设备 | en:Close device
|
|
|
|
|
nRet = device.MV_CODEREADER_CloseDevice_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Close device failed{0:x8}", nRet);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// ch:销毁设备 | en:Destroy device
|
|
|
|
|
nRet = device.MV_CODEREADER_DestroyHandle_NET();
|
|
|
|
|
if (MvCodeReader.MV_CODEREADER_OK != nRet)
|
|
|
|
|
{
|
|
|
|
|
Console.WriteLine("Destroy device failed:{0:x8}", nRet);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine("关闭箱壳扫码器成功");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 判断字符编码
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 判断字符编码
|
|
|
|
|