Commit a0b46654 by zxw

打印程序集成索力得读写器

parent 58868809
......@@ -50,4 +50,4 @@ using System.Windows;
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.2.19.11281")]
[assembly: AssemblyFileVersion("1.2.19.11281")]
[assembly: AssemblyFileVersion("1.2.20.01030")]
......@@ -22,6 +22,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
......@@ -31,6 +32,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<LangVersion>latest</LangVersion>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
......@@ -75,6 +77,7 @@
<ItemGroup>
<Compile Include="InitializeModel.cs" />
<Compile Include="Log.cs" />
<Compile Include="IReaderHelper.cs" />
<Compile Include="UhfService.cs">
<SubType>Component</SubType>
</Compile>
......@@ -90,6 +93,7 @@
</ItemGroup>
<ItemGroup>
<Content Include="fix.ico" />
<Content Include="ThirdPackages\USBUHFPlatform.dll" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\JmpZbModel\JmpZbModel.csproj">
......@@ -98,4 +102,7 @@
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>xcopy $(ProjectDir)ThirdPackages\* $(TargetDir) /S /Y</PostBuildEvent>
</PropertyGroup>
</Project>
\ No newline at end of file
......@@ -6,12 +6,14 @@ using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Diagnostics;
using System.Globalization;
using System.IO.Ports;
using System.Linq;
using System.Reflection;
using System.Runtime.Remoting.Messaging;
using System.ServiceProcess;
using System.Text;
using System.Threading;
......@@ -30,7 +32,9 @@ namespace JmpUhfService
//private LinkageExtend link = new LinkageExtend();
//private List<rfidLink.Extend.RadioInformation> radios;
private Reader reader;
private IReaderHelper reader;
private JmpRfidLpReaderHelper reader1;
private USBRFIDReaderHelper reader2;
private Task taskDevice;
private CancellationTokenSource cDeviceToken;
private WebSocketServer server;
......@@ -325,10 +329,10 @@ namespace JmpUhfService
reader.InventoryStop();
//单次盘点,确认无其他标签
var tmpList = new List<TagInfo>();
var tmpList = new List<TagInfoData>();
for (int i = 0; i < 4; i++)
{
reader.InventorySingle(50).ForEach(s =>
reader.InventorySingle().ForEach(s =>
{
if (!tmpList.Any(t => t.EPC == s.EPC))
{
......@@ -351,18 +355,18 @@ namespace JmpUhfService
//}
else
{
OperData _oper = new OperData
var _oper = new OperatingData()
{
EPC = "",
DATA = "8000" + data.Epc,
Offset = data.Offset,
Length = data.Len,
Bank = BankType.EPC,
Bank = RfidBankType.EPC,
Access = "00000000"
};
var res = reader.WriteTag(_oper);
if (res == OperResult.OK)
if (res.Item1 == 0)
{
OnSendMsg(client, InitializeCmdType.Initialize, "成功" + data.Epc);
}
......@@ -394,14 +398,14 @@ namespace JmpUhfService
{
var tid = "";
//读取tid
var tag = new OperData
var tag = new OperatingData()
{
Offset = 0,
Length = 6,
Bank = BankType.TID,
Bank = RfidBankType.TID,
Access = "00000000"
};
if (reader.ReadTag(ref tag) == OperResult.OK)
if (reader.ReadTag(ref tag).Item1 == 0)
{
tid = tag.DATA;
}
......@@ -421,18 +425,18 @@ namespace JmpUhfService
reader.InventoryStop();
//不进行盘点,认为无其他标签(调用之前自行判断是否能写入)
OperData _oper = new OperData
var _oper = new OperatingData()
{
EPC = "",
DATA = "8000" + data.Epc,
Offset = data.Offset,
Length = data.Len,
Bank = BankType.EPC,
Bank = RfidBankType.EPC,
Access = "00000000"
};
var res = reader.WriteTag(_oper);
if (res == OperResult.OK)
if (res.Item1 == 0)//成功
{
OnSendMsg(client, InitializeCmdType.Initialize, "成功" + data.Epc + "|" + tid);
}
......@@ -452,10 +456,10 @@ namespace JmpUhfService
protected void ReadInventorySingle(string client)
{
var tmpList = new List<TagInfo>();
var tmpList = new List<TagInfoData>();
for (int i = 0; i < 4; i++)
{
reader.InventorySingle(50).ForEach(s =>
reader.InventorySingle().ForEach(s =>
{
if (tmpList.All(t => t.EPC != s.EPC))
{
......@@ -480,20 +484,27 @@ namespace JmpUhfService
#endregion
#region uhf inventory method
private void ConnectReader()
private void ConnectReader(int type = 0)
{
try
{
reader = new Reader("COM4");
reader.OnInventory += OnRadioInventory;
var state = reader.Open();
//钧普读写器
reader1 ??= new JmpRfidLpReaderHelper("COM4");
//索力得读写器
reader2 ??= new USBRFIDReaderHelper();
var state = type == 0 ? reader1.Open() : reader2.Open();
deviceStatus = state ? DeviceStatus.已连接 : DeviceStatus.未连接;
if (state)
{
reader = type == 0 ? reader1 : reader2;
reader.InventoryStop();
reader.SetPALevel(1);
reader.SetTxPower(0, true, 24);
reader.OnInventory += OnRadioInventory;
SendLinked(used_client);
}
}
......@@ -504,7 +515,7 @@ namespace JmpUhfService
Log.ErrorLog(ex.ToString(), MethodBase.GetCurrentMethod().Name);
}
}
private void OnRadioInventory(TagInfo args)
private void OnRadioInventory(TagInfoData args)
{
if (!epcList.Contains(args.EPC))
{
......@@ -517,7 +528,7 @@ namespace JmpUhfService
lock (syncObj)
{
epcList.Clear();
if (deviceStatus == DeviceStatus.已连接)
if (reader?.IsOpen() == true)
{
reader.InventoryStart();
}
......@@ -542,37 +553,38 @@ namespace JmpUhfService
{
try
{
if (SerialPort.GetPortNames().Any(t => t.ToLower().Contains("com4")))
if (deviceStatus == DeviceStatus.未连接)
{
if (reader == null)
//需要连接读写器
if (SerialPort.GetPortNames().Any(t => t.ToLower().Contains("com4")))
{
ConnectReader();
//钧普读写器
ConnectReader(0);
}
else if (deviceStatus == DeviceStatus.未连接)
else
{
var state = reader?.Open() ?? false;
if (state)
{
//设置功率
reader.SetPALevel(1);
reader.SetTxPower(0, true, 24);
SendLinked(used_client);
}
else
{
reader = null;
deviceStatus = DeviceStatus.未连接;
}
//尝试连接索力得读写器
ConnectReader(1);
}
if (reader == null)
{
//都连接失败,放弃
SendLinkError(used_client);
}
else { }
}
else
{
SendLinkError(used_client);
reader?.InventoryStop();
reader?.Close();
reader = null;
//已连接,检查是否掉线
if (reader?.IsOpen() != true)
{
SendLinkError(used_client);
reader?.InventoryStop();
reader?.Close();
reader = null;
}
}
if (resetEvent.WaitOne(5000))
{
break;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论