init commit
This commit is contained in:
@@ -0,0 +1,262 @@
|
||||
using SimpleLite.RCS;
|
||||
using SimpleLite.RCS.CarTypes;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace StandardScene.Model
|
||||
{
|
||||
public class TaskRequest
|
||||
{
|
||||
public string CarCode { get; set; }
|
||||
public string CarType { get; set; }
|
||||
public string TaskCode { get; set; }
|
||||
public string MissionType { get; set; }
|
||||
public string TaskType { get; set; }
|
||||
public string Material { get; set; }
|
||||
public ContainerSize ContainerSize { get; set; }
|
||||
public List<Node> Nodes { get; set; }
|
||||
public int priority { get; set; }
|
||||
}
|
||||
|
||||
public class ContainerSize
|
||||
{
|
||||
public double Length { get; set; }
|
||||
public double Width { get; set; }
|
||||
public double Height { get; set; }
|
||||
}
|
||||
|
||||
public class Node
|
||||
{
|
||||
public int Code { get; set; }
|
||||
//public List<Action> Actions { get; set; }
|
||||
}
|
||||
|
||||
public class Action
|
||||
{
|
||||
public string Code { get; set; }
|
||||
public string ActionType { get; set; }
|
||||
public string BlockingType { get; set; }
|
||||
public List<ActionParameter> Parameters { get; set; }
|
||||
}
|
||||
|
||||
public class ActionParameter
|
||||
{
|
||||
public string Key { get; set; }
|
||||
public string Value { get; set; }
|
||||
}
|
||||
|
||||
public class BaseRespose<T>
|
||||
{
|
||||
public bool Success { get; set; }
|
||||
public int Code { get; set; } = 200;
|
||||
public string Message { get; set; }
|
||||
public T Data { get; set; }
|
||||
}
|
||||
|
||||
public class BaseRespose
|
||||
{
|
||||
public bool Success { get; set; } = true;
|
||||
public int Code { get; set; } = 200;
|
||||
public string Message { get; set; }
|
||||
}
|
||||
public class CarInfo
|
||||
{
|
||||
|
||||
|
||||
public string Code { get; set; }
|
||||
public string Name { get; set; }
|
||||
public double Voltage { get; set; }
|
||||
|
||||
public string Address { get; set; }
|
||||
|
||||
public string Speed { get; set; }
|
||||
|
||||
public int siteId { get; set; }
|
||||
|
||||
}
|
||||
public class CarStateInfo
|
||||
{
|
||||
public string Code { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string CurrState { get; set; }
|
||||
public bool IsOnline { get; set; } = false;
|
||||
public double Battery { get; set; }
|
||||
public double ElectricCurrent { get; set; }
|
||||
public double Voltage { get; set; }
|
||||
public double X { get; set; }
|
||||
public double Y { get; set; }
|
||||
public double Theta { get; set; }
|
||||
public double Speed { get; set; }
|
||||
public int Load { get; set; }
|
||||
public string CurrNodeCode { get; set; }
|
||||
public string StartNodeCode { get; set; }
|
||||
public string EndNodeCode { get; set; }
|
||||
public string CurrEdgeCode { get; set; } = "";
|
||||
public string StartEdgeCode { get; set; } = "";
|
||||
public string EndEdgeCode { get; set; } = "";
|
||||
public List<int> HoldingLocks { get; set; }
|
||||
public List<int> PendingLocks { get; set; }
|
||||
public List<BlockedByItem> BlockedBy { get; set; }
|
||||
public string BlockingTime { get; set; } = "";
|
||||
public string TrafficMessage { get; set; } = "";
|
||||
public int AquiringLock { get; set; } = -1;
|
||||
public bool StopAccept { get; set; } = false;
|
||||
|
||||
public List<CarAlarm> Alarms { get; set; }
|
||||
|
||||
public List<TaskInfo> Tasks { get; set; }
|
||||
|
||||
public List<TaskAction> Actions { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class BlockedByItem
|
||||
{
|
||||
public string CarCode { get; set; }
|
||||
public int Type { get; set; }
|
||||
}
|
||||
|
||||
public class CarAlarm
|
||||
{
|
||||
public string Code { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
|
||||
public class TaskInfo
|
||||
{
|
||||
public string Code { get; set; }
|
||||
public string State { get; set; }
|
||||
public List<ResponseNode> Nodes { get; set; }
|
||||
}
|
||||
|
||||
public class TaskAction
|
||||
{
|
||||
public string Code { get; set; }
|
||||
public string ActionType { get; set; }
|
||||
public string BlockingType { get; set; }
|
||||
public string State { get; set; }
|
||||
}
|
||||
|
||||
public class ResponseNode
|
||||
{
|
||||
public string Code { get; set; }
|
||||
//public List<TaskAction> Actions { get; set; }
|
||||
}
|
||||
|
||||
public class TaskCancel
|
||||
{
|
||||
public string TaskCode { get; set; }
|
||||
public string MissionType { get; set; }
|
||||
public string TaskStatus { get; set; }
|
||||
}
|
||||
public class TaskRecord
|
||||
{
|
||||
public string TaskId { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string CarId { get; set; }
|
||||
public string CarName { get; set; }
|
||||
public string SrcSiteId { get; set; }
|
||||
public string DestSiteId { get; set; }
|
||||
public int Priority { get; set; } = 0;
|
||||
public string State { get; set; }
|
||||
public DateTime? StartTime { get; set; }
|
||||
public DateTime? EndTime { get; set; }
|
||||
public DateTime Created { get; set; }
|
||||
|
||||
}
|
||||
|
||||
public class CarBaseInfo
|
||||
{
|
||||
public string Code { get; set; }
|
||||
public string Name { get; set; }
|
||||
public string CarType { get; set; }
|
||||
public double Length { get; set; }
|
||||
public double Width { get; set; }
|
||||
public string CurrNodeCode { get; set; }
|
||||
public string CurrState { get; set; }
|
||||
public double Battery { get; set; }
|
||||
public string Address { get; set; }
|
||||
public double Speed { get; set; }
|
||||
public double X { get; set; }
|
||||
public double Y { get; set; }
|
||||
public double Theta { get; set; }
|
||||
public double Voltage { get; set; }
|
||||
public double ElectricCurrent { get; set; }
|
||||
public bool IsOnline { get; set; } = false;
|
||||
public Dictionary<string, string> Additional { get; set; }
|
||||
|
||||
public CarBaseInfo()
|
||||
{
|
||||
Additional = new Dictionary<string, string>();
|
||||
}
|
||||
|
||||
public static CarBaseInfo FromCar(Car car)
|
||||
{
|
||||
var info = new CarBaseInfo()
|
||||
{
|
||||
Code = car.id.ToString(),
|
||||
Name = car.name,
|
||||
Address = car.address.Equals("/") ? "127.0.0.1" : car.address,
|
||||
CurrNodeCode = car.status.holdingLocks.FirstOrDefault().ToString(),
|
||||
X = car.x,
|
||||
Y = car.y,
|
||||
Theta = car.th,
|
||||
Speed = car.speed
|
||||
};
|
||||
//info.Length = car.latestShape.lx;
|
||||
//info.Width = car.latestShape.ly;
|
||||
info.CarType = car.fields.ContainsKey("CarType") ? car.fields["CarType"] : "Car";
|
||||
info.Battery = car.status.enums.ContainsKey("Soc") ? int.Parse(car.status.enums["Soc"]) : 100;
|
||||
info.Voltage = car.status.enums.ContainsKey("Voltage") ? double.Parse(car.status.enums["Voltage"]) : 0;
|
||||
info.ElectricCurrent = car.status.enums.ContainsKey("ElectricCurrent") ? double.Parse(car.status.enums["ElectricCurrent"]) : 0;
|
||||
var isOnline = false;
|
||||
string carState = SwitchCarState(car, ref isOnline);
|
||||
info.IsOnline = isOnline;
|
||||
info.CurrState = carState;
|
||||
return info;
|
||||
}
|
||||
|
||||
public static string SwitchCarState(Car car, ref bool isOnline)
|
||||
{
|
||||
string state = "Stopping";
|
||||
if (car.GetLastSite() == -1)
|
||||
{
|
||||
isOnline = false;
|
||||
return state;
|
||||
}
|
||||
if (Commons.GetVehicleStatus(car)!= VehicleStatus.Offline)
|
||||
{
|
||||
if (Commons.GetVehicleStatus(car) is VehicleStatus.Normal or VehicleStatus.NeedInit)
|
||||
state = "Stopping"; //Idle
|
||||
var lp = car.status.programs.latest;
|
||||
if (lp != null)
|
||||
{
|
||||
if (
|
||||
lp.status.state >= SimpleCore.Compiler.CarProgram.StatusEnum.Programming
|
||||
&& lp.status.state <= SimpleCore.Compiler.CarProgram.StatusEnum.Running
|
||||
)
|
||||
{
|
||||
state = "Running"; //Executing
|
||||
}
|
||||
}
|
||||
//存在报警信息
|
||||
if (car.status.enums.ContainsKey("AlarmInfo"))
|
||||
{
|
||||
if (!string.IsNullOrEmpty(car.status.enums["AlarmInfo"]))
|
||||
{
|
||||
state = "Faulting"; //Malfunction
|
||||
}
|
||||
}
|
||||
if (car.tags.Contains("charging"))
|
||||
state = "Charging";
|
||||
isOnline = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
isOnline = false;
|
||||
}
|
||||
return state;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user