如果条形码包含二进制数据,我将如何使用 Scanner 的 DataEvent 读取数据?
当我从 ScanDataLabel 读取数据时,我在数组的某些部分中的数据字节之间得到了额外的 0,而其他部分似乎没有受到影响。我尝试将它们编码为 ASCII 和 Unicode,但无济于事。
我正在为此应用程序使用 Honeywell 1900 手持式条形码扫描仪。
以下是我尝试的代码:
static void Main(string[] args)
{
var explore = new PosExplorer();
var devices = explore.GetDevices(DeviceType.Scanner);
var device = explore.GetDevice(DeviceType.Scanner, "POSScanner");
var scan = (Scanner)explore.CreateInstance(device);
scan.Open();
scan.Claim(500);
scan.DeviceEnabled = true;
scan.DataEventEnabled = true;
scan.DecodeData = true;
scan.DataEvent += delegate (object sender, DataEventArgs e){
var data = scan.ScanDataLabel;
var type = scan.ScanDataType.ToString();
var encoder = Encoding.Unicode;
var dataString = encoder.GetString(data);
var rawData = Encoding.ASCII.GetBytes(dataString);
};
Console.ReadLine();
scan.DeviceEnabled = false;
scan.Release();
scan.Close();
}
数据应该是,例如
{220,3 ...
而是包含
{220,0,3,0 ...
并且上面尝试的代码具有以下内容,这是不正确的
{120,...