Merge branch 'master' of http://www.scserverddns.top:13000/sc/SunlightAggregationTerminal
This commit is contained in:
commit
0b2d726287
5 files changed
+139
-2
No files matched your search
@@ -0,0 +1,73 @@
|
||||
using SunlightAggregationTerminal.Class;
|
||||
using SunlightAggregationTerminal.Models;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Reflection;
|
||||
using System.Text.Json;
|
||||
using TouchSocket.Core;
|
||||
|
||||
namespace SunlightAggregationTerminal;
|
||||
|
||||
public partial class InfoChemicalStatistics : ContentPage
|
||||
{
|
||||
public class ChemicalTotal
|
||||
{
|
||||
public string? ProductName { get; set; }
|
||||
public string? ProductCode { get; set; }
|
||||
public float? TotalDispenseGrams { get; set; }
|
||||
}
|
||||
|
||||
public static ObservableCollection<ChemicalTotal> ChemicalTotals { get; set; } = new();
|
||||
public InfoChemicalStatistics()
|
||||
{
|
||||
InitializeComponent();
|
||||
Dictionary<string, object> Dictionary = new Dictionary<string, object>();
|
||||
Dictionary.Add("Command", "ChemicalStatistics");
|
||||
Total_Command(Dictionary.ToJsonString());
|
||||
}
|
||||
|
||||
public async void Total_Command(string dat)
|
||||
{
|
||||
LoadingIndicator.IsVisible = true;
|
||||
ChemicalTotals.Clear();
|
||||
|
||||
DataReceived.Transmit(dat);
|
||||
|
||||
// 创建一个 15 秒的延时任务
|
||||
Task delayTask = Task.Delay(15000);
|
||||
// 创建一个监测任务,不断检查变量
|
||||
Task monitorTask = Task.Run(async () =>
|
||||
{
|
||||
while (ChemicalTotals.Count == 0)
|
||||
{
|
||||
// 每隔 100 毫秒检查一次,避免 CPU 占用过高
|
||||
await Task.Delay(100);
|
||||
}
|
||||
});
|
||||
// 使用 Task.WhenAny 等待任意一个任务完成
|
||||
await Task.WhenAny(delayTask, monitorTask);
|
||||
CardCollectionView.ItemsSource = ChemicalTotals;
|
||||
|
||||
LoadingIndicator.IsVisible = false;
|
||||
}
|
||||
public static void Total_data(string dat)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
var data = JsonSerializer.Deserialize<List<ChemicalTotal>>(dat);
|
||||
|
||||
if (data != null)
|
||||
{
|
||||
foreach (var item in data)
|
||||
{
|
||||
item.TotalDispenseGrams = item.TotalDispenseGrams / 1000;
|
||||
|
||||
ChemicalTotals.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user