SCLS/SSWCS_JXDL(2019)/Symbol3204/CScan.cs

118 lines
2.8 KiB
C#
Raw Normal View History

2025-05-19 09:45:29 +08:00
using System;
using System.Collections.Generic;
using System.Text;
using SimensSerialPort;
using CommonClassLib;
using Microsoft.VisualBasic;
namespace Symbol3204
{
public class CScan
{
//private bool _ifStart = false;
CSimensSerialPort csp;
public CScan(short port,string settings)
{
try
{
csp = new CSimensSerialPort(port, settings);
}
catch (Exception ex)
{
throw ex;
}
}
public bool StartSession()
{
//START-SESSION:
//HOST发04E40400FF1416进制
//DECODER 发04D00000FF2C16进制反馈信息后扫描数据
//若未正确读取发4E52(16进制)未读反馈信息
try
{
byte[] sd = new byte[6] { 0x04, 0xE4, 0x04, 0x00, 0xFF, 0x14 };
if (csp.WriteCom(sd) == true)
{
System.Threading.Thread.Sleep(100);
return true;
}
else
return false;
}
catch (Exception ex)
{
throw ex;
}
}
public bool StopSession()
{
//STOP-SESSION
//HOST发04E50400FF1316进制
//DECODER发04D00000FF2C16进制反馈信息
try
{
byte[] sd = new byte[6] { 0x04,0xE5,0x04,0x00,0xFF,0x13};
if (csp.WriteCom(sd) == true)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw ex;
}
}
public string ScanBarCode(short len)
{
try
{
string strdata = "";
len = (short)(len + 6);
byte[] gdata = csp.ReadCom(len);
if (gdata == null)
return null;
else
strdata = Encoding.ASCII.GetString(gdata, 6, 8);
return strdata;
}
catch (Exception ex)
{
throw ex;
}
}
public string ScanBarCode()
{
try
{
string strdata = "";
strdata = csp.ReadCom();
return strdata;
}
catch (Exception ex)
{
throw ex;
}
}
public void StopScan()
{
csp.CloseCom();
}
}
}