public UnitErrorsAndMovesController() { Get["/uniterrors"] = _ => View["uniterrors"]; // GET api/values Get["/api/uniterrors"] = parameters => { var lst = DB_Error.AllAlarms(BauerLib.Registry.Culture); return(Response.AsJson(new DataObject { data = lst })); }; }
public dynamic GetUnitsTable() { List <TableItem> lst = new List <TableItem>(); try { Unit[] units = new Unit[] { Unit.MainRack, Unit.LS01, Unit.LS02, Unit.LS03, Unit.Trolley1, Unit.Trolley2, Unit.Trolley3, Unit.Carrier1, Unit.Carrier2 }; var alarms = DB_Error.AllAlarms(BauerLib.Registry.Culture); foreach (Unit u in units) { if (!BauerLib.Registry.UseVehicle(u.Unit_ID)) { continue; } TableItem item = new TableItem(u.FriendlyName); item.id = u.Unit_ID; item.ready = u.Ready ? color(KnownColor.LightGreen) : color(KnownColor.LightGray); item.active = u.Active ? color(KnownColor.LightGreen) : color(KnownColor.LightGray); item.online = u.Online ? color(KnownColor.LightGreen) : color(KnownColor.Red); item.error = u.HasError ? color(KnownColor.Red) : color(KnownColor.LightGray); item.inorout = ""; item.reserved = ""; if (u.IsCarrier() && u.Reserved >= 20 && u.Reserved <= 23) { item.reserved = $"TR {u.Reserved - 20}"; } item.step = u.StepNo; //lst.Add(new StatusEntry(div_id, "StepNo", ls.StepNo.ToString())); //lst.Add(new StatusEntry(div_id, "MoveID", ls.MoveID.ToString())); if (u.Cylinder_ID != 0) { item.roll = u.Cylinder.Number; } Hook p = u.PlcPosition(); item.position = p.ToString().Replace(",100,100", "").Replace("0,0,0,0", ""); //if (u.IsCarrier() && u.Reserved != 0) // item.AddInfo($"reserved for : {Unit.GetUnit(u.Reserved).FriendlyName}"); if (u.IsLoadingStation() && u.BlockForManualOrderUntil > DateTime.UtcNow) { item.AddInfo($"blocked for automatics"); } var mv = GetLatestPLCMoveForUnit(u.Unit_ID); if (mv != null) { item.AddInfo("Move " + mv.ToString().Substring(3)); if (mv.MoveTarget.Bridge != 0 && mv.MoveTarget.Trolley != 0) { item.target = mv.MoveTarget.ToString().Replace(",100,100", ""); } } string info = GetLatestOrderForUnit(u.Reserved); item.AddInfo(info); if (info.Contains("incoming")) { item.inorout = "in"; } if (info.Contains("outgoing")) { item.inorout = "out"; } //lst.Add(new StatusEntry(div_id, "Cylinder (in)", Hook.LoadingStation(ls.Number, true).CylinderNumber)); //lst.Add(new StatusEntry(div_id, "Cylinder (out)", Hook.LoadingStation(ls.Number, false).CylinderNumber)); foreach (var a in alarms) { if (a.UnitName == item.name) { item.AddInfo($"{a.Level} {a.Number} : {a.Message}"); } } lst.Add(item); } } catch { } return(Response.AsJson(lst)); }