111
This commit is contained in:
parent
8d32269ee0
commit
0865af247a
@ -140,8 +140,8 @@ namespace DH.Devices.Vision
|
||||
// LogAsync(DateTime.Now, LogLevel.Information, $"{detectConfig.Name} 产品{detectResult.TempPid} RunInference BEGIN");
|
||||
mlWatch.Start();
|
||||
//20230802改成多线程推理 RunInferenceFixed
|
||||
|
||||
var result = mlSet.StationMLEngine.RunInference(req);
|
||||
// MLResult result = new MLResult();
|
||||
var result = mlSet.StationMLEngine.RunInference(req);
|
||||
// var result = mlSet.StationMLEngine.RunInferenceFixed(req);
|
||||
mlWatch.Stop();
|
||||
// LogAsync(DateTime.Now, LogLevel.Information, $"{detectConfig.Name} 产品{detectResult.TempPid} RunInference END");
|
||||
|
@ -689,11 +689,7 @@ namespace DHSoftware
|
||||
|
||||
// ProductBaseCount = _MGSCameraList.Count;
|
||||
|
||||
for (int i = 0; i < ProductBaseCount * ProductListMulti; i++)
|
||||
{
|
||||
ConcurrentDictionary<uint, ProductData> products = new ConcurrentDictionary<uint, ProductData>();
|
||||
_productLists.Add(products);
|
||||
}
|
||||
|
||||
|
||||
//流程执行时PLC
|
||||
PLC.StartProcess();
|
||||
@ -706,7 +702,7 @@ namespace DHSoftware
|
||||
|
||||
private uint PieceCount = 0;
|
||||
private List<ConcurrentDictionary<uint, ProductData>> _productLists = new List<ConcurrentDictionary<uint, ProductData>>();
|
||||
private int ProductListMulti = 2;
|
||||
private int ProductListMulti = 1;
|
||||
private int ProductBaseCount = 0;
|
||||
|
||||
private int PieceNumberToIndex(uint pn)
|
||||
@ -798,8 +794,8 @@ namespace DHSoftware
|
||||
}
|
||||
else
|
||||
{
|
||||
// Thread.Sleep(20);
|
||||
await Task.Delay(20);
|
||||
Thread.Sleep(20);
|
||||
//await Task.Delay(20);
|
||||
}
|
||||
retryTimes--;
|
||||
}
|
||||
@ -852,10 +848,7 @@ namespace DHSoftware
|
||||
}));
|
||||
//重新生成实例 销毁之前的实例
|
||||
|
||||
using (StreamWriter sw = new StreamWriter("D://123log.txt", true, Encoding.UTF8))
|
||||
{
|
||||
sw.WriteLine(productNumber + "提前推出" + camera.CameraName);
|
||||
}
|
||||
|
||||
// LogAsync(DateTime.Now, LogLevel.Warning, $"{camera.Name} 找到产品{productNumber},但是没有推理1");
|
||||
|
||||
return;
|
||||
@ -864,7 +857,8 @@ namespace DHSoftware
|
||||
double totalTime = 0.0;
|
||||
List<ResultState> resultStates = new List<ResultState>();
|
||||
List<string>? detectionDict = _cameraRelatedDetectionDict[camera.CameraName];
|
||||
|
||||
Stopwatch stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
for (int i = 0; i < detectionDict.Count; i++)
|
||||
{
|
||||
string detectionId = detectionDict[i];
|
||||
@ -879,7 +873,8 @@ namespace DHSoftware
|
||||
product.ResultCollection.Add(temp1);
|
||||
}
|
||||
}
|
||||
|
||||
stopwatch.Stop();
|
||||
|
||||
product.InferenceOne();
|
||||
|
||||
// LogAsync(DateTime.Now, LogLevel.Information, $"{camera.Name} 推理完成,产品{productNumber}");
|
||||
@ -907,14 +902,14 @@ namespace DHSoftware
|
||||
product.ProductResult = product.ResultCollection.Any(u => u.ResultState != ResultState.OK)
|
||||
? ResultState.B_NG
|
||||
: ResultState.OK;
|
||||
if (product.ProductResult == ResultState.OK)
|
||||
{
|
||||
PLC.Blowing(productNumber, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
PLC.Blowing(productNumber, 2);
|
||||
}
|
||||
//if (product.ProductResult == ResultState.OK)
|
||||
//{
|
||||
// PLC.Blowing(productNumber, 1);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// PLC.Blowing(productNumber, 2);
|
||||
//}
|
||||
product.ProductLabelCategory = product.ProductResult.GetEnumDescription();
|
||||
product.ProductLabel = product.ProductResult.GetEnumDescription();
|
||||
|
||||
|
@ -73,32 +73,48 @@ namespace DHSoftware
|
||||
public ProductData( string batchNO, uint pieceNumber, int inferenceLeft = -1) : this(pieceNumber)
|
||||
{
|
||||
InferenceLeft = inferenceLeft;
|
||||
_countdownEvent = new CountdownEvent(inferenceLeft);
|
||||
//_countdownEvent = new CountdownEvent(inferenceLeft);
|
||||
|
||||
BatchNO = batchNO;
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void InferenceOne()
|
||||
{
|
||||
//lock (_inferenceLock)
|
||||
//{
|
||||
// Interlocked.Decrement(ref InferenceLeft);
|
||||
//}
|
||||
//public void InferenceOne()
|
||||
//{
|
||||
// //lock (_inferenceLock)
|
||||
// //{
|
||||
// // Interlocked.Decrement(ref InferenceLeft);
|
||||
// //}
|
||||
|
||||
|
||||
_countdownEvent.Signal();
|
||||
// _countdownEvent.Signal();
|
||||
|
||||
//}
|
||||
|
||||
//public bool InferenceFinished()
|
||||
//{
|
||||
// //lock (_inferenceLock)
|
||||
// //{
|
||||
// // return 0 == InferenceLeft;
|
||||
// //}
|
||||
// return _countdownEvent.CurrentCount == 0; // 判断计数器是否为 0
|
||||
//}
|
||||
public void InferenceOne()
|
||||
{
|
||||
lock (_inferenceLock)
|
||||
{
|
||||
Interlocked.Decrement(ref InferenceLeft);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public bool InferenceFinished()
|
||||
{
|
||||
//lock (_inferenceLock)
|
||||
//{
|
||||
// return 0 == InferenceLeft;
|
||||
//}
|
||||
return _countdownEvent.CurrentCount == 0; // 判断计数器是否为 0
|
||||
lock (_inferenceLock)
|
||||
{
|
||||
return 0 == InferenceLeft;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user