refactor: SimpleLite 迁移到 Simple3,插件窗体改用 FairyView ForceFloat
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,7 +17,7 @@ namespace StandardScene.CarTypes
|
|||||||
/// 描述单个 Fields 类型的字段清单(含继承链上的 public 字段)。
|
/// 描述单个 Fields 类型的字段清单(含继承链上的 public 字段)。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="fieldsType">Fields 字段袋类型</param>
|
/// <param name="fieldsType">Fields 字段袋类型</param>
|
||||||
/// <returns>供 SimpleLite API 序列化的匿名结构;fieldsType 为 null 时返回 null</returns>
|
/// <returns>供 Simple3 API 序列化的匿名结构;fieldsType 为 null 时返回 null</returns>
|
||||||
public static object? Describe(Type? fieldsType)
|
public static object? Describe(Type? fieldsType)
|
||||||
{
|
{
|
||||||
if (fieldsType == null)
|
if (fieldsType == null)
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using AMRScene1;
|
using AMRScene1;
|
||||||
using SimpleLite.Rendering;
|
using Simple3.Rendering;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.BasicProps;
|
using SimpleCore.BasicProps;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
@@ -24,7 +24,7 @@ using System.Runtime.InteropServices.ComTypes;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
|
|
||||||
namespace AMRScene1
|
namespace AMRScene1
|
||||||
{
|
{
|
||||||
@@ -481,7 +481,7 @@ namespace AMRScene1
|
|||||||
{
|
{
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
var pt = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var dstSite = (UISite)SimpleLib.GetSite(pt.site);
|
var dstSite = (UISite)SimpleLib.GetSite(pt.site);
|
||||||
|
|
||||||
var plan = new SegmentPlan() { usingCar = this };
|
var plan = new SegmentPlan() { usingCar = this };
|
||||||
@@ -572,7 +572,7 @@ namespace AMRScene1
|
|||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var pt = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
Console.WriteLine($"goto site {pt.site}");
|
Console.WriteLine($"goto site {pt.site}");
|
||||||
|
|
||||||
Site site1 = SimpleLib.GetSite(GetLastSite());
|
Site site1 = SimpleLib.GetSite(GetLastSite());
|
||||||
@@ -595,7 +595,7 @@ namespace AMRScene1
|
|||||||
public void AddEnums()
|
public void AddEnums()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (InputBox.ShowDialog("请输入小车enums\" enums:value") != SimpleLite.DialogResult.OK) return;
|
if (InputBox.ShowDialog("请输入小车enums\" enums:value") != Simple3.DialogResult.OK) return;
|
||||||
string tag = InputBox.ResultValue;
|
string tag = InputBox.ResultValue;
|
||||||
if (tag.Contains(":"))
|
if (tag.Contains(":"))
|
||||||
{
|
{
|
||||||
@@ -617,9 +617,9 @@ namespace AMRScene1
|
|||||||
async void hijiack_fun()
|
async void hijiack_fun()
|
||||||
{
|
{
|
||||||
G.pushStatus("Select starting point");
|
G.pushStatus("Select starting point");
|
||||||
var pt1 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt1 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
G.pushStatus("Select ending point");
|
G.pushStatus("Select ending point");
|
||||||
var pt2 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt2 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
if (GetLastSite() == -1)
|
if (GetLastSite() == -1)
|
||||||
{
|
{
|
||||||
G.pushStatus("Car not initialized to any site!");
|
G.pushStatus("Car not initialized to any site!");
|
||||||
@@ -652,8 +652,8 @@ namespace AMRScene1
|
|||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var pt = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var ptesc = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var ptesc = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
Console.WriteLine($"goto site {pt.site}, ptesc={ptesc.site}");
|
Console.WriteLine($"goto site {pt.site}, ptesc={ptesc.site}");
|
||||||
|
|
||||||
var planRoute = new SegmentPlan() { usingCar = this };
|
var planRoute = new SegmentPlan() { usingCar = this };
|
||||||
@@ -677,7 +677,7 @@ namespace AMRScene1
|
|||||||
[MethodMember(Name = "设置角度", Description = "指定模拟车的朝向角度")]
|
[MethodMember(Name = "设置角度", Description = "指定模拟车的朝向角度")]
|
||||||
public void SetAngle()
|
public void SetAngle()
|
||||||
{
|
{
|
||||||
if (InputBox.ShowDialog("输入角度", "模拟车设置角度", "0", InputBox.Buttons.OkCancel) == SimpleLite.DialogResult.Cancel) return;
|
if (InputBox.ShowDialog("输入角度", "模拟车设置角度", "0", InputBox.Buttons.OkCancel) == Simple3.DialogResult.Cancel) return;
|
||||||
if (!float.TryParse(InputBox.ResultValue, out var angle)) return;
|
if (!float.TryParse(InputBox.ResultValue, out var angle)) return;
|
||||||
th = angle;
|
th = angle;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using LoopViewerApp;
|
using LoopViewerApp;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
@@ -2177,10 +2177,13 @@ namespace StandardScene.Chained
|
|||||||
StopAll();
|
StopAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
[MethodMember(Name = "一键上线所有AGV", Description = "将所有已初始化的正常 AGV 标记为在线")]
|
[MethodMember(Name = "一键上线所有AGV", Description = "将所有已初始化的正常 AGV 标记为在线",
|
||||||
|
RequiresPlatformConfirm = true,
|
||||||
|
ConfirmMessage = "确认将所有已初始化的正常 AGV 一键上线?")]
|
||||||
public void OnlineAllCars()
|
public void OnlineAllCars()
|
||||||
{
|
{
|
||||||
CycleUiHelper.ConfirmThen("确认将所有已初始化的正常 AGV 一键上线?", () => Task.Run(OnlineAllCarsCore));
|
// 确认由 MethodMember.ConfirmMessage + ObjectEditorParity/SafeUI 居中弹出,此处勿再套 CycleUiHelper。
|
||||||
|
Task.Run(OnlineAllCarsCore);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnlineAllCarsCore()
|
private void OnlineAllCarsCore()
|
||||||
@@ -2200,10 +2203,13 @@ namespace StandardScene.Chained
|
|||||||
Diagnosis.Post($"[AbstractLoopMission] 一键上线所有AGV:已上线 {count} 台", "Loop-OnlineAll", true);
|
Diagnosis.Post($"[AbstractLoopMission] 一键上线所有AGV:已上线 {count} 台", "Loop-OnlineAll", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
[MethodMember(Name = "一键结束所有AGV任务", Description = "停止环线调度并清除所有 AGV 的环线任务分配")]
|
[MethodMember(Name = "一键结束所有AGV任务", Description = "停止环线调度并清除所有 AGV 的环线任务分配",
|
||||||
|
RequiresPlatformConfirm = true,
|
||||||
|
ConfirmMessage = "确认停止环线调度并结束所有 AGV 的环线任务?")]
|
||||||
public void StopAllCarTasks()
|
public void StopAllCarTasks()
|
||||||
{
|
{
|
||||||
CycleUiHelper.ConfirmThen("确认停止环线调度并结束所有 AGV 的环线任务?", () => Task.Run(StopAllCarTasksCore));
|
// 确认由 MethodMember.ConfirmMessage + ObjectEditorParity/SafeUI 居中弹出,此处勿再套 CycleUiHelper。
|
||||||
|
Task.Run(StopAllCarTasksCore);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StopAllCarTasksCore()
|
private void StopAllCarTasksCore()
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using IoTClient.Common.Helpers;
|
using IoTClient.Common.Helpers;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ using System.Drawing;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using StandardScene.Model;
|
using StandardScene.Model;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
@@ -76,7 +76,7 @@ namespace StandardScene.Chained
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("任务列表")
|
.ShowTitle("任务列表")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1500, 620) // 列宽按内容自适应(SizingFixedFit),给足初始宽度避免 10 列横向拥挤
|
.InitSize(1500, 620) // 列宽按内容自适应(SizingFixedFit),给足初始宽度避免 10 列横向拥挤
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -140,7 +140,7 @@ namespace StandardScene.Chained
|
|||||||
if (op == 0) CycleUiHelper.ConfirmThen($"是否结束任务 {taskCode}?", () => Task.Run(() => CancelDelivery(taskCode)));
|
if (op == 0) CycleUiHelper.ConfirmThen($"是否结束任务 {taskCode}?", () => Task.Run(() => CancelDelivery(taskCode)));
|
||||||
else if (op == 1) CycleUiHelper.ConfirmThen($"是否重发任务 {taskCode}?", () => Task.Run(() => ResendDelivery(taskCode)));
|
else if (op == 1) CycleUiHelper.ConfirmThen($"是否重发任务 {taskCode}?", () => Task.Run(() => ResendDelivery(taskCode)));
|
||||||
else if (op == 2) CycleUiHelper.ConfirmThen($"是否换车重发任务 {taskCode}?", () => Task.Run(() => ChangeCarResendDelivery(taskCode)));
|
else if (op == 2) CycleUiHelper.ConfirmThen($"是否换车重发任务 {taskCode}?", () => Task.Run(() => ChangeCarResendDelivery(taskCode)));
|
||||||
}, height: 18, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(18), enableSearch: true);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(_status))
|
if (!string.IsNullOrEmpty(_status))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ using IoTClient.Clients.PLC;
|
|||||||
using IoTClient.Common.Enums;
|
using IoTClient.Common.Enums;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using StandardScene.Chained;
|
using StandardScene.Chained;
|
||||||
using StandardScene.Model;
|
using StandardScene.Model;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using StandardScene.Model;
|
using StandardScene.Model;
|
||||||
@@ -68,7 +68,7 @@ namespace LoopViewerApp
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("任务列表管理器")
|
.ShowTitle("任务列表管理器")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1080, 620)
|
.InitSize(1080, 620)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -116,7 +116,7 @@ namespace LoopViewerApp
|
|||||||
|
|
||||||
if (row.ButtonGroup(new[] { "编辑" }, new[] { "编辑该任务" }) == 0)
|
if (row.ButtonGroup(new[] { "编辑" }, new[] { "编辑该任务" }) == 0)
|
||||||
OpenEditDialog(t);
|
OpenEditDialog(t);
|
||||||
}, height: 18, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(18), enableSearch: true);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(_status))
|
if (!string.IsNullOrEmpty(_status))
|
||||||
{
|
{
|
||||||
@@ -175,8 +175,8 @@ namespace LoopViewerApp
|
|||||||
int kindIdx = isAdd ? 0 : Math.Max(0, Array.IndexOf(KindNames, existing.Kind.ToString()));
|
int kindIdx = isAdd ? 0 : Math.Max(0, Array.IndexOf(KindNames, existing.Kind.ToString()));
|
||||||
int startIdx = Math.Max(0, Array.IndexOf(StartTypeNames,
|
int startIdx = Math.Max(0, Array.IndexOf(StartTypeNames,
|
||||||
(isAdd ? TaskStartType.AutoLoop : existing.StartType).ToString()));
|
(isAdd ? TaskStartType.AutoLoop : existing.StartType).ToString()));
|
||||||
string curText = (isAdd ? 0 : Clamp(existing.CurrentStationId, 0, 1000000)).ToString();
|
string curText = (isAdd ? 0 : existing.CurrentStationId).ToString();
|
||||||
string tgtText = (isAdd ? 0 : Clamp(existing.TargetStationId, 0, 1000000)).ToString();
|
string tgtText = (isAdd ? 0 : existing.TargetStationId).ToString();
|
||||||
string trafficText = (isAdd ? 0 : Clamp(existing.TrafficControl, 0, 1000)).ToString();
|
string trafficText = (isAdd ? 0 : Clamp(existing.TrafficControl, 0, 1000)).ToString();
|
||||||
string priText = (isAdd ? 1 : Clamp(existing.Priority, 0, 100)).ToString();
|
string priText = (isAdd ? 1 : Clamp(existing.Priority, 0, 100)).ToString();
|
||||||
bool via = !isAdd && existing.IsViaPoint;
|
bool via = !isAdd && existing.IsViaPoint;
|
||||||
@@ -187,7 +187,7 @@ namespace LoopViewerApp
|
|||||||
// 故采用与 DeliveryViewer 相同的普通浮动面板(非模态、不停靠):Begin/End 路径,X 关闭干净,下拉弹窗 z 序正常。
|
// 故采用与 DeliveryViewer 相同的普通浮动面板(非模态、不停靠):Begin/End 路径,X 关闭干净,下拉弹窗 z 序正常。
|
||||||
var dlg = GUI.DeclarePanel()
|
var dlg = GUI.DeclarePanel()
|
||||||
.ShowTitle(isAdd ? "新增任务" : $"编辑任务 ID: {existing.Id}")
|
.ShowTitle(isAdd ? "新增任务" : $"编辑任务 ID: {existing.Id}")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(420, 380)
|
.InitSize(420, 380)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_dialog = dlg;
|
_dialog = dlg;
|
||||||
@@ -204,9 +204,9 @@ namespace LoopViewerApp
|
|||||||
// 控件 id 由 ImHashStr(prompt) 经 Encoding.ASCII 计算:中文会被压成 '?',导致同字数纯中文标签
|
// 控件 id 由 ImHashStr(prompt) 经 Encoding.ASCII 计算:中文会被压成 '?',导致同字数纯中文标签
|
||||||
// (如“当前站点/目标站点”“任务类别/启动类型”)哈希相同而抛 Duplicated id。故各标签加唯一 ASCII 序号前缀以区分。
|
// (如“当前站点/目标站点”“任务类别/启动类型”)哈希相同而抛 Duplicated id。故各标签加唯一 ASCII 序号前缀以区分。
|
||||||
pb.DropdownBox("1. 任务类别", KindNames, ref kindIdx);
|
pb.DropdownBox("1. 任务类别", KindNames, ref kindIdx);
|
||||||
var (c, _) = pb.TextInput("2. 当前站点 (0~1000000)", curText, alwaysReturnString: true);
|
var (c, _) = pb.TextInput("2. 当前站点", curText, alwaysReturnString: true);
|
||||||
curText = c;
|
curText = c;
|
||||||
var (tg, _) = pb.TextInput("3. 目标站点 (0~1000000)", tgtText, alwaysReturnString: true);
|
var (tg, _) = pb.TextInput("3. 目标站点", tgtText, alwaysReturnString: true);
|
||||||
tgtText = tg;
|
tgtText = tg;
|
||||||
var (tf, _) = pb.TextInput("4. 流量控制 (0~1000)", trafficText, alwaysReturnString: true);
|
var (tf, _) = pb.TextInput("4. 流量控制 (0~1000)", trafficText, alwaysReturnString: true);
|
||||||
trafficText = tf;
|
trafficText = tf;
|
||||||
@@ -224,8 +224,8 @@ namespace LoopViewerApp
|
|||||||
pb.Separator();
|
pb.Separator();
|
||||||
if (pb.Button("保存", distinct: "loop-edit-save"))
|
if (pb.Button("保存", distinct: "loop-edit-save"))
|
||||||
{
|
{
|
||||||
if (!TryParseClamp(curText, 0, 1000000, out var cur)) { err = "当前站点需为 0~1000000 的整数"; return; }
|
if (!int.TryParse((curText ?? "").Trim(), out var cur)) { err = "当前站点需为整数"; return; }
|
||||||
if (!TryParseClamp(tgtText, 0, 1000000, out var tgt)) { err = "目标站点需为 0~1000000 的整数"; return; }
|
if (!int.TryParse((tgtText ?? "").Trim(), out var tgt)) { err = "目标站点需为整数"; return; }
|
||||||
if (!TryParseClamp(trafficText, 0, 1000, out var traffic)) { err = "流量控制需为 0~1000 的整数"; return; }
|
if (!TryParseClamp(trafficText, 0, 1000, out var traffic)) { err = "流量控制需为 0~1000 的整数"; return; }
|
||||||
if (!TryParseClamp(priText, 0, 100, out var pri)) { err = "优先级需为 0~100 的整数"; return; }
|
if (!TryParseClamp(priText, 0, 100, out var pri)) { err = "优先级需为 0~100 的整数"; return; }
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.RCS.Signal;
|
using Simple3.RCS.Signal;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
@@ -325,7 +325,9 @@ namespace StandardScene.Chained
|
|||||||
/// 一键初始化所有小车
|
/// 一键初始化所有小车
|
||||||
/// 将状态为"正常"或"上线"且未初始化的小车进行重置
|
/// 将状态为"正常"或"上线"且未初始化的小车进行重置
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[MethodMember(Name = "一键初始化")]
|
[MethodMember(Name = "一键初始化",
|
||||||
|
RequiresPlatformConfirm = true,
|
||||||
|
ConfirmMessage = "确认一键初始化所有未初始化的小车?将中断相关任务。")]
|
||||||
public void ResetAll()
|
public void ResetAll()
|
||||||
{
|
{
|
||||||
foreach (var car in SimpleLib.GetAllCars().OfType<Car>().Where(c => c.lstatus.Contains("正常") || c.lstatus.Contains("上线")))
|
foreach (var car in SimpleLib.GetAllCars().OfType<Car>().Where(c => c.lstatus.Contains("正常") || c.lstatus.Contains("上线")))
|
||||||
@@ -465,7 +467,7 @@ namespace StandardScene.Chained
|
|||||||
{
|
{
|
||||||
G.pushStatus("选择取货位");
|
G.pushStatus("选择取货位");
|
||||||
// 等待用户在UI中选择取货点
|
// 等待用户在UI中选择取货点
|
||||||
var pt1 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt1 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
|
|
||||||
// 创建运输任务:从小车当前位置到选择的取货点
|
// 创建运输任务:从小车当前位置到选择的取货点
|
||||||
var d = new TransportDelivery
|
var d = new TransportDelivery
|
||||||
@@ -516,7 +518,7 @@ namespace StandardScene.Chained
|
|||||||
{
|
{
|
||||||
G.pushStatus("选择取货位");
|
G.pushStatus("选择取货位");
|
||||||
// 等待用户在UI中选择放货点(注释写的是"取货位"但实际是放货点)
|
// 等待用户在UI中选择放货点(注释写的是"取货位"但实际是放货点)
|
||||||
var pt1 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt1 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var srcSite = SimpleLib.GetSite(pt1.site);
|
var srcSite = SimpleLib.GetSite(pt1.site);
|
||||||
|
|
||||||
// 创建运输任务:从小车当前位置到选择的放货点
|
// 创建运输任务:从小车当前位置到选择的放货点
|
||||||
@@ -555,12 +557,12 @@ namespace StandardScene.Chained
|
|||||||
{
|
{
|
||||||
G.pushStatus("选择取货位");
|
G.pushStatus("选择取货位");
|
||||||
// 等待用户在UI中选择取货点
|
// 等待用户在UI中选择取货点
|
||||||
var pt1 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt1 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var srcSite = SimpleLib.GetSite(pt1.site);
|
var srcSite = SimpleLib.GetSite(pt1.site);
|
||||||
|
|
||||||
G.pushStatus("选择放货位");
|
G.pushStatus("选择放货位");
|
||||||
// 等待用户在UI中选择放货点
|
// 等待用户在UI中选择放货点
|
||||||
var pt2 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt2 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var dstSite = SimpleLib.GetSite(pt2.site);
|
var dstSite = SimpleLib.GetSite(pt2.site);
|
||||||
|
|
||||||
// 创建完整的运输任务:从取货点到放货点
|
// 创建完整的运输任务:从取货点到放货点
|
||||||
@@ -592,7 +594,7 @@ namespace StandardScene.Chained
|
|||||||
{
|
{
|
||||||
G.pushStatus("选择前往的站点");
|
G.pushStatus("选择前往的站点");
|
||||||
// 等待用户在UI中选择目标站点
|
// 等待用户在UI中选择目标站点
|
||||||
var pt1 = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt1 = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var srcSite = SimpleLib.GetSite(pt1.site);
|
var srcSite = SimpleLib.GetSite(pt1.site);
|
||||||
|
|
||||||
// 创建移动任务:起点和终点相同(只移动到目标点,不执行取放货操作)
|
// 创建移动任务:起点和终点相同(只移动到目标点,不执行取放货操作)
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
namespace StandardScene.Charge
|
namespace StandardScene.Charge
|
||||||
@@ -58,7 +58,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("报警配置管理")
|
.ShowTitle("报警配置管理")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1100, 680)
|
.InitSize(1100, 680)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -124,7 +124,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
if (row.ButtonGroup(new[] { "编辑" }, new[] { "编辑该报警配置" }) == 0)
|
if (row.ButtonGroup(new[] { "编辑" }, new[] { "编辑该报警配置" }) == 0)
|
||||||
OpenEditDialog(alarm);
|
OpenEditDialog(alarm);
|
||||||
}, height: 16, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(16), enableSearch: true);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(_status))
|
if (!string.IsNullOrEmpty(_status))
|
||||||
{
|
{
|
||||||
@@ -166,7 +166,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
var dlg = GUI.DeclarePanel()
|
var dlg = GUI.DeclarePanel()
|
||||||
.ShowTitle(isAdd ? "新增报警配置" : $"编辑报警配置 [{draft.AlarmCode}]")
|
.ShowTitle(isAdd ? "新增报警配置" : $"编辑报警配置 [{draft.AlarmCode}]")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(460, 420)
|
.InitSize(460, 420)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_dialog = dlg;
|
_dialog = dlg;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
@@ -293,6 +293,7 @@ namespace StandardScene.Charge
|
|||||||
var dlg = GUI.DeclarePanel()
|
var dlg = GUI.DeclarePanel()
|
||||||
.ShowTitle("选择充电桩")
|
.ShowTitle("选择充电桩")
|
||||||
.TopMost(true)
|
.TopMost(true)
|
||||||
|
.ForceFloat()
|
||||||
.InitSize(520, 400)
|
.InitSize(520, 400)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
dlg.Define(pb =>
|
dlg.Define(pb =>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Linq;
|
|||||||
using System.Net.NetworkInformation;
|
using System.Net.NetworkInformation;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("充电桩管理系统")
|
.ShowTitle("充电桩管理系统")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1400, 760)
|
.InitSize(1400, 760)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -129,7 +129,7 @@ namespace StandardScene.Charge
|
|||||||
var op = row.ButtonGroup(new[] { "编辑", "删除" }, new[] { "编辑充电桩", "删除充电桩" });
|
var op = row.ButtonGroup(new[] { "编辑", "删除" }, new[] { "编辑充电桩", "删除充电桩" });
|
||||||
if (op == 0) OpenEditDialog(s);
|
if (op == 0) OpenEditDialog(s);
|
||||||
else if (op == 1) ConfirmDelete(s);
|
else if (op == 1) ConfirmDelete(s);
|
||||||
}, height: 16, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(16), enableSearch: true);
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(_status))
|
if (!string.IsNullOrEmpty(_status))
|
||||||
{
|
{
|
||||||
@@ -221,7 +221,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
var dlg = GUI.DeclarePanel()
|
var dlg = GUI.DeclarePanel()
|
||||||
.ShowTitle(isAdd ? "新增充电桩" : $"编辑充电桩 [{existing.StationId}]")
|
.ShowTitle(isAdd ? "新增充电桩" : $"编辑充电桩 [{existing.StationId}]")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(480, 520)
|
.InitSize(480, 520)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_editDialog = dlg;
|
_editDialog = dlg;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
namespace StandardScene.Charge
|
namespace StandardScene.Charge
|
||||||
@@ -65,7 +65,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("充电策略配置")
|
.ShowTitle("充电策略配置")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(780, 680)
|
.InitSize(780, 680)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ using System.Net.Sockets;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using StandardScene.ChargeStationType;
|
using StandardScene.ChargeStationType;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
namespace StandardScene.Charge
|
namespace StandardScene.Charge
|
||||||
@@ -77,7 +77,7 @@ namespace StandardScene.Charge
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("通讯监控")
|
.ShowTitle("通讯监控")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1400, 800)
|
.InitSize(1400, 800)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -164,7 +164,7 @@ namespace StandardScene.Charge
|
|||||||
_selectedRowIndex = i;
|
_selectedRowIndex = i;
|
||||||
_parsedText = BuildParsedText(msg);
|
_parsedText = BuildParsedText(msg);
|
||||||
}
|
}
|
||||||
}, height: 20, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(20), enableSearch: true);
|
||||||
|
|
||||||
pb.SeparatorText("报文解析");
|
pb.SeparatorText("报文解析");
|
||||||
pb.SelectableText(null, _parsedText ?? "", copyButton: true);
|
pb.SelectableText(null, _parsedText ?? "", copyButton: true);
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ using StandardScene.Utils;
|
|||||||
using CommonUsage;
|
using CommonUsage;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
@@ -388,7 +388,7 @@ namespace StandardScene.Charge
|
|||||||
// 跨程序集解析:充电桩具体类型可能位于卫星插件 dll(StandardScene.Devices.Charge),
|
// 跨程序集解析:充电桩具体类型可能位于卫星插件 dll(StandardScene.Devices.Charge),
|
||||||
// 不能再用 Type.GetType(简单名,仅当前程序集)。改用内核同款全域类型发现。
|
// 不能再用 Type.GetType(简单名,仅当前程序集)。改用内核同款全域类型发现。
|
||||||
string chargeTypeFullName = "StandardScene.ChargeStationType." + chargeTypeString;
|
string chargeTypeFullName = "StandardScene.ChargeStationType." + chargeTypeString;
|
||||||
Type type = SimpleLite.Utils.UiTypeDiscovery.AllTypes()
|
Type type = Simple3.Utils.UiTypeDiscovery.AllTypes()
|
||||||
.FirstOrDefault(t => t.FullName == chargeTypeFullName);
|
.FirstOrDefault(t => t.FullName == chargeTypeFullName);
|
||||||
|
|
||||||
if (type == null)
|
if (type == null)
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ using System.Linq;
|
|||||||
using System.Net;
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|
||||||
namespace StandardScene.ChargeStationType
|
namespace StandardScene.ChargeStationType
|
||||||
|
|||||||
@@ -7,11 +7,11 @@ using System.Runtime.InteropServices;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ using System.Net;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
namespace StandardScene.ExtendDevice.ButtonBox
|
namespace StandardScene.ExtendDevice.ButtonBox
|
||||||
@@ -63,7 +63,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("按钮盒管理")
|
.ShowTitle("按钮盒管理")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1200, 760)
|
.InitSize(1200, 760)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -95,7 +95,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
|
|||||||
LoadBoxFields(b);
|
LoadBoxFields(b);
|
||||||
ClearButtonFields();
|
ClearButtonFields();
|
||||||
}
|
}
|
||||||
}, height: 8, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(8), enableSearch: true);
|
||||||
|
|
||||||
pb.SeparatorText("按钮盒编辑");
|
pb.SeparatorText("按钮盒编辑");
|
||||||
var (ip, _) = pb.TextInput("1. IP", _boxIp, alwaysReturnString: true);
|
var (ip, _) = pb.TextInput("1. IP", _boxIp, alwaysReturnString: true);
|
||||||
@@ -130,7 +130,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
|
|||||||
_selectedBtnIdx = i;
|
_selectedBtnIdx = i;
|
||||||
LoadButtonFields(btn);
|
LoadButtonFields(btn);
|
||||||
}
|
}
|
||||||
}, height: 6, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(6), enableSearch: true);
|
||||||
|
|
||||||
pb.SeparatorText("按钮编辑");
|
pb.SeparatorText("按钮编辑");
|
||||||
var (bIdx, _) = pb.TextInput("5. 按钮编码", _btnIndex, alwaysReturnString: true);
|
var (bIdx, _) = pb.TextInput("5. 按钮编码", _btnIndex, alwaysReturnString: true);
|
||||||
@@ -173,7 +173,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var names = SimpleLite.Utils.UiTypeDiscovery.AllTypes()
|
var names = Simple3.Utils.UiTypeDiscovery.AllTypes()
|
||||||
.Where(t => t.IsClass && !t.IsAbstract
|
.Where(t => t.IsClass && !t.IsAbstract
|
||||||
&& t.Namespace == typeof(BasicButtonBox).Namespace
|
&& t.Namespace == typeof(BasicButtonBox).Namespace
|
||||||
&& t.IsSubclassOf(typeof(BasicButtonBox)))
|
&& t.IsSubclassOf(typeof(BasicButtonBox)))
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using LessokajiWeaverUtilities.MagicAttributes;
|
using LessokajiWeaverUtilities.MagicAttributes;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using StandardScene;
|
using StandardScene;
|
||||||
@@ -501,7 +501,7 @@ namespace StandardScene.ExtendDevice.ButtonBox
|
|||||||
// 获取当前命名空间下所有继承自BasicButtonBox的类
|
// 获取当前命名空间下所有继承自BasicButtonBox的类
|
||||||
// 跨程序集发现:按钮盒具体类型可能位于卫星插件 dll(StandardScene.Devices.ButtonBox),
|
// 跨程序集发现:按钮盒具体类型可能位于卫星插件 dll(StandardScene.Devices.ButtonBox),
|
||||||
// 用内核同款全域类型发现替代仅扫当前程序集的 GetExecutingAssembly。
|
// 用内核同款全域类型发现替代仅扫当前程序集的 GetExecutingAssembly。
|
||||||
var buttonBoxType = SimpleLite.Utils.UiTypeDiscovery.AllTypes()
|
var buttonBoxType = Simple3.Utils.UiTypeDiscovery.AllTypes()
|
||||||
.FirstOrDefault(t => t.IsClass
|
.FirstOrDefault(t => t.IsClass
|
||||||
&& !t.IsAbstract
|
&& !t.IsAbstract
|
||||||
&& t.Namespace == typeof(BasicButtonBox).Namespace
|
&& t.Namespace == typeof(BasicButtonBox).Namespace
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ using System.Reflection;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
namespace StandardScene.ExtendDevice.Door
|
namespace StandardScene.ExtendDevice.Door
|
||||||
@@ -61,7 +61,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("门控制器管理")
|
.ShowTitle("门控制器管理")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1100, 720)
|
.InitSize(1100, 720)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -93,7 +93,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
LoadControllerFields(c);
|
LoadControllerFields(c);
|
||||||
ClearDoorFields();
|
ClearDoorFields();
|
||||||
}
|
}
|
||||||
}, height: 8, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(8), enableSearch: true);
|
||||||
|
|
||||||
pb.SeparatorText("控制器编辑");
|
pb.SeparatorText("控制器编辑");
|
||||||
var (ip, _) = pb.TextInput("1. IP", _ctrlIp, alwaysReturnString: true);
|
var (ip, _) = pb.TextInput("1. IP", _ctrlIp, alwaysReturnString: true);
|
||||||
@@ -127,7 +127,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
_selectedDoorIdx = i;
|
_selectedDoorIdx = i;
|
||||||
LoadDoorFields(d);
|
LoadDoorFields(d);
|
||||||
}
|
}
|
||||||
}, height: 6, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(6), enableSearch: true);
|
||||||
|
|
||||||
pb.SeparatorText("门编辑");
|
pb.SeparatorText("门编辑");
|
||||||
var (dIdx, _) = pb.TextInput("5. 门编码", _doorIndex, alwaysReturnString: true);
|
var (dIdx, _) = pb.TextInput("5. 门编码", _doorIndex, alwaysReturnString: true);
|
||||||
@@ -166,7 +166,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var names = SimpleLite.Utils.UiTypeDiscovery.AllTypes()
|
var names = Simple3.Utils.UiTypeDiscovery.AllTypes()
|
||||||
.Where(t => t.IsClass && !t.IsAbstract
|
.Where(t => t.IsClass && !t.IsAbstract
|
||||||
&& t.Namespace == typeof(BasicDoorController).Namespace
|
&& t.Namespace == typeof(BasicDoorController).Namespace
|
||||||
&& t.IsSubclassOf(typeof(BasicDoorController))
|
&& t.IsSubclassOf(typeof(BasicDoorController))
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ using System.Threading.Tasks;
|
|||||||
using LessokajiWeaverUtilities.MagicAttributes;
|
using LessokajiWeaverUtilities.MagicAttributes;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
@@ -580,7 +580,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
// 这里固定从门控制器基类所在程序集查找
|
// 这里固定从门控制器基类所在程序集查找
|
||||||
// 跨程序集发现:门控制器具体类型可能位于卫星插件 dll(StandardScene.Devices.Door),
|
// 跨程序集发现:门控制器具体类型可能位于卫星插件 dll(StandardScene.Devices.Door),
|
||||||
// 用内核同款全域类型发现替代仅扫基类所在程序集。
|
// 用内核同款全域类型发现替代仅扫基类所在程序集。
|
||||||
var allControllerTypes = SimpleLite.Utils.UiTypeDiscovery.AllTypes()
|
var allControllerTypes = Simple3.Utils.UiTypeDiscovery.AllTypes()
|
||||||
.Where(t => t.IsClass
|
.Where(t => t.IsClass
|
||||||
&& !t.IsAbstract
|
&& !t.IsAbstract
|
||||||
&& t.Namespace == typeof(BasicDoorController).Namespace
|
&& t.Namespace == typeof(BasicDoorController).Namespace
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
|
|
||||||
namespace StandardScene.ExtendDevice.Door
|
namespace StandardScene.ExtendDevice.Door
|
||||||
@@ -47,7 +47,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("门控监控")
|
.ShowTitle("门控监控")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(1200, 620)
|
.InitSize(1200, 620)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -90,7 +90,7 @@ namespace StandardScene.ExtendDevice.Door
|
|||||||
LabelCell(row, door, FormatCars(door));
|
LabelCell(row, door, FormatCars(door));
|
||||||
LabelCell(row, door, door.ControlAddress.ToString());
|
LabelCell(row, door, door.ControlAddress.ToString());
|
||||||
LabelCell(row, door, door.OpenStatusAddress.ToString());
|
LabelCell(row, door, door.OpenStatusAddress.ToString());
|
||||||
}, height: 18, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(18), enableSearch: true);
|
||||||
|
|
||||||
pb.Separator();
|
pb.Separator();
|
||||||
pb.Label("手动控制");
|
pb.Label("手动控制");
|
||||||
|
|||||||
@@ -2,16 +2,16 @@ using SimpleCore.Traffic;
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
@@ -290,11 +290,11 @@ namespace StandardScene.InterLock
|
|||||||
{
|
{
|
||||||
//if (!enableSimulation) return;
|
//if (!enableSimulation) return;
|
||||||
G.pushStatus("请选择站点");
|
G.pushStatus("请选择站点");
|
||||||
var pt = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var site = SimpleLib.GetSite(pt.site);
|
var site = SimpleLib.GetSite(pt.site);
|
||||||
if (SiteFilter(site.id))
|
if (SiteFilter(site.id))
|
||||||
{
|
{
|
||||||
var vv = await Program.UI.Input("请输入true/false", title, "true");
|
var vv = await Startup.UI.Input("请输入true/false", title, "true");
|
||||||
if (vv == null || !bool.TryParse(vv, out var allow))
|
if (vv == null || !bool.TryParse(vv, out var allow))
|
||||||
{
|
{
|
||||||
CycleUiHelper.Alert("错误", "输入错误");
|
CycleUiHelper.Alert("错误", "输入错误");
|
||||||
@@ -327,7 +327,7 @@ namespace StandardScene.InterLock
|
|||||||
{
|
{
|
||||||
// if (!enableSimulation) return;
|
// if (!enableSimulation) return;
|
||||||
G.pushStatus("请选择站点");
|
G.pushStatus("请选择站点");
|
||||||
var pt = await Program.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
var pt = await Startup.UI.getPoint(new UIOps.getPointOptions() { site = true });
|
||||||
var site = SimpleLib.GetSite(pt.site);
|
var site = SimpleLib.GetSite(pt.site);
|
||||||
if (SiteFilter(site.id))
|
if (SiteFilter(site.id))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using LoopViewerApp;
|
using LoopViewerApp;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using SimpleCore.Traffic;
|
using SimpleCore.Traffic;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ using System.Collections.Generic;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CycleGUI;
|
using FairyView;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using StandardScene.InterLock;
|
using StandardScene.InterLock;
|
||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
@@ -70,7 +70,7 @@ namespace LoopViewerApp
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("交通联锁区域管理")
|
.ShowTitle("交通联锁区域管理")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(800, 680)
|
.InitSize(800, 680)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
@@ -133,7 +133,7 @@ namespace LoopViewerApp
|
|||||||
_editingAreaId = areaId;
|
_editingAreaId = areaId;
|
||||||
LoadAreaToFields(a);
|
LoadAreaToFields(a);
|
||||||
}
|
}
|
||||||
}, height: 14, enableSearch: true);
|
}, height: CycleUiHelper.TableHeightPx(14), enableSearch: true);
|
||||||
|
|
||||||
pb.Separator();
|
pb.Separator();
|
||||||
pb.Label("数据新增/编辑(点击表格行「编辑」可在此查看并修改该行数据)");
|
pb.Label("数据新增/编辑(点击表格行「编辑」可在此查看并修改该行数据)");
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ using SimpleCore.PropType;
|
|||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Dynamic;
|
using System.Dynamic;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System;
|
using System;
|
||||||
@@ -14,8 +14,8 @@ using System.Linq;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
|
|
||||||
namespace StandardScene.Model
|
namespace StandardScene.Model
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ using System.Runtime.CompilerServices;
|
|||||||
[assembly: InternalsVisibleTo("StandardScene.Devices")]
|
[assembly: InternalsVisibleTo("StandardScene.Devices")]
|
||||||
[assembly: InternalsVisibleTo("StandardScene.Magnetic")]
|
[assembly: InternalsVisibleTo("StandardScene.Magnetic")]
|
||||||
[assembly: InternalsVisibleTo("StandardScene.QrLidar")]
|
[assembly: InternalsVisibleTo("StandardScene.QrLidar")]
|
||||||
// SimpleLite 反射 API 需读取 internal 字段袋(BasicTrackFields / KivaSiteFields 等)的 public 字段定义。
|
// Simple3 反射 API 需读取 internal 字段袋(BasicTrackFields / KivaSiteFields 等)的 public 字段定义。
|
||||||
[assembly: InternalsVisibleTo("SimpleLite")]
|
[assembly: InternalsVisibleTo("Simple3")]
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ using System.Threading;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using StandardScene.Model;
|
using StandardScene.Model;
|
||||||
|
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
@@ -17,7 +17,7 @@ using SimpleCore.PropType;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite.RCS.Signal;
|
using Simple3.RCS.Signal;
|
||||||
|
|
||||||
|
|
||||||
namespace StandardScene.Scheduler
|
namespace StandardScene.Scheduler
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|||||||
@@ -2,13 +2,13 @@ using System;
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
namespace StandardScene
|
namespace StandardScene
|
||||||
{
|
{
|
||||||
// StandardScene 的 CAD 工具已迁移到 SimpleLite.CADTools.StandardSceneTools。
|
// StandardScene 的 CAD 工具已迁移到 Simple3.CADTools.StandardSceneTools。
|
||||||
// 保留此文件作为迁移记录,避免后续误以为遗漏了 StandardScene 侧工具。
|
// 保留此文件作为迁移记录,避免后续误以为遗漏了 StandardScene 侧工具。
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,24 @@
|
|||||||
using CycleGUI;
|
using FairyView;
|
||||||
|
using Simple3;
|
||||||
|
|
||||||
namespace StandardScene.Utils
|
namespace StandardScene.Utils
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// CycleGUI 通用 UI 小工具:把多个界面都会用到的轻量对话框收敛到一处,避免各处各写一套(不造重复轮子)。
|
/// CycleGUI 通用 UI 小工具:统一委托 SafeUI 居中弹窗,避免自建 Panel 缺 Docking.None 跑到左上角。
|
||||||
/// <para>注意:同一 <c>Panel.Define</c> 内所有控件的 label 文本必须唯一(含 <c>pb.Table</c> 列头),
|
|
||||||
/// 否则 ImGui 会抛 <c>Duplicated id</c>。编辑区 label 建议加 ASCII 序号前缀(如 <c>1. IP</c>),
|
|
||||||
/// 且勿与表格列头同名。</para>
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static class CycleUiHelper
|
public static class CycleUiHelper
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 非阻塞二次确认对话框:用户点「确认」后,在<b>当前(渲染)线程</b>同步执行 <paramref name="onConfirm"/>。
|
/// 非阻塞二次确认:用户点「确认」后在当前线程执行 <paramref name="onConfirm"/>。
|
||||||
/// 若 <paramref name="onConfirm"/> 含文件 IO / 锁等耗时操作,调用方应自行用 <c>Task.Run</c> 包裹,
|
/// 耗时逻辑请自行 <c>Task.Run</c>。
|
||||||
/// 避免阻塞渲染线程导致界面卡死。
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static void ConfirmThen(string message, System.Action onConfirm)
|
public static void ConfirmThen(string message, System.Action onConfirm) =>
|
||||||
|
SafeUI.ConfirmThen(message, onConfirm);
|
||||||
|
|
||||||
|
/// <summary>非阻塞文件选择对话框。</summary>
|
||||||
|
public static void PickOpenFile(string label, string filter, System.Action<string> onPicked)
|
||||||
{
|
{
|
||||||
// 不用 Modal:CycleGUI 原生「模态弹窗 + 标题栏关闭X」存在 BeginPopupModal/EndPopup 配对 bug
|
var dlg = SafeUI.ApplyCenteredFloating(GUI.DeclarePanel().ShowTitle("选择文件"), 420, 120);
|
||||||
//(X 关闭时 BeginPopupModal 返回 false 仍调用 EndPopup → ImGui 断言 "Calling End() too many times!" 崩溃)。
|
|
||||||
// 改为置顶非模态:用 Begin/End 路径,X 关闭干净,效果等同点「取消」。
|
|
||||||
var dlg = GUI.DeclarePanel()
|
|
||||||
.ShowTitle("确认")
|
|
||||||
.TopMost(true)
|
|
||||||
.InitSize(380, 150)
|
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
|
||||||
dlg.Define(pb =>
|
dlg.Define(pb =>
|
||||||
{
|
{
|
||||||
if (pb.Closing())
|
if (pb.Closing())
|
||||||
@@ -33,30 +27,6 @@ namespace StandardScene.Utils
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
pb.Label(message);
|
|
||||||
pb.Separator();
|
|
||||||
if (pb.Button("确认", distinct: "cycleui-confirm-ok"))
|
|
||||||
{
|
|
||||||
dlg.Exit();
|
|
||||||
onConfirm();
|
|
||||||
}
|
|
||||||
pb.SameLine(8);
|
|
||||||
if (pb.Button("取消", distinct: "cycleui-confirm-cancel"))
|
|
||||||
dlg.Exit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>非阻塞文件选择对话框,替代 WinForms <c>OpenFileDialog</c>。</summary>
|
|
||||||
public static void PickOpenFile(string label, string filter, System.Action<string> onPicked)
|
|
||||||
{
|
|
||||||
var dlg = GUI.DeclarePanel()
|
|
||||||
.ShowTitle("选择文件")
|
|
||||||
.TopMost(true)
|
|
||||||
.InitSize(420, 120)
|
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
|
||||||
dlg.Define(pb =>
|
|
||||||
{
|
|
||||||
if (pb.Closing()) { dlg.Exit(); return; }
|
|
||||||
if (pb.OpenFile(label, filter, out var path))
|
if (pb.OpenFile(label, filter, out var path))
|
||||||
{
|
{
|
||||||
dlg.Exit();
|
dlg.Exit();
|
||||||
@@ -68,11 +38,7 @@ namespace StandardScene.Utils
|
|||||||
/// <summary>非阻塞提示对话框。</summary>
|
/// <summary>非阻塞提示对话框。</summary>
|
||||||
public static void Alert(string title, string message)
|
public static void Alert(string title, string message)
|
||||||
{
|
{
|
||||||
var dlg = GUI.DeclarePanel()
|
var dlg = SafeUI.ApplyCenteredFloating(GUI.DeclarePanel().ShowTitle(title), 380, 150);
|
||||||
.ShowTitle(title)
|
|
||||||
.TopMost(true)
|
|
||||||
.InitSize(380, 150)
|
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
|
||||||
dlg.Define(pb =>
|
dlg.Define(pb =>
|
||||||
{
|
{
|
||||||
if (pb.Closing())
|
if (pb.Closing())
|
||||||
@@ -87,5 +53,11 @@ namespace StandardScene.Utils
|
|||||||
dlg.Exit();
|
dlg.Exit();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// FairyView <c>Table.height</c> 是 Ant Design <c>scroll.y</c> 像素;旧 CycleGUI 同参是可见行数。
|
||||||
|
/// </summary>
|
||||||
|
public static int TableHeightPx(int visibleRows) =>
|
||||||
|
visibleRows <= 0 ? 0 : visibleRows * 32;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ using SimpleCore.BasicProps;
|
|||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using SimpleCore.Traffic;
|
using SimpleCore.Traffic;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using StandardScene.Magnetic.Protocol;
|
using StandardScene.Magnetic.Protocol;
|
||||||
using StandardScene.Magnetic.Tasking;
|
using StandardScene.Magnetic.Tasking;
|
||||||
using StandardScene;
|
using StandardScene;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ using System.Linq;
|
|||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using StandardScene.CarTypes;
|
using StandardScene.CarTypes;
|
||||||
using StandardScene.Chained;
|
using StandardScene.Chained;
|
||||||
using StandardScene.Magnetic.Tasking;
|
using StandardScene.Magnetic.Tasking;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ using SimpleCore;
|
|||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using StandardScene.CarTypes;
|
using StandardScene.CarTypes;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ namespace StandardScene.Magnetic
|
|||||||
/// <para>车型:<see cref="MagCar"/>(FASS 1.0 TCP)、<see cref="Mag2Car"/>(FASS 2.0 UDP/任务状态机)。
|
/// <para>车型:<see cref="MagCar"/>(FASS 1.0 TCP)、<see cref="Mag2Car"/>(FASS 2.0 UDP/任务状态机)。
|
||||||
/// Loop 导航:继续使用 Core <c>LoopMission</c> 或本插件 <c>Mag2LoopMission</c> 分配 <c>goalSite</c>,
|
/// Loop 导航:继续使用 Core <c>LoopMission</c> 或本插件 <c>Mag2LoopMission</c> 分配 <c>goalSite</c>,
|
||||||
/// <see cref="Mag2Car"/> 拦截编译脚本后一次下发全程 <c>0xB1</c>。</para>
|
/// <see cref="Mag2Car"/> 拦截编译脚本后一次下发全程 <c>0xB1</c>。</para>
|
||||||
/// 宿主(SimpleLite)加载本 dll 后反射实例化并 OnActivate / 注册。
|
/// 宿主(Simple3)加载本 dll 后反射实例化并 OnActivate / 注册。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class MagneticSceneProfile : NavigationProfileBase
|
public sealed class MagneticSceneProfile : NavigationProfileBase
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
@@ -13,7 +13,7 @@ using System.IO;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
|
|
||||||
|
|
||||||
namespace StandardScene.Scheduler
|
namespace StandardScene.Scheduler
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using IoTClient.Clients.PLC;
|
using IoTClient.Clients.PLC;
|
||||||
using IoTClient.Common.Enums;
|
using IoTClient.Common.Enums;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using StandardScene;
|
using StandardScene;
|
||||||
@@ -12,7 +12,7 @@ using System.Collections.Generic;
|
|||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
|
|
||||||
namespace StandardScene.Scheduler.FassEvent
|
namespace StandardScene.Scheduler.FassEvent
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using StandardScene.CarTypes;
|
using StandardScene.CarTypes;
|
||||||
using System;
|
using System;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
|
|
||||||
namespace StandardScene.Scheduler.FassEvent
|
namespace StandardScene.Scheduler.FassEvent
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ namespace StandardScene.Scheduler.FassEvent
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 车辆事件处理用的只读快照,从 StandardScene <see cref="SimpleLite.RCS.Car"/> 提取 FASS 语义字段。
|
/// 车辆事件处理用的只读快照,从 StandardScene <see cref="Simple3.RCS.CarTypes.Car"/> 提取 FASS 语义字段。
|
||||||
/// 每次 TimerTick 为每辆车构建一份,供触发器与条件方法使用。
|
/// 每次 TimerTick 为每辆车构建一份,供触发器与条件方法使用。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class FassEventCarSnapshot
|
public class FassEventCarSnapshot
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
|
|
||||||
namespace StandardScene.Scheduler.FassEvent
|
namespace StandardScene.Scheduler.FassEvent
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
// SimpleLite 反射 API 需读取 VDA5050 插件内 internal 字段袋。
|
// Simple3 反射 API 需读取 VDA5050 插件内 internal 字段袋。
|
||||||
[assembly: InternalsVisibleTo("SimpleLite")]
|
[assembly: InternalsVisibleTo("Simple3")]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using CycleGUI;
|
using FairyView;
|
||||||
|
|
||||||
namespace StandardScene.CarTypes
|
namespace StandardScene.CarTypes
|
||||||
{
|
{
|
||||||
@@ -32,7 +32,7 @@ namespace StandardScene.CarTypes
|
|||||||
|
|
||||||
var panel = GUI.DeclarePanel()
|
var panel = GUI.DeclarePanel()
|
||||||
.ShowTitle("TextViewer")
|
.ShowTitle("TextViewer")
|
||||||
.SetDefaultDocking(Panel.Docking.None)
|
.ForceFloat()
|
||||||
.InitSize(800, 600)
|
.InitSize(800, 600)
|
||||||
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
.InitPos(false, 0, 0, 0.5f, 0.5f, 0.5f, 0.5f);
|
||||||
_panel = panel;
|
_panel = panel;
|
||||||
|
|||||||
@@ -8,13 +8,13 @@ using MQTTnet.Extensions.ManagedClient;
|
|||||||
using MQTTnet.Protocol;
|
using MQTTnet.Protocol;
|
||||||
using Nancy.Routing;
|
using Nancy.Routing;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.RCS.Signal;
|
using Simple3.RCS.Signal;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
@@ -29,7 +29,7 @@ using System.Net.Http;
|
|||||||
using System.Security.Policy;
|
using System.Security.Policy;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using static SimpleLite.RCS.CarTypes.ClumsyCar;
|
using static Simple3.RCS.CarTypes.ClumsyCar;
|
||||||
using Site = SimpleCore.PropType.Site;
|
using Site = SimpleCore.PropType.Site;
|
||||||
|
|
||||||
namespace StandardScene.CarTypes
|
namespace StandardScene.CarTypes
|
||||||
@@ -709,7 +709,9 @@ namespace StandardScene.CarTypes
|
|||||||
RouteCacheViewer.Show();
|
RouteCacheViewer.Show();
|
||||||
}
|
}
|
||||||
|
|
||||||
[MethodMember(Name = "立即强制结束")]
|
[MethodMember(Name = "立即强制结束",
|
||||||
|
RequiresPlatformConfirm = true,
|
||||||
|
ConfirmMessage = "确定强制结束该车上的作业并下线?")]
|
||||||
public void ForceStop()
|
public void ForceStop()
|
||||||
{
|
{
|
||||||
AppendDebug("Clumsy Restarted");
|
AppendDebug("Clumsy Restarted");
|
||||||
@@ -853,7 +855,7 @@ namespace StandardScene.CarTypes
|
|||||||
Console.WriteLine(sitesID[i]);
|
Console.WriteLine(sitesID[i]);
|
||||||
}
|
}
|
||||||
Site[] sites = new Site[sitesID.Length];
|
Site[] sites = new Site[sitesID.Length];
|
||||||
SimpleLite.Point[] pts = new SimpleLite.Point[sitesID.Length];
|
Simple3.Point[] pts = new Simple3.Point[sitesID.Length];
|
||||||
|
|
||||||
//for (var i = 0; i < sitesID.Length; i++)
|
//for (var i = 0; i < sitesID.Length; i++)
|
||||||
//{
|
//{
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ using System.Net;
|
|||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using Nancy.Routing;
|
using Nancy.Routing;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
|
|
||||||
namespace StandardScene.CarTypes
|
namespace StandardScene.CarTypes
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using CommonUsage.Protocols.VDA5050.Objects;
|
using CommonUsage.Protocols.VDA5050.Objects;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|||||||
@@ -3,8 +3,8 @@ using System.Linq;
|
|||||||
using StandardScene.Utils;
|
using StandardScene.Utils;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using StandardScene;
|
using StandardScene;
|
||||||
using StandardScene.Model;
|
using StandardScene.Model;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
|
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.PropType;
|
using SimpleCore.PropType;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
using CommonUsage.Mathematics;
|
using CommonUsage.Mathematics;
|
||||||
using LessokajiWeaverUtilities.Utilities;
|
using LessokajiWeaverUtilities.Utilities;
|
||||||
using Nancy.Helpers;
|
using Nancy.Helpers;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using SimpleLite;
|
using Simple3;
|
||||||
using SimpleLite.RCS;
|
using Simple3.RCS;
|
||||||
using SimpleLite.RCS.CarTypes;
|
using Simple3.RCS.CarTypes;
|
||||||
using SimpleLite.CADTools;
|
using Simple3.CADTools;
|
||||||
using SimpleLite.Props;
|
using Simple3.Props;
|
||||||
using SimpleLite.UI;
|
using Simple3.UI;
|
||||||
using SimpleCore;
|
using SimpleCore;
|
||||||
using SimpleCore.Compiler;
|
using SimpleCore.Compiler;
|
||||||
using SimpleCore.Library;
|
using SimpleCore.Library;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
// SimpleLite 反射 API 需读取 QrLidar 插件内 internal 字段袋(ForkliftSiteFields 等)。
|
// Simple3 反射 API 需读取 QrLidar 插件内 internal 字段袋(ForkliftSiteFields 等)。
|
||||||
[assembly: InternalsVisibleTo("SimpleLite")]
|
[assembly: InternalsVisibleTo("Simple3")]
|
||||||
|
|||||||
Reference in New Issue
Block a user