public static void Init(string manifestFile, int httpPort, int dsspPort) { if (bank == null) { Robot.httpPort = httpPort; Robot.dsspPort = dsspPort; FileAttributes att = File.GetAttributes(manifestFile); if ((att & (FileAttributes.Device | FileAttributes.Directory | FileAttributes.Offline)) != 0) { throw new IOException("Manifest file is not a normal file"); } Console.Write("Starting DSS environment..."); DssEnvironment.Initialize(httpPort, dsspPort, "file://" + manifestFile); Console.WriteLine("Done"); bank = new AdapterBank(new List <IAdapterFactory>() { new Myro.Adapters.DriveAdapterFactory(), new Myro.Adapters.VectorAdapterFactory(), new Myro.Adapters.WebcamAdapterFactory(), new Myro.Adapters.CamControlAdapterFactory() }); driveAdapter = bank.GetAdapterSpec <DriveAdapter>("drive"); soundAdapter = bank.GetAdapterSpec <VectorAdapter>("tonegen"); webcamAdapter = bank.GetAdapterSpec <WebcamAdapter>("webcam"); camcontrolAdapter = bank.GetAdapterSpec <CamControlAdapter>("camcontrol"); } else { throw new Exception("Myro is already initialized"); } }
private void ConductorSvr_Load(object sender, EventArgs e) { if (IsPortInUse(ProtocolType.Tcp, 50000) || IsPortInUse(ProtocolType.Tcp, 50001)) { System.Windows.Forms.MessageBox.Show("Tcp port 50000 or 50001 is in use, please check it.", "URWPGSim2D Server"); System.Diagnostics.Process.GetCurrentProcess().Kill(); // 没有数据需要保存直接结束当前进程 } // 调试时在同一节点上启动Server服务和Client服务 string[] strArrManifestFileNames = new string[2] { Application.StartupPath + "\\Sim2DSvr.manifest.xml", Application.StartupPath + "\\Sim2DClt.manifest.xml", }; //DssEnvironment.Initialize(50000, 50001, strArrManifestFileNames); // 在50000/50001这组端口上启动一个DSS Node并初始化Server服务实例 string strServerManifestFileName = Application.StartupPath + "\\Sim2DSvr.manifest.xml"; DssEnvironment.Initialize(50000, 50001, strServerManifestFileName); // 等待当前Dss Node上的某Dss Service发生Drop事件执行DssEnvironment.Shutdown命令 DssEnvironment.WaitForShutdown(); // 退出客户端启动引导程序界面不再显示 Application.Exit(); }
private void Initialize() { // Initialize Dss using the Scribbler base manifest DssEnvironment.Initialize(50000, 50001, @"C:\\Microsoft Robotics Studio (1.5)\\samples\\IPRE\\Scribbler\\Scribbler\\Batch Files\\IPRE.Scribbler.standard.manifest.xml" ); Arbiter.Receive <DateTime>(true, _timerPort, ConnectToScribbler); _timerPort.Post(DateTime.Now); autolock.WaitOne(); }
public Robot(string manifestFile) { Console.Write("Starting DSS environment..."); DssEnvironment.Initialize(50000, 50001, "file://" + Path.GetFullPath(manifestFile)); Console.WriteLine("Done"); bank = new AdapterBank(new List <IAdapterFactory>() { new Myro.Adapters.DriveAdapterFactory(), new Myro.Adapters.VectorAdapterFactory() }); Sensors = new MyroSensors(bank); Movement = new MyroMovement(bank); Sound = new MyroSound(bank); }
private void ConductorClt_Load(object sender, EventArgs e) { DssRuntimeConfiguration dssConfig = new DssRuntimeConfiguration(); dssConfig.PublicHttpPort = 0; dssConfig.PublicTcpPort = 0; int port = 40000; do // 从TCP端口40000起查找尚未被占用的端口 { while (IsPortInUse(ProtocolType.Tcp, port)) { port++; } if (dssConfig.PublicHttpPort == 0) { dssConfig.PublicHttpPort = port; port++; } else { dssConfig.PublicTcpPort = port; } } while (dssConfig.PublicHttpPort == 0 || dssConfig.PublicTcpPort == 0); // 调试时在同一节点上启动Server服务和Client服务 string[] strArrManifestFileNames = new string[2] { Application.StartupPath + "\\Sim2DSvr.manifest.xml", Application.StartupPath + "\\Sim2DClt.manifest.xml", }; //DssEnvironment.Initialize(dssConfig, strArrManifestFileNames); // 在50000/50001这组端口上启动一个DSS Node并初始化Server服务实例 string strServerManifestFileName = Application.StartupPath + "\\Sim2DSvr.manifest.xml"; //DssEnvironment.Initialize(dssConfig, strServerManifestFileName); // 在40000/40001这组端口上启动一个DSS Node并初始化Client服务实例 string strClientManifestFileName = Application.StartupPath + "\\Sim2DClt.manifest.xml"; DssEnvironment.Initialize(dssConfig, strClientManifestFileName); // 等待当前Dss Node上的某Dss Service发生Drop事件执行DssEnvironment.Shutdown命令 DssEnvironment.WaitForShutdown(); // 退出客户端启动引导程序界面不再显示 Application.Exit(); }
/// <summary> /// This is an internal helper method that starts the DSS environment, /// using the manifest file specified in the MyroConfigFiles argument. /// </summary> /// <param name="config"></param> private static void startDSS(MyroConfigFiles config) { string manifestFile = Path.Combine(Path.Combine(Params.ConfigPath, config.BaseName + ".manifest"), config.BaseName + ".manifest.xml"); Robot.httpPort = config.MyroConfiguration.HttpPort; Robot.dsspPort = config.MyroConfiguration.DsspPort; FileAttributes att = File.GetAttributes(manifestFile); if ((att & (FileAttributes.Device | FileAttributes.Directory | FileAttributes.Offline)) != 0) { throw new IOException("Manifest file is not a normal file"); } Console.Write("Starting DSS environment..."); DssEnvironment.Initialize(httpPort, dsspPort, "file://" + manifestFile); Console.WriteLine("Done"); }
/// <summary> /// Intialization Routine. Called by constructor. /// </summary> protected virtual void Initialize() { XPathDocument xpdoc = new XPathDocument(configFile); XPathNavigator xpnav = xpdoc.CreateNavigator(); manifestFile = xpnav.SelectSingleNode("//ManifestFile/URI").Value; httpPort = int.Parse(xpnav.SelectSingleNode("//DssEnvironment/HttpPort").Value); soapPort = int.Parse(xpnav.SelectSingleNode("//DssEnvironment/SoapPort").Value); verbosity = int.Parse(xpnav.SelectSingleNode("//Verbosity/Level").Value); // Initialize Dss manifest DssEnvironment.Initialize(httpPort, soapPort, manifestFile); // Wait for 30 seconds for the DssEnvironment to completely load all services // TODO: utilize config file to remove the sleep Thread.Sleep(10000); }
/// <summary> /// Intialization Routine. Called by constructor. /// </summary> protected virtual void Initialize() { XPathDocument xpdoc = new XPathDocument(configFile); XPathNavigator xpnav = xpdoc.CreateNavigator(); manifestFile = xpnav.SelectSingleNode("//ManifestFile/URI").Value; httpPort = int.Parse(xpnav.SelectSingleNode("//DssEnvironment/HttpPort").Value); soapPort = int.Parse(xpnav.SelectSingleNode("//DssEnvironment/SoapPort").Value); verbosity = int.Parse(xpnav.SelectSingleNode("//Verbosity/Level").Value); // Initialize Dss manifest String manifestFileFull = Path.Combine(Path.GetDirectoryName(Path.GetFullPath(configFile)), manifestFile); Console.WriteLine("Starting DSS environment with manifest: " + manifestFileFull); DssEnvironment.Initialize(httpPort, soapPort, manifestFileFull); //Console.WriteLine("Done"); // Wait for 30 seconds for the DssEnvironment to completely load all services // TODO: utilize config file to remove the sleep Thread.Sleep(10000); }