public async Task ZjistiStavRobota() { LynxModel lynx = new LynxModel { Hostname = "Jana", IpAdress = "10.226.178.252" }; lynx.Connect(); AgvStatus status = await lynx.StatusRobota(); Assert.IsNotNull(status); }
public override async Task <AgvStatus> StatusRobota() { RobotClient.RefreshStatus(out RobotStatus robotStatus, out string error); string StatusForHumans = robotStatus.ExtendedStatusForHumans; StatusType agvStatusType = StatusType.Unknown; if (StatusForHumans.ToLower().Contains("going to")) { agvStatusType = StatusType.InWork; } if (StatusForHumans.ToLower().Contains("parking")) { agvStatusType = StatusType.Parking; } if (StatusForHumans.ToLower().Contains("docking")) { agvStatusType = StatusType.Docking; } if (StatusForHumans.ToLower().Contains("docked")) { agvStatusType = StatusType.Docked; } Struct.Location accurateLocationOfRobot = new Struct.Location(robotStatus.Location.X, robotStatus.Location.Y); MapGoal? goal = null; if (agvStatusType == StatusType.Docked) { foreach (MapGoal dock in await GoalsInfo()) { long robotX = accurateLocationOfRobot.X; long robotY = accurateLocationOfRobot.Y; if (dock.Location.X >= robotX - 1000 && dock.Location.X <= robotX + 1000) { if (dock.Location.Y >= robotY - 400 && dock.Location.Y <= robotY + 400) { goal = dock; break; } } } } AgvStatus result = new AgvStatus(agvStatusType, robotStatus.LocalizationScore, accurateLocationOfRobot, goal); return(result); }