Upload files to ""
commit
f2dbd0b9c9
|
@ -0,0 +1,220 @@
|
||||||
|
using System;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace ITC81DB
|
||||||
|
{
|
||||||
|
#region Enum
|
||||||
|
public enum BarcodeStatus
|
||||||
|
{
|
||||||
|
None,
|
||||||
|
Normal,
|
||||||
|
NoRead,
|
||||||
|
NoMatch,
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
public class BarcodeShortCut
|
||||||
|
{
|
||||||
|
public static readonly string MinAngle = "5362";
|
||||||
|
public static readonly string MaxAngle = "5363";
|
||||||
|
public static readonly string Frequency = "5364";
|
||||||
|
public static readonly string ReadingPhaseTimeout = "78";
|
||||||
|
public static readonly string Timeout = "79";
|
||||||
|
public static readonly string ReadingConditions = "5250";
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Barcode
|
||||||
|
{
|
||||||
|
#region Field
|
||||||
|
public static byte[] EnterHostMode = { 0x1B, 0x5B, 0x43 };
|
||||||
|
public static byte[] EnterTerminalMode = { 0x1B, 0x5D, 0x42 };
|
||||||
|
public static byte[] EnterProgrammingMode = { 0x1B, 0x63, 0x4D, 0xB0, 0x30 };
|
||||||
|
public static byte[] ExitProgrammingMode = { 0x1B, 0x64, 0x4D, 0xB0, 0x30 };
|
||||||
|
public static byte[] ExitTerminalMode = { 0x1B, 0x49, 0x41, 0x20 };
|
||||||
|
public static byte[] ExitHostMode = { 0x1B, 0x5B, 0x41 };
|
||||||
|
public static byte[] AutoExitCommandMode = { 0x1B, 0x5B, 0x41 };
|
||||||
|
public static byte[] SavePermanently = { 0x45, 0x20, 0x50, 0x0D, 0x0A };
|
||||||
|
|
||||||
|
private bool m_IsCommandMode; // 현재 커맨드 모드인지 확인
|
||||||
|
private int m_SaveValue; // 설정한 값 저장 변수
|
||||||
|
private string m_SaveGettingShortCut; // 설정한 Getting ShortCut 변수
|
||||||
|
private string m_SaveSettingShortCut; // 설정한 Setting ShortCut 변수
|
||||||
|
|
||||||
|
private Queue<string> QueueBarcode;
|
||||||
|
private Collection<string> CollectionLotNo;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Constructor
|
||||||
|
public Barcode(Collection<ProductItem> items, int productCount)
|
||||||
|
{
|
||||||
|
this.DefaultSetting(productCount);
|
||||||
|
|
||||||
|
for (int i = 0; i < productCount; i++)
|
||||||
|
this.CollectionLotNo[i] = items[i].LotNo;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Property
|
||||||
|
public bool IsCommandMode
|
||||||
|
{
|
||||||
|
get { return this.m_IsCommandMode; }
|
||||||
|
set { this.m_IsCommandMode = value; }
|
||||||
|
}
|
||||||
|
public int SaveValue
|
||||||
|
{
|
||||||
|
get { return this.m_SaveValue; }
|
||||||
|
set { this.m_SaveValue = value; }
|
||||||
|
}
|
||||||
|
public string SaveGettingShortCut
|
||||||
|
{
|
||||||
|
get { return this.m_SaveGettingShortCut; }
|
||||||
|
set { this.m_SaveGettingShortCut = value; }
|
||||||
|
}
|
||||||
|
public string SaveSettingShortCut
|
||||||
|
{
|
||||||
|
get { return this.m_SaveSettingShortCut; }
|
||||||
|
set { this.m_SaveSettingShortCut = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int GetQueueCount
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return this.QueueBarcode.Count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Method
|
||||||
|
private void DefaultSetting(int barcodeCount)
|
||||||
|
{
|
||||||
|
this.IsCommandMode = false;
|
||||||
|
this.QueueBarcode = new Queue<string>();
|
||||||
|
|
||||||
|
this.CollectionLotNo = new Collection<string>();
|
||||||
|
for (int i = 0; i < barcodeCount; i++)
|
||||||
|
this.CollectionLotNo.Add("");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetLotNo(Collection<ProductItem> items, int productCount)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < productCount; i++)
|
||||||
|
this.CollectionLotNo[i] = items[i].LotNo;
|
||||||
|
}
|
||||||
|
public void SetData(string data)
|
||||||
|
{
|
||||||
|
//value = this.DecisionLength(data);
|
||||||
|
this.QueueBarcode.Enqueue(data);
|
||||||
|
}
|
||||||
|
public BarcodeStatus GetData(ref int productNo)
|
||||||
|
{
|
||||||
|
string value = "";
|
||||||
|
BarcodeStatus ret = BarcodeStatus.None;
|
||||||
|
|
||||||
|
if (this.QueueBarcode.Count > 0)
|
||||||
|
{
|
||||||
|
value = this.QueueBarcode.Peek();
|
||||||
|
if (value.Length > 14)
|
||||||
|
value = value.Substring(value.Length - 14, 14);
|
||||||
|
|
||||||
|
if (value == "NoRead")
|
||||||
|
{
|
||||||
|
productNo = 991;
|
||||||
|
return ret = BarcodeStatus.NoRead;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
for (int i = 0; i < this.CollectionLotNo.Count; i++)
|
||||||
|
{
|
||||||
|
if (this.CollectionLotNo[i] == value)
|
||||||
|
{
|
||||||
|
productNo = i + 1;
|
||||||
|
return ret = BarcodeStatus.Normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
productNo = 992;
|
||||||
|
return ret = BarcodeStatus.NoMatch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
productNo = 0;
|
||||||
|
return ret = BarcodeStatus.None;
|
||||||
|
}
|
||||||
|
public BarcodeStatus GetData(ref int productNo, int startIndex, int endIndex)
|
||||||
|
{
|
||||||
|
string value = "";
|
||||||
|
BarcodeStatus ret = BarcodeStatus.None;
|
||||||
|
|
||||||
|
if (this.QueueBarcode.Count > 0)
|
||||||
|
{
|
||||||
|
value = this.QueueBarcode.Peek();
|
||||||
|
|
||||||
|
if (value == "NoRead")
|
||||||
|
{
|
||||||
|
productNo = 991;
|
||||||
|
return ret = BarcodeStatus.NoRead;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int length = endIndex - startIndex + 1;
|
||||||
|
if(value.Length >= length)
|
||||||
|
value = value.Substring(startIndex, length);
|
||||||
|
if (value.Length > 14)
|
||||||
|
value = value.Substring(value.Length - 14, 14);
|
||||||
|
|
||||||
|
for (int i = 0; i < this.CollectionLotNo.Count; i++)
|
||||||
|
{
|
||||||
|
if (this.CollectionLotNo[i] == value)
|
||||||
|
{
|
||||||
|
productNo = i + 1;
|
||||||
|
return ret = BarcodeStatus.Normal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
productNo = 992;
|
||||||
|
return ret = BarcodeStatus.NoMatch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
productNo = 0;
|
||||||
|
return ret = BarcodeStatus.None;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 바코드 길이를 14 이하로 결정
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="barcode"></param>
|
||||||
|
/// <returns>string</returns>
|
||||||
|
private string DecisionLength(string barcode)
|
||||||
|
{
|
||||||
|
if (barcode.Length > 14)
|
||||||
|
return barcode.Substring(barcode.Length - 14, 14);
|
||||||
|
else
|
||||||
|
return barcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public string BarcodePeek()
|
||||||
|
{
|
||||||
|
string ret = "";
|
||||||
|
|
||||||
|
if (this.QueueBarcode.Count > 0)
|
||||||
|
ret = this.QueueBarcode.Peek();
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
public void BarcodeDequeue()
|
||||||
|
{
|
||||||
|
if (this.QueueBarcode.Count > 0)
|
||||||
|
this.QueueBarcode.Dequeue();
|
||||||
|
}
|
||||||
|
public void Clear()
|
||||||
|
{
|
||||||
|
this.QueueBarcode.Clear();
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,28 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 10.00
|
||||||
|
# Visual Studio 2008
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ITC81DB", "ITC81DB\ITC81DB.csproj", "{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}"
|
||||||
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ITC81DB_ImageDll", "ITC81DB_ImageDll\ITC81DB_ImageDll\ITC81DB_ImageDll.csproj", "{501CC4ED-3B74-4189-8FD5-29F990358D21}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}.Debug|Any CPU.Deploy.0 = Debug|Any CPU
|
||||||
|
{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{F3AC32D4-8DAC-4F4D-AD52-2610D6237DD5}.Release|Any CPU.Deploy.0 = Release|Any CPU
|
||||||
|
{501CC4ED-3B74-4189-8FD5-29F990358D21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{501CC4ED-3B74-4189-8FD5-29F990358D21}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{501CC4ED-3B74-4189-8FD5-29F990358D21}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{501CC4ED-3B74-4189-8FD5-29F990358D21}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
Binary file not shown.
Loading…
Reference in New Issue