首次提交:添加src文件夹代码
This commit is contained in:
69
Cowain.Bake.Communication/Scan/ScanCodeManage.cs
Normal file
69
Cowain.Bake.Communication/Scan/ScanCodeManage.cs
Normal file
@@ -0,0 +1,69 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Common.Core;
|
||||
using Cowain.Bake.Common.Enums;
|
||||
using Cowain.Bake.Communication.Interface;
|
||||
using Cowain.Bake.Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using Unity;
|
||||
|
||||
namespace Cowain.Bake.Communication.Scan
|
||||
{
|
||||
public class ScanCodeManage
|
||||
{
|
||||
private List<TDeviceConfig> scanCodeList;
|
||||
IUnityContainer _unityContainer;
|
||||
public ScanCodeManage(IUnityContainer unityContainer)
|
||||
{
|
||||
_unityContainer = unityContainer;
|
||||
scanCodeList = unityContainer.Resolve<DeviceConfigService>().GetConfig(EDeviceType.SCANNER);
|
||||
List<Task> listTask = new List<Task>();
|
||||
|
||||
foreach (var item in scanCodeList)
|
||||
{
|
||||
Assembly asm = Assembly.GetExecutingAssembly(); //获得当前程序的绝对路径
|
||||
Type type = asm.GetType(MyPath.SCAN + item.DriverName);
|
||||
unityContainer.RegisterSingleton(typeof(IScanCodeBase), type, item.Name);
|
||||
var scanCode = _unityContainer.Resolve<IScanCodeBase>(item.Name); //几个PLC,就实例化几个
|
||||
scanCode.Id = item.Id;
|
||||
scanCode.Name = item.Name;
|
||||
scanCode.DeviceName = item.DriverName;
|
||||
scanCode.GetJsonParam(item.Json);
|
||||
|
||||
if (item.Enable)
|
||||
{
|
||||
listTask.Add(Task.Run(() =>
|
||||
{
|
||||
scanCode.Connect();
|
||||
}));
|
||||
}
|
||||
}
|
||||
Task.WaitAll(listTask.ToArray());
|
||||
|
||||
Task.Run(async () =>
|
||||
{
|
||||
while(true)
|
||||
{
|
||||
await Task.Delay(5000);
|
||||
CheckConnect();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void CheckConnect()
|
||||
{
|
||||
var scanCodes = _unityContainer.ResolveAll<IScanCodeBase>();
|
||||
|
||||
foreach(var item in scanCodes)
|
||||
{
|
||||
bool b = item.IsConnect;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user