SCLS/SSWCS_JXDL(2019)/ControlSystem/CScanBarcode.cs
2025-05-19 09:45:29 +08:00

62 lines
2.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using DBFactory;
using ICommLayer;
using CommLayerFactory;
namespace ControlSystem
{
/// <summary>
/// 码垛位的条形码扫描、组盘、码垛结束的申请管理任务;
/// 输送机上的扫描器条形码申请管理任务。
/// </summary>
public class CScanBarcode
{
DBOperator dbo = new DBOperator();
DBOperator dboM = new DBOperator("ManConnString", "ManDBFactory");
public void BarCodeApply()
{
IGetDeviceState gds;
int[] bc;
string sql = "SELECT F_DeviceIndex, F_BarCodeUse, F_BindingDevice, F_BarCode FROM T_Base_ScanBarcode order by F_DeviceIndex asc";
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
for (int i = 0; i < dv.Count; i++)
{//扫描到的条形码的用途1申请任务2条码比对
switch (dv[i]["F_BarCodeUse"].ToString())
{
case "1":
#region 1
//扫到的条码(全部非零)与记录的条形码不相等就认为是新条码
gds = CommModeCreate.CreateGetDeviceState(Convert.ToInt32(dv[i]["F_DeviceIndex"]));
bc= gds.GetDeviceState(Convert.ToInt32(dv[i]["F_DeviceIndex"]), 64777);
int bcz=0;
string barcode = string.Empty;
for (int j = 2; j < 12; j++)
{
bcz = bcz + bc[j];
barcode = barcode + bc[j].ToString();
}
if (bcz == 0)
{
continue;
}
DataView dvbc = dbo.ExceSQL("SELECT F_TxtParam FROM T_Monitor_Task WHERE (F_TxtParam = '"+barcode +"')").Tables[0].DefaultView;
if (dvbc.Count > 0)
{
continue;
}
//向管理申请任务
#endregion
break;
default:
break;
}
}
}
}
}