コード例 #1
0
        public void GetAllAgentsInLifetimeState_ClientException()
        {
            IServiceCallResult <AgentDto[]> result = AgentClient.GetAllAgentsInLifetimeState(AgentLifetimeState.InService);

            Assert.IsFalse(result.IsSuccessful());
            Assert.AreEqual(4, result.ServiceCode);
        }
        public void TryGetServicingClient_ClientExceptionNull()
        {
            IServiceCallResult result = ServicingClient.SetServiceComplete(1);

            Assert.IsFalse(result.IsSuccessful());
            Assert.AreEqual(4, result.ServiceCode);
        }
コード例 #3
0
        public void GetAllAgentData_ClientException()
        {
            IServiceCallResult result = AgentClient.GetAllAgents();

            Assert.IsFalse(result.IsSuccessful());
            Assert.AreEqual(4, result.ServiceCode);
        }
コード例 #4
0
        private void HandleGetNodes()
        {
            IServiceCallResult <NodeDto[]> result = Model.GetAllNodes();

            if (result.IsSuccessful())
            {
                string filePath = result.Value.ToCSVFile();
                System.Diagnostics.Process.Start(filePath);
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: ingridv1/SchedulingClients
        private static void AddGoToTask(IJobBuilderClient client, int unorderedListTaskId, IEnumerable <NodeDto> nodes, string alias)
        {
            NodeDto target = nodes.FirstOrDefault(e => e.Alias == alias);

            IServiceCallResult <int> gotoResult = client.CreateGoToNodeTask(unorderedListTaskId, target.Id);

            if (!gotoResult.IsSuccessful())
            {
                Console.WriteLine($"Failed to create goto task, serviceCode:{gotoResult.ServiceCode}");
            }
        }
コード例 #6
0
        private static void Main(string[] args)
        {
            // Here we create an endpoint settings object that defines where the fleet manager service is currently running
            // For this demo we are assuming it is running on localhost, using the default TCP port of 41917.

            EndpointSettings endpointSettings = new EndpointSettings(IPAddress.Loopback, 41916, 41917);

            // Now we create a fleet manager client using the client factory;
            IFleetManagerClient fleetManagerClient = ClientFactory.CreateTcpFleetManagerClient(endpointSettings);

            Console.WriteLine("Press <any> key to create a virtual vehicle 192.168.0.1 at 0,0,0");
            Console.ReadKey(true);

            IPAddress          virtualVehicle = IPAddress.Parse("192.168.0.1");
            IServiceCallResult result         = fleetManagerClient.CreateVirtualVehicle(virtualVehicle, 0, 0, 0);

            if (!result.IsSuccessful())
            {
                Console.WriteLine($"Failed to create virtual vehicle serviceCode:{result.ServiceCode}");
            }

            // Now we can update the vehicles pose
            Console.WriteLine("Press <any> key to set the pose of the vehicle to 1,1,1.57");
            Console.ReadKey(true);

            result = fleetManagerClient.SetPose(virtualVehicle, 1, 1, 1.57);
            if (!result.IsSuccessful())
            {
                Console.WriteLine($"Failed to set pose serviceCode:{result.ServiceCode}");
            }

            Console.WriteLine("Press <any> key to quit");
            Console.ReadKey(true);

            // The fleet manager client has its own thread which must be disposed.
            fleetManagerClient.Dispose();
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: ingridv1/SchedulingClients
        private static void HandleCreateJob(EndpointSettings endpointSettings)
        {
            IEnumerable <NodeDto> nodes = null;

            // Using the map manager client, get the ids of all nodes in the map
            using (IMapClient mapClient = SchedulingClients.Core.ClientFactory.CreateTcpMapClient(endpointSettings))
            {
                IServiceCallResult <NodeDto[]> nodeResults = mapClient.GetAllNodes();

                if (!nodeResults.IsSuccessful())
                {
                    Console.WriteLine($"Failed to get nodes, serviceCode:{nodeResults.ServiceCode}");
                }
                else
                {
                    nodes = nodeResults.Value;
                }
            }

            // Create a multijob
            using (IJobBuilderClient jobBuilder = SchedulingClients.Core.ClientFactory.CreateTcpJobBuilderClient(endpointSettings))
            {
                IServiceCallResult <JobDto> createResult = jobBuilder.CreateJob();
                if (!createResult.IsSuccessful())
                {
                    Console.WriteLine($"Failed to create job, serviceCode:{createResult.ServiceCode}");
                }

                IServiceCallResult <int> createUnorderedListTaskResult = jobBuilder.CreateUnorderedListTask(createResult.Value.RootOrderedListTaskId);
                if (!createUnorderedListTaskResult.IsSuccessful())
                {
                    Console.WriteLine($"Failed to create unordered list task, serviceCode:{createResult.ServiceCode}");
                }

                string[] targets = new string[] { "A0", "B0", "C0", "A1", "B1", "C1" };

                foreach (string target in targets)
                {
                    AddGoToTask(jobBuilder, createUnorderedListTaskResult.Value, nodes, target);
                }


                IServiceCallResult commitResult = jobBuilder.CommitJob(createResult.Value.JobId);
                if (!commitResult.IsSuccessful())
                {
                    Console.WriteLine($"Failed to commit job, serviceCode:{commitResult.ServiceCode}");
                }
            }
        }
コード例 #8
0
        protected override IServiceCallResult HandleExecution(IAgentClient client)
        {
            IServiceCallResult <AgentDto[]> result = client.GetAllAgentsInLifetimeState(AgentLifetimeState.InService);

            if (result.IsSuccessful())
            {
                foreach (AgentDto agent in result.Value)
                {
                    Console.WriteLine($"{agent.Id} - {agent.Alias} ({agent.IPAddress})");
                }
            }
            else
            {
                Console.WriteLine(result);
            }

            return(result);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: ingridv1/FleetClients
        private static void Main(string[] args)
        {
            // Here we create an endpoint settings object that defines where the fleet manager service is currently running
            // For this demo we are assuming it is running on localhost, using the default TCP port of 41917.
            EndpointSettings endpointSettings = new EndpointSettings(IPAddress.Loopback, 41916, 41917);

            // Now we create a fleet manager client using the client factory;
            IFleetManagerClient fleetManagerClient = ClientFactory.CreateTcpFleetManagerClient(endpointSettings);

            Console.WriteLine("Press <any> key to create a virtual vehicle 192.168.0.1 at 0,0,0");
            Console.ReadKey(true);

            IPAddress          virtualVehicle = IPAddress.Parse("192.168.0.1");
            IServiceCallResult result         = fleetManagerClient.CreateVirtualVehicle(virtualVehicle, 0, 0, 0);

            if (!result.IsSuccessful())
            {
                Console.WriteLine($"Failed to create virtual vehicle serviceCode:{result.ServiceCode}");
            }

            // Now we can subscribe to new fleet updates
            Console.WriteLine("Press <any> key to subscribe to fleet updates");
            Console.ReadKey(true);

            Console.Clear();
            Console.CursorVisible = false;
            Console.WriteLine("Press <any> key to quit");

            fleetManagerClient.Connected         += FleetManagerClient_Connected;
            fleetManagerClient.Disconnected      += FleetManagerClient_Disconnected;
            fleetManagerClient.FleetStateUpdated += FleetManagerClient_FleetStateUpdated;

            Console.Title = (fleetManagerClient.IsConnected) ? "Connected" : "Disconnected";

            Console.ReadKey(true);

            fleetManagerClient.Connected         -= FleetManagerClient_Connected;
            fleetManagerClient.Disconnected      -= FleetManagerClient_Disconnected;
            fleetManagerClient.FleetStateUpdated -= FleetManagerClient_FleetStateUpdated;

            // The fleet manager client has its own thread which must be disposed.
            fleetManagerClient.Dispose();
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: ingridv1/SchedulingClients
        private static void HandleCreateVehicle(EndpointSettings endpointSettings)
        {
            // Now we create a fleet manager client using the client factory, and create a virtual vehicle at pose at the node defined as origin.
            //  see: https://github.com/GuidanceAutomation/FleetClients
            using (IFleetManagerClient fleetManagerClient = FleetClients.Core.ClientFactory.CreateTcpFleetManagerClient(endpointSettings))
            {
                IServiceCallResult result = fleetManagerClient.CreateVirtualVehicle(IPAddress.Parse("192.168.0.1"), 0, 0, 0);

                if (!result.IsSuccessful())
                {
                    Console.WriteLine($"Failed to create virtual vehicle serviceCode:{result.ServiceCode}");
                }

                IServiceCallResult enableResult = fleetManagerClient.SetKingpinState(IPAddress.Parse("192.168.0.1"), VehicleControllerState.Enabled);

                if (!enableResult.IsSuccessful())
                {
                    Console.WriteLine($"Failed to enable virtual vehicle serviceCode:{result.ServiceCode}");
                }
            }
        }
コード例 #11
0
        protected override IServiceCallResult HandleExecution(IJobStateClient client)
        {
            IServiceCallResult <JobSummaryDto> result = client.GetCurrentJobSummaryForAgentId(Id);

            Console.WriteLine($"Getting job summary for agent:{Id}");

            if (result.IsSuccessful())
            {
                if (result.Value != null)
                {
                    Console.WriteLine($"JobId:{result.Value.JobId}");
                }
                else
                {
                    Console.WriteLine($"No active job");
                }
            }
            else
            {
                Console.WriteLine(result.ExceptionMessage);
            }

            return(result);
        }
コード例 #12
0
        private static void Main(string[] args)
        {
            // Here we create an endpoint settings object that defines where the fleet manager service is currently running
            // For this demo we are assuming it is running on localhost, using the default TCP port of 41917.
            EndpointSettings endpointSettings = new EndpointSettings(IPAddress.Loopback, 41916, 41917);

            IEnumerable <int> nodeIds = Enumerable.Empty <int>(); // Create an array to store node ids in

            NodeDto startNode = null;

            // Using the map manager client, get the ids of all nodes in the map
            using (IMapClient mapClient = SchedulingClients.Core.ClientFactory.CreateTcpMapClient(endpointSettings))
            {
                IServiceCallResult <NodeDto[]> nodeResults = mapClient.GetAllNodes();

                if (!nodeResults.IsSuccessful())
                {
                    Console.WriteLine($"Failed to get nodes, serviceCode:{nodeResults.ServiceCode}");
                }
                else
                {
                    nodeIds = nodeResults.Value.Select(e => e.Id);
                }

                startNode = nodeResults.Value.First();
            }

            // Now we create a fleet manager client using the client factory, and create a virtual vehicle at pose at the first node.
            //  see: https://github.com/GuidanceAutomation/FleetClients
            using (IFleetManagerClient fleetManagerClient = FleetClients.Core.ClientFactory.CreateTcpFleetManagerClient(endpointSettings))
            {
                IServiceCallResult result = fleetManagerClient.CreateVirtualVehicle(IPAddress.Parse("192.168.0.1"), startNode.Pose.X, startNode.Pose.Y, startNode.Pose.Heading);

                if (!result.IsSuccessful())
                {
                    Console.WriteLine($"Failed to create virtual vehicle serviceCode:{result.ServiceCode}");
                }
            }


            Random random       = new Random(); // Random number generator
            bool   continueFlag = true;

            while (continueFlag)
            {
                Console.WriteLine("Press <any> key to create a random GoTo job, 'q' to quit");

                switch (Console.ReadKey(true).Key)
                {
                case ConsoleKey.Q:
                {
                    continueFlag = false;
                    break;
                }

                default:
                {
                    // Use the job builder client to create a new goto job.
                    using (IJobBuilderClient jobBuilder = SchedulingClients.Core.ClientFactory.CreateTcpJobBuilderClient(endpointSettings))
                    {
                        // Boiler plate code to pick a random node from the array of nodes.
                        int index  = random.Next(0, nodeIds.Count());
                        int nodeId = nodeIds.ElementAt(index);

                        Console.WriteLine($"Sending to node:{nodeId}");

                        IServiceCallResult <JobDto> createResult = jobBuilder.CreateJob();
                        if (!createResult.IsSuccessful())
                        {
                            Console.WriteLine($"Failed to create job, serviceCode:{createResult.ServiceCode}");
                        }

                        IServiceCallResult <int> gotoResult = jobBuilder.CreateGoToNodeTask(createResult.Value.RootOrderedListTaskId, nodeId);
                        if (!gotoResult.IsSuccessful())
                        {
                            Console.WriteLine($"Failed to create goto task, serviceCode:{gotoResult.ServiceCode}");
                        }

                        IServiceCallResult commitResult = jobBuilder.CommitJob(createResult.Value.JobId);
                        if (!commitResult.IsSuccessful())
                        {
                            Console.WriteLine($"Failed to commit job, serviceCode:{commitResult.ServiceCode}");
                        }
                    }

                    break;
                }
                }
            }
        }