public void SetUp()
        {
            _mockedPointsContainer         = new Mock <IConnectableObjectsContainer <SlamPoint> >();
            _mockedObservationsContainer   = new Mock <IConnectableObjectsContainer <SlamObservation> >();
            _mockedTrackedObjectsContainer = new Mock <IContainer <SlamTrackedObject> >();
            _mockedLinesContainer          = new Mock <IContainer <SlamLine> >();
            _mockedInfinitePlanesContainer = new Mock <IContainer <SlamInfinitePlane> >();
            _retranslator = new ProtobufRetranslator
            {
                Settings = new AddressesSettingsBag {
                    Addresses = $"{Address}:{Port}"
                }
            };
            _retranslator.Start();

            var logger                   = new TestsLogger();
            var pointsMapManager         = new PointsMapManager(_mockedPointsContainer.Object, null);
            var observationsMapManager   = new ObservationsMapManager(_mockedObservationsContainer.Object, null);
            var trackedObjsMapManager    = new TrackedObjsMapManager(_mockedTrackedObjectsContainer.Object, null);
            var linesMapManager          = new LinesMapManager(_mockedLinesContainer.Object, null);
            var infinitePlanesMapManager = new InfinitePlanesMapManager(_mockedInfinitePlanesContainer.Object, null);

            pointsMapManager.Logger         = logger;
            observationsMapManager.Logger   = logger;
            trackedObjsMapManager.Logger    = logger;
            linesMapManager.Logger          = logger;
            infinitePlanesMapManager.Logger = logger;

            var servicesChain = new IChainable <MapsManagerPb.MapsManagerPbBase>[]
            {
                pointsMapManager, observationsMapManager, trackedObjsMapManager, linesMapManager,
                infinitePlanesMapManager
            }.BuildChain();

            GrpcEnvironment.SetLogger(new TestsLogger());

            _grpcServer = new Server
            {
                Services =
                {
                    MapsManagerPb.BindService(servicesChain),
                },
                Ports =
                {
                    new ServerPort(Address, Port, ServerCredentials.Insecure),
                },
            };
            _grpcServer.Start();
        }
예제 #2
0
        public override void Start()
        {
            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);
            AppContext.SetSwitch("System.Net.Http.SocketsHttpHandler.Http2Support", true);
            GrpcEnvironment.SetLogger(new UnityLogger());

            Converter?.SetInitTRS(Vector3.zero, Quaternion.identity);

            var servicesChain = new IChainable <MapsManagerPb.MapsManagerPbBase>[]
            {
                new PointsMapManager(_containerTree.Points, Converter),
                new ObservationsMapManager(_containerTree.Observations, Converter),
                new TrackedObjsMapManager(_containerTree.TrackedObjs, Converter),
                new LinesMapManager(_containerTree.Lines, Converter),
                new InfinitePlanesMapManager(_containerTree.InfinitePlanes, Converter)
            }.BuildChain();

            _containerTree.DisplayName = $"From gRPC at port {TypedSettings.Port}";
#if UNITY_EDITOR || UNITY_STANDALONE
            Debug.Log($"{TypedSettings.IPAddress}:{TypedSettings.Port}");
#endif

            _server = new GrpcServer()
            {
                Services =
                {
                    MapsManagerPb.BindService(servicesChain),
                    SceneManagerPb.BindService(new SceneManager(_containerTree)),
                    ImageManagerPb.BindService(new ImageManager((RawImagePresenter)_containerTree.Image))
                },
                Ports =
                {
                    new ServerPort("0.0.0.0", TypedSettings.Port, ServerCredentials.Insecure),
                },
            };
            StartServer();
        }