init commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using Newtonsoft.Json;
|
||||
using SimpleCore;
|
||||
using SimpleLite.CADTools;
|
||||
using SimpleLite.RCS.CarTypes;
|
||||
using StandardScene;
|
||||
using StandardScene.Model;
|
||||
|
||||
namespace StandardScene.QrLidar.Cad
|
||||
{
|
||||
/// <summary>
|
||||
/// 扫描全图带 tag 的站点生成二维码地图(码值 → 坐标/角度),写入 <see cref="ApiController.QrMap"/>
|
||||
/// 供 <c>/api/QrMap</c> 下发,并通知带 QrCar 标记的在线车辆刷新。
|
||||
/// 自 Core StandardCADTool.cs 迁入(scene.qrlidar 平台专属能力)。
|
||||
/// </summary>
|
||||
[CADToolDescriptor(name = "同步二维码地图到小车")]
|
||||
public class SyncQrMap : CADTool
|
||||
{
|
||||
public override async void Invoke()
|
||||
{
|
||||
var tagSites = SimpleLib.GetAllSites().Where(p => p.fields.ContainsKey("tag"));
|
||||
ApiController.QrMap.Clear();
|
||||
foreach (var tagSite in tagSites)
|
||||
{
|
||||
var tag = int.Parse(tagSite.fields["tag"]);
|
||||
var tagX = tagSite.x;
|
||||
var tagY = tagSite.y;
|
||||
var tagTh = tagSite.fields.TryGetValue("th", out var field) ? float.Parse(field) : 0f;
|
||||
if (ApiController.QrMap.ContainsKey(tag))
|
||||
{
|
||||
MessageBox.Show(($@"存在重复码值:{tag} 站点id为:{tagSite.id}"));
|
||||
return;
|
||||
}
|
||||
|
||||
ApiController.QrMap[tag] = (tagX, tagY, tagTh);
|
||||
}
|
||||
|
||||
ApiController.QrMapJson = JsonConvert.SerializeObject(ApiController.QrMap);
|
||||
var qrCars = SimpleLib.GetAllCars().Where(p => p.fields.ContainsKey("QrCar"));
|
||||
foreach (var qrCar in qrCars)
|
||||
{
|
||||
if(Commons.GetVehicleStatus((Car)qrCar) is VehicleStatus.Normal or VehicleStatus.NeedInit)
|
||||
((ClumsyCar)qrCar).ImmediateCommand("pilot.GetUpdateQrMap()");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user