コード例 #1
0
ファイル: PortServiceMock.cs プロジェクト: zoetrope/RtUtility
        public override ReturnCode_t connect(ref ConnectorProfile connector_profile)
        {
            var ior = connector_profile.GetInPortIor();

            var orb = OrbServices.GetSingleton();

            _inPortCdr = (InPortCdr)orb.string_to_object(ior);

            return ReturnCode_t.RTC_OK;
        }
コード例 #2
0
ファイル: MockFactory.cs プロジェクト: zoetrope/RtUtility
        public static InPortServiceMock CreateInPortService(string name, string dataType, InPortCdr inportCdr)
        {
            var portProfile = new PortProfile()
            {
                name = name,
                connector_profiles = new ConnectorProfile[0],
                interfaces = new PortInterfaceProfile[0],
                owner = null,
                port_ref = null,
                properties = new[]{
                    NameValueExtension.Create("port.port_type","DataInPort"),
                    NameValueExtension.Create("dataport.data_type",dataType),
                    NameValueExtension.Create("dataport.subscription_type","flush,new,periodic"),
                    NameValueExtension.Create("dataport.dataflow_type","push,pull"),
                    NameValueExtension.Create("dataport.interface_type","corba_cdr"),
                }
            };

            var proxy = new MockProxy<InPortServiceMock>(new InPortServiceMock(portProfile, inportCdr));
            return proxy.GetTransparentProxy();
        }
コード例 #3
0
 public InPortCdrAdapter(InPortCdr target)
 {
     _target = target;
 }
コード例 #4
0
        public void Start()
        {
            lock (_lockObject)
            {
                ConnectorProfile prof;
                try
                {
                    prof              = new ConnectorProfile();
                    prof.ports        = new[] { _portService };
                    prof.name         = "dummy"; //名前見直し?
                    prof.connector_id = "";
                    ConnectorProfileExtension.AddDataFlowType(ref prof, "push");
                    ConnectorProfileExtension.AddInterfaceType(ref prof, "corba_cdr");
                    ConnectorProfileExtension.AddSubscriptionType(ref prof, "new");
                    //TODO: エンディアンは?

                    var ret = _portService.connect(ref prof);

                    if (ret != ReturnCode_t.RTC_OK)
                    {
                        throw new Exception("ポートの接続に失敗しました。");
                    }
                }
                catch (Exception)
                {
                    IsAlive = false;
                    NotifyError("ポートの接続に失敗しました。");
                    return;
                }

                var ior = prof.GetInPortIor();

                var orb = OrbServices.GetSingleton();
                _inPortCdr = (InPortCdr)orb.string_to_object(ior);

                try
                {
                    _dataFileReader = new BinaryReader(
                        File.OpenRead(SettingHolder.BaseDirectory + RecordDescription.DataFileName));
                    _indexFileReader = new BinaryReader(
                        File.OpenRead(SettingHolder.BaseDirectory + RecordDescription.IndexFileName));
                }
                catch (Exception)
                {
                    IsAlive = false;
                    NotifyError("再生ファイルが開けませんでした。");
                    return;
                }

                try
                {
                    if (AutoActivate)
                    {
                        var comp = NamingServiceManager.Default.GetComponent(_namingName);
                        if (comp.GetState(0) == LifeCycleState.INACTIVE_STATE)
                        {
                            comp.Activate(0);
                        }

                        comp.WaitState(LifeCycleState.ACTIVE_STATE, TimeSpan.FromSeconds(5));
                    }
                }
                catch (Exception)
                {
                    IsAlive = false;
                    NotifyError("RTコンポーネントの活性化に失敗しました。");
                    return;
                }

                _stopWatch.Start();
                CurrentCount = 0;
                IsPlaying    = true;

                _cancellation = new CancellationTokenSource();
                _task         = Task.Factory.StartNew(Run, _cancellation.Token);
            }
        }
コード例 #5
0
ファイル: PortServiceMock.cs プロジェクト: zoetrope/RtUtility
 public InPortServiceMock(PortProfile prof, InPortCdr mock)
     : base(prof)
 {
     _inPortCdrMock = mock;
 }
コード例 #6
0
ファイル: Player.cs プロジェクト: zoetrope/RtStorage
        public void Start()
        {
            lock (_lockObject)
            {
                ConnectorProfile prof;
                try
                {
                    prof = new ConnectorProfile();
                    prof.ports = new[] { _portService };
                    prof.name = "dummy"; //名前見直し?
                    prof.connector_id = "";
                    ConnectorProfileExtension.AddDataFlowType(ref prof, "push");
                    ConnectorProfileExtension.AddInterfaceType(ref prof, "corba_cdr");
                    ConnectorProfileExtension.AddSubscriptionType(ref prof, "new");
                    //TODO: エンディアンは?

                    var ret = _portService.connect(ref prof);

                    if (ret != ReturnCode_t.RTC_OK)
                    {
                        throw new Exception("ポートの接続に失敗しました。");
                    }

                }
                catch (Exception)
                {
                    IsAlive = false;
                    NotifyError("ポートの接続に失敗しました。");
                    return;
                }

                var ior = prof.GetInPortIor();

                var orb = OrbServices.GetSingleton();
                _inPortCdr = (InPortCdr)orb.string_to_object(ior);

                try
                {
                    _dataFileReader = new BinaryReader(
                        File.OpenRead(SettingHolder.BaseDirectory + RecordDescription.DataFileName));
                    _indexFileReader = new BinaryReader(
                        File.OpenRead(SettingHolder.BaseDirectory + RecordDescription.IndexFileName));
                }
                catch (Exception)
                {
                    IsAlive = false;
                    NotifyError("再生ファイルが開けませんでした。");
                    return;
                }

                try
                {
                    if (AutoActivate)
                    {
                        var comp = NamingServiceManager.Default.GetComponent(_namingName);
                        if (comp.GetState(0) == LifeCycleState.INACTIVE_STATE)
                        {
                            comp.Activate(0);
                        }

                        comp.WaitState(LifeCycleState.ACTIVE_STATE, TimeSpan.FromSeconds(5));
                    }

                }
                catch (Exception)
                {
                    IsAlive = false;
                    NotifyError("RTコンポーネントの活性化に失敗しました。");
                    return;
                }

                _stopWatch.Start();
                CurrentCount = 0;
                IsPlaying = true;

                _cancellation = new CancellationTokenSource();
                _task = Task.Factory.StartNew(Run, _cancellation.Token);

            }
        }