简单的修改

This commit is contained in:
2025-12-02 17:27:09 +08:00
parent 4b98b61f10
commit e25d344f8a
7 changed files with 116 additions and 26 deletions

View File

@@ -62,11 +62,12 @@ namespace FATrace.OEMApp.Services
var maxRetry = ConfigHelper.GetIntOrDefault("DownloadTaskMaxRetry", 3);
db.Update<DownloadTask>()
.Set(a => a.Status, TaskStatus.Pending)
.Set(a => a.Error, null)
.Set(a => a.Error, "")
.Set(a => a.Progress, 0)
.Set(a => a.UpdateTime, DateTime.Now)
.Where(a => a.Status == TaskStatus.Failed && a.TryCount < maxRetry)
.ExecuteAffrows();
}
catch { }
_cts = new CancellationTokenSource();
@@ -125,9 +126,9 @@ namespace FATrace.OEMApp.Services
}
/// <summary>
/// 后台主循环:定期拉取最早的 Pending 任务并顺序处理
/// 后台主循环:定期拉取最早的 Pending 任务并顺序处理
/// </summary>
/// <param name="token">取消令牌</param>
/// <param name="token">取消令牌</param>
private async Task RunAsync(CancellationToken token)
{
while (!token.IsCancellationRequested)
@@ -211,8 +212,9 @@ namespace FATrace.OEMApp.Services
.ExecuteAffrowsAsync();
// 事件 -> TCS
// 订阅两个事件:进度与完成。进度事件写回数据库;完成事件用于唤醒等待
// 订阅两个事件:进度与完成。进度事件写回数据库;完成事件用于唤醒等待
var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
void OnProgress(object? s, short p)
{
try

View File

@@ -19,12 +19,17 @@ namespace FATrace.OEMApp.Services
public PLCDataService()
{
PLCLinkInitial();
StartPlcScan();
PadCodeAddress= ConfigHelper.GetStringOrDefault("PDAScanCode", "D1050");
}
/// <summary>
/// PAD地址
/// </summary>
private string PadCodeAddress { get; set; }
/// <summary>
/// 扫码事件
/// </summary>
@@ -53,11 +58,11 @@ namespace FATrace.OEMApp.Services
{
if (value)
{
PlcConnectedEventHandler.Invoke(this, "OK");
if (PlcConnectedEventHandler != null) PlcConnectedEventHandler.Invoke(this, "OK");
}
else
{
PlcConnectedEventHandler.Invoke(this, "NG");
if (PlcConnectedEventHandler != null) PlcConnectedEventHandler.Invoke(this, "NG");
}
_PlcConnected = value;
}
@@ -65,6 +70,37 @@ namespace FATrace.OEMApp.Services
}
private string _ScanCode = string.Empty;
/// <summary>
/// 扫描结果
/// </summary>
public string ScanCode
{
get { return _ScanCode; }
set
{
if (_ScanCode != value)
{
if (!string.IsNullOrEmpty(value))
{
if (ScanCodeEventHandler != null) ScanCodeEventHandler.Invoke(this, value);
}
else
{
Logger.Error($"PLC条码数据为空: 数据改变但是数据为空");
}
_ScanCode = value;
}
}
}
/// <summary>
/// 扫描结果
/// </summary>
private OperateResult<string> OperateResultPDAScanCode { get; set; }
// 扫描控制
private CancellationTokenSource? _plcScanCts;
private Task? _plcScanTask;
@@ -175,6 +211,12 @@ namespace FATrace.OEMApp.Services
PLCLinkInitial();
}
//内包扫码
OperateResultPDAScanCode = KeyencePlcMcNet!.ReadString(PadCodeAddress, 40);
if (OperateResultPDAScanCode.IsSuccess)
{
ScanCode = RevData(OperateResultPDAScanCode.Content).Replace("\r", "").Replace("\n", "").Trim();
}
}
catch (OperationCanceledException)
{