private void Form1_Load(object sender, EventArgs e) { string localIP; using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0)) { socket.Connect("8.8.8.8", 65530); IPEndPoint endpoint = socket.LocalEndPoint as IPEndPoint; localIP = endpoint.Address.ToString(); textBoxServer.Text = " Serevr address is " + localIP; SERVER_IP = localIP; } //This will check for ABB controllers and list them in a combo box this.scanner = new NetworkScanner(); this.scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; foreach (ControllerInfo info in controllers) { comboBox1.Items.Add(info.ControllerName + " / " + info.IPAddress.ToString()); comboBox1.SelectedIndex = 0; } if (backgroundWorker1.IsBusy != true) { backgroundWorker1.RunWorkerAsync(); } }
public void DynamicCreation() { // ABB 自带接口扫描类 NetworkScanner networkScanner = new NetworkScanner(); // 条件运算符 获取控制器类型 ControllerInfo[] controllers = networkScanner.GetControllers(chooseSocket ? NetworkScannerSearchCriterias.Virtual : NetworkScannerSearchCriterias.Real); if (controllers.Length > 0) { Console.WriteLine(controllers); // 获取控制器信息 ABBControllerInfo = controllers[0]; // 根据控制器信息 船舰实例 ABBController = ControllerFactory.CreateFrom(ABBControllerInfo); Console.WriteLine($"Found one ABB.System Name is:{SystemName} System ID is:{SystemID} System IP is:{SystemIP}"); // $ 起到一个占位符的作用内容包含在 {} 中,可以用于获取{}中对应内容的信息,避免了利用{0}的形式占位。 以前占位符 需要 {0} 和 变量 配合使用 } else { MessageBox.Show("No ABB Robot Found!"); } }
public async Task Start() { BConsole.WriteLine("NetworkMonitor v1.0"); await Manager.Init(); new Thread(delegate() { int minutes = 10; int interval = 1000; int IntervalMax = minutes * 1000 * 60; int timer = IntervalMax; while (!StopCalled) { if (timer % interval != 0 || timer > IntervalMax) { break; } if (timer < IntervalMax) { Thread.Sleep(interval); timer += interval; } else { timer = 0; var devices = NetworkScanner.GetDevices(Config.GetDisplay()); Manager.AddDevices(devices); } } }).Start(); await Listener.Start(); }
public List <Machine> reScanMachines() { CurrentContext.Validate(); var ips = NetworkScanner.GetAllMAchines(); foreach (int i in ips.Keys) { var ip = ips[i]; if (string.IsNullOrEmpty(ip.Name)) { continue; } var m = MachineFactory.Find(ip.Name.ToUpper()); if (m != null) { bool bchange = false; if (m.IP != ip.IpAddress) { m.IP = ip.IpAddress; bchange = true; } if (m.MAC != ip.MacAddress) { m.MAC = ip.MacAddress; bchange = true; } if (bchange) { MachineFactory.Update(m); } } } return(getMachines()); }
private void RefreshConnectedList() { NetworkScanner networkScanner = new NetworkScanner(); networkScanner.Scan(); connectedControllers = networkScanner.Controllers; if (connectedControllers.Count != 0) { connectButton.Enabled = true; } else { connectButton.Enabled = false; } ListViewItem item = null; controllerListView.Items.Clear(); foreach (ControllerInfo controllerInfo in connectedControllers) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.Version.ToString()); item.SubItems.Add(controllerInfo.ControllerName); item.SubItems.Add(controllerInfo.Id); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.SystemName); controllerListView.Items.Add(item); item.Tag = controllerInfo; } }
public ControllerInfoCollection getCanner() { this.scanner = new NetworkScanner(); this.scanner.Scan(); infoControllers = scanner.Controllers; return(infoControllers); }
public void Scan() { NetworkScanner netscan = new NetworkScanner(); netscan.Scan(); controllers = netscan.Controllers; }
public ABBController() { NetworkScanner netscan = new NetworkScanner(); netscan.Scan(); allControllers = netscan.Controllers;// 扫描到所有控制器: }
/// <summary> /// 初始化相关参数 /// </summary> private void ABBControl_Load(object sender, EventArgs e) { this.abbscanner = new NetworkScanner(); this.abbscanner.Scan(); //扫描控制器 ControllerInfoCollection controllerInfos = this.abbscanner.Controllers; ListViewItem item = null; foreach (ControllerInfo controllerInfo in controllerInfos) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.ControllerName); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.Id); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.VersionName); this.listView1.Items.Add(item); item.Tag = controllerInfo; //组合框控件添加控制器 this.controllerscomboBox.Items.Add(controllerInfo.IPAddress.ToString() + @"/" + controllerInfo.ControllerName); } this.abbnetworkWatcher = new NetworkWatcher(this.abbscanner.Controllers); this.abbnetworkWatcher.Found += AbbnetworkWatcher_Found; //添加订阅,发现新设备 this.abbnetworkWatcher.Lost += AbbnetworkWatcher_Lost; this.abbnetworkWatcher.EnableRaisingEvents = true; //使能监控器 this.abbscanner = null; //更新Table UI 控件 this.Invoke(new EventHandler(UpdateUI), new Object[] { this, e }); this.timer1.Start(); //启动定时器 //设置combox默认选择项 this.comboBox2.SelectedIndex = 0; this.speed_comboBox.SelectedIndex = 1; }
/// <summary> /// 重新扫描控制器 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void scanBtn_Click(object sender, EventArgs e) { //断开控制器连接 待实现 //... this.abbscanner = new NetworkScanner(); this.abbscanner.Scan(); //扫描控制器 ControllerInfoCollection controllerInfos = this.abbscanner.Controllers; ListViewItem item = null; this.listView1.Items.Clear(); //移除所有项重新扫描 this.controllerscomboBox.Items.Clear(); //移除所有项重新扫描 this.listView1.BeginUpdate(); //更新数据,直到EndUpdate() foreach (ControllerInfo controllerInfo in controllerInfos) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.ControllerName); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.Id); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.VersionName); this.listView1.Items.Add(item); item.Tag = controllerInfo; //组合框控件添加控制器 this.controllerscomboBox.Items.Add(controllerInfo.IPAddress.ToString() + @"/" + controllerInfo.ControllerName); } this.listView1.EndUpdate(); //结束数据处理,一次绘制UI Data.LogString = "扫描完成"; }
public static void Main(string[] args) { Twitchbot t = new Twitchbot(); NetworkScanner.Espipfound += OnEspFound; chatsw = new Stopwatch(); execsw = new Stopwatch(); chatsw.Start(); execsw.Start(); // scan for the the esp and keep scanning untill found. while (!NetworkScanner.espFound && !NetworkScanner.isScanning) { NetworkScanner.Scan(); Thread.Sleep(500); } // sub to the bot message event TwitchClientIrc.ChatMessage += OnTwitchChat; // start the twitch bot t.Start(); }
private void ScanNetwork() { Dispatcher.Invoke(() => { NetworkScanner.ScanAvailableDevices(); }); }
public void AutoConnect() { scanner = new NetworkScanner(); scanner.Scan(); controllers = scanner.Controllers; string id = config.Read("ID", "RobID", "0", cfgPath); Guid a = Guid.Parse(id); foreach (ControllerInfo info in controllers) { if (info.SystemId == a) { controller = Controller.Connect(info.SystemId, ConnectionType.Standalone); controller.Logon(UserInfo.DefaultUser); Text = "当前已自动连接 ID:" + id + " IP:" + info.IPAddress.ToString() + " Port:" + info.WebServicesPort.ToString(); label2_INFO.Text = "已连接。"; setInfoColor(); ShowNewMessage("ヽ(✿゚▽゚)ノ 成功连接到示教器啦:" + id); button_connect.Text = " 断开"; } } if (controller == null) { MessageBox.Show("(ノへ ̄、) 未扫描到控制器或控制器ID不存在,请检查配置文件!", "自动连接错误"); } }
//RapidData a, b; private void Form1_Load(object sender, EventArgs e) { this.scanner = new NetworkScanner(); this.scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; ListViewItem item = null; foreach (ControllerInfo controllerInfo in controllers) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.Id); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.Version.ToString()); item.SubItems.Add(controllerInfo.ControllerName); this.listView1.Items.Add(item); item.Tag = controllerInfo; } //Controller aController = new Controller(); //item = new ListViewItem(aController.IPAddress.ToString()); //item.SubItems.Add(aController.SystemId.ToString()); //item.SubItems.Add(aController.Connected.ToString()); //item.SubItems.Add(aController.IsVirtual.ToString()); //item.SubItems.Add(aController.SystemName); //item.SubItems.Add(aController.RobotWareVersion.ToString()); ////item.SubItems.Add(controllerInfo.ControllerName); //this.listView1.Items.Add(item); //item.Tag = aController; this.networkwatcher = new NetworkWatcher(scanner.Controllers); this.networkwatcher.Found += new EventHandler <NetworkWatcherEventArgs>(HandleFoundEvent); this.networkwatcher.Lost += new EventHandler <NetworkWatcherEventArgs>(HandleLostEvent); this.networkwatcher.EnableRaisingEvents = true; }
private void Page_Loaded(object sender, RoutedEventArgs e) { Main.OnClientRequested += Main_OnClientRequested; ShowFileList(false); if (Main.FilePaths != null) { FilePaths = Main.FilePaths.ToList(); ShowFileList(true); list_Files.ItemsSource = FilePaths; } else { FilePaths = new List <string>(); ShowFileList(false); } NetworkScanner.GetDeviceAddress(out DeviceIP, out DeviceHostName); Main.FileSaveURL = Parameters.SavingPath; Debug.WriteLine("Save file path: " + Main.FileSaveURL); Dispatcher.Invoke(() => { txt_DeviceIP.Content = DeviceIP; txt_DeviceName.Text = Parameters.DeviceName; }); }
public LogEditor() { NetworkScanner netScan = new NetworkScanner(); netScan.Scan(); ctrlInfo = netScan.GetControllers(); foreach (var i in ctrlInfo) { if (i.SystemName.ToString() == "2600-109425") // ABB IRC5 Controller number 26-00268, 4600-800484 { aController = new Controller(i); } } // can be used like this, if you know which controller inside of ctrlInfo[] array. //aController = new Controller(ctrlInfo[0]); // using ControllerInfoCollection cntInfoColl - //cntInfoColl = netScan.Controllers; log = aController.EventLog; Console.WriteLine($"Application is running."); aController.EventLog.MessageWritten += _errorEventHappened; Console.ReadLine(); }
// 声明一个私有变量 动态创建扫描接口 创建与控制器的连接 public void DynamicCreation() { // 建立一个扫描接口的 引用变量 networkScanner NetworkScanner networkScanner = new NetworkScanner(); // 扫描接口 虚拟接口还是实际接口 条件运算符 ControllerInfo[] controllers = networkScanner.GetControllers(chooseSocket ? NetworkScannerSearchCriterias.Virtual : NetworkScannerSearchCriterias.Real); // 发现控制器后 if (controllers.Length > 0) { // 确认controller 包含哪些信息 Console.WriteLine(controllers); // 提取controller中的第默认序列第一的信息 ABBControllerinfo = controllers[0]; Console.WriteLine(ABBControllerinfo); // 根据控制器的信息创建一个实例 并且可以输出 其基本信息 ABBController = ControllerFactory.CreateFrom(ABBControllerinfo); Console.WriteLine($"Found one ABB.System Name is:{SystemName} System ID is:{SystemID} System IP is:{SystemIP}"); // $ 起到一个占位符的作用内容包含在 {} 中,可以用于获取{}中对应内容的信息 } else { MessageBox.Show("No ABB Robot Found."); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { //Event search, and if found connect to Kinect module and then search, and if found add to listView robot controllers kinectSensor = KinectSensor.GetDefault(); if (kinectSensor != null) { kinectSensor.Open(); bodyFrameReader = kinectSensor.BodyFrameSource.OpenReader(); bodyFrameReader.FrameArrived += ReaderFrameArrived; } this.scanner = new NetworkScanner(); this.scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; //for each found controller method add item in listView(create new RobotController object and assign them found controller values) foreach (ControllerInfo controllerInfo in controllers) { listViewRobotControlers.Items.Add(new RobotController { IPAddress = controllerInfo.IPAddress.ToString(), Availability = controllerInfo.Availability.ToString(), Virtual = controllerInfo.IsVirtual.ToString(), SystemName = controllerInfo.SystemName, RobotWareVersion = controllerInfo.Version.ToString(), ControllerName = controllerInfo.ControllerName, Tag = controllerInfo }); } }
public void Initialise() { var networkScanner = new NetworkScanner(); for(int i = 0; i < 20; i++) { Thread.Sleep(100); networkScanner.Scan(); foreach (ControllerInfo controller in networkScanner.Controllers) { if (controller.IPAddress.Equals(this.RobotIPAddress)) { this.Controller = ControllerFactory.CreateFrom(controller); this.Controller.Rapid.ExecutionStatusChanged += new EventHandler<ExecutionStatusChangedEventArgs>(RapidExecutionStatusChanged); this.SetSpeed(100); _status = HardwareStatus.Operational; return; } } } _status = HardwareStatus.Offline; throw new Exception(string.Format("Robot at {0} could not be found.", this.RobotIPAddress)); }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { AddVersionNumber(); CheckForUpdates(); LoadOptions(); NetworkScanner.PublishDevice(); NetworkScanner.ScanAvailableDevices(); NetworkScanner.OnScanCompleted += NetworkScanner_OnScanCompleted; NetworkScanner.OnClientConnected += NetworkScanner_OnClientConnected; Dispatcher.Invoke(() => { chc_AutoShare.IsChecked = Parameters.IsAutoShareEnabled; chc_EnableControls.IsChecked = Parameters.IsControlsEnabled; IsControlsEnabled = Parameters.IsControlsEnabled; }); if (Parameters.IsAutoShareEnabled) { //if (ServiceBot) //{ Task.Run(() => { try { bool noIP = true; while (noIP) { var localIP = NetworkScanner.MyIP; if (localIP != null) { char[] splitter = { '.' }; var ipBlocks = localIP.ToString().Split(splitter); if (string.Equals(ipBlocks[0], "192") && string.Equals(ipBlocks[1], "168")) { noIP = false; } } Thread.Sleep(500); } btn_Share_Click(null, null); } catch (Exception exc) { Debug.WriteLine("Exception in loading: " + exc.ToString()); } }); //} //else //{ // btn_Share_Click(null, null); //} } } catch { Debug.WriteLine("Failed when initializing "); } }
/// <summary> /// Searches the network for a robot controller and establishes a connection with the specified one by position. /// Performs no LogOn actions or similar. /// </summary> /// <returns></returns> private bool LoadController(int controllerID) { // Scan the network and hookup to the specified controller bool success = false; // This is specific to ABB, should become abstracted at some point... logger.Verbose("Scanning the network for controllers..."); NetworkScanner scanner = new NetworkScanner(); ControllerInfo[] controllers = scanner.GetControllers(); if (controllers.Length > 0) { int cId = controllerID > controllers.Length ? controllers.Length - 1 : controllerID < 0 ? 0 : controllerID; controller = ControllerFactory.CreateFrom(controllers[cId]); if (controller != null) { //isConnected = true; logger.Verbose($"Found controller {controller.SystemName} on {controller.Name}"); success = true; logger.Debug(controller); //Console.WriteLine(controller.RobotWare); //Console.WriteLine(controller.RobotWareVersion); //try //{ // this.robotWare = this.controller.RobotWare; // this.robotWareOptions = this.robotWare.Options; // this._hasMultiTasking = HasMultiTaskOption(this.robotWareOptions); // this._hasEGM = HasEGMOption(this.robotWareOptions); //} //catch //{ // Console.WriteLine("Could not access ROBOTWARE options"); //} } else { logger.Debug("Could not connect to controller..."); } } else { logger.Debug("No controllers found on the network"); } //if (!success) //{ // Disconnect(); // //throw new Exception("ERROR: could not LoadController()"); //} return(success); }
public void ConnectAndDisplayData() { Console.Out.WriteLine("Scanning for controllers..."); NetworkScanner scanner = new NetworkScanner(); scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; if (controllers.Count == 0) { status = Status.NotFound; } Console.Out.WriteLine("Number of controllers found: {0}", controllers.Count); //connecting to first controller found. usually only one is present. if (status != Status.NotFound) { selectedController = controllers.First(); Console.Out.WriteLine(selectedController.Name + " " + selectedController.HostName + " " + selectedController.IPAddress + " " + selectedController.Availability); Name = selectedController.Name + "\n" + selectedController.IPAddress; if (selectedController.Availability == Availability.Available) { try { status = Status.Connecting; controller = ControllerFactory.CreateFrom(selectedController); controller.Logon(UserInfo.DefaultUser); status = Status.Connected; } catch (Exception e) { Console.WriteLine("Could not establish a connection to the controller" + Environment.NewLine + e.StackTrace); status = Status.Disconnected; } finally { Console.Out.WriteLine("Connected to " + controller.IPAddress); } } else { Console.WriteLine("The controller is not available for connections"); status = Status.NotAvailable; status = Status.Disconnected; } controller.OperatingModeChanged += Controller_ModeChangedHandler; Console.Out.WriteLine(controller.OperatingMode); tasks = controller.Rapid.GetTasks(); foreach (var task in tasks) { Console.Out.WriteLine("Current task on the controller: {0} ", task.Name); } PrintRapidData(Tasks.LEFT, Modules.LEFT, "codeL"); PrintRapidData(Tasks.RIGHT, Modules.RIGHT, "codeR"); } }
public void createcontroler() { this.objNetworkWatcher = new NetworkScanner(); objNetworkWatcher.Scan(); ControllerInfoCollection objControllerInfoCollection = objNetworkWatcher.Controllers; objController = new Controller(objControllerInfoCollection[0]); objController.Logon(UserInfo.DefaultUser); }
public override List <ListViewItem> scanRobot() { this.scanner = new NetworkScanner(); this.scanner.Scan(); ControllerInfoCollection controllers = this.scanner.Controllers; List <ListViewItem> target = this.getConnectedRobot(); return(target); }
private void Scan(object sender, object e) { //Reset Controllers if (controllers != null) { foreach (var controller in controllers) { controller.LogOff(); } controllers = new List <Controller>(); } // Find ABB robots on the network NetworkScanner scanner = new NetworkScanner(); scanner.Scan(); if (ipAddresses != null) { // Scan the network for controllers and add them to our controller array. foreach (string ip in ipAddresses) { NetworkScanner.AddRemoteController(ip); } } ControllerInfo[] controllersID = scanner.GetControllers(); foreach (ControllerInfo id in controllersID) { controllers.Add(new AbbIRC5Contoller(id)); } // Possibility to scan for other robots // Allow value list to be updated updateVL = true; if (controllers != null) { if (controllers.Count > 0) { log.Add("Controllers found:"); // List the controller names that were found on the network. for (int i = 0; i < controllers.Count; i++) { log.Add(controllers[i].Name); } } else { log.Add("Scan timed out. No controllers were found."); } } ExpireSolution(true); }
public void TEST_GET_NETWORKSHARES() { DateTime start = DateTime.Now; foreach (string share in NetworkScanner.GetAllAvailableNetworkShares()) { Console.WriteLine(share); } Console.WriteLine("Took: " + (DateTime.Now - start).TotalMilliseconds + " milliseconds"); }
/// <summary> /// 搜索控制器返回控制器列表 /// </summary> /// <returns></returns> public List <ControllerInfo> ScanList() { ns = new NetworkScanner(); ns.Scan(); foreach (ControllerInfo item in ns.Controllers) { ConList.Add(item); } JudgeLogStatus = true; return(ConList); }
static ControllerPresenter() { logger = NLog.Web.NLogBuilder.ConfigureNLog("NLog.config").GetCurrentClassLogger(); Scanner = new NetworkScanner(); Scanner.Scan(); if (Scanner.Controllers.Count != 0) { CntPresent = true; } }
private void Form1_Load(object sender, EventArgs e) { this.scanner = new NetworkScanner(); this.scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; foreach (ControllerInfo info in controllers) { comboBox1.Items.Add(info.ControllerName + " / " + info.IPAddress.ToString()); } }
private void button_systemGuid_Click(object sender, RoutedEventArgs e) { Match m = Regex.Match(this.textBox_systemGuid.Text, @"^[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}$", RegexOptions.IgnoreCase); if (m.Success) { NetworkScanner scanner = new NetworkScanner(); scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; foreach (ControllerInfo controllerinfo in controllers) { if (controllerinfo.SystemId.ToString().ToUpper() == this.textBox_systemGuid.Text.ToUpper()) { try { if (this.myController != null) { this.myController.Logoff(); this.myController.Dispose(); this.myController = null; } this.myController = Controller.Connect(new Guid(this.textBox_systemGuid.Text), ConnectionType.Standalone); if (string.IsNullOrEmpty(this.textBox_userName.Text)) { this.myController.Logon(UserInfo.DefaultUser); } else { UserInfo userInfo_login = new UserInfo(this.textBox_userName.Text); userInfo_login.Password = this.passwordBox_password.Password; this.myController.Logon(userInfo_login); } systemGuid = this.textBox_systemGuid.Text; userName = this.textBox_userName.Text; password = Class_Encrypt.EncryptDES(this.passwordBox_password.Password); this.DialogResult = true; return; }catch (Exception exception) { MessageBox.Show(exception.Message); return; } } } MessageBox.Show("This system guid is not valid or the controller is not connected, please check it angin."); } else { MessageBox.Show("This system guid's format is not valid, please check it angin."); } }
static Controller CreateController() { NetworkScanner scanner = new NetworkScanner(); ControllerInfo[] controllers = scanner.GetControllers(NetworkScannerSearchCriterias.Virtual); if (controllers.Length > 0) { Controller dynamic = ControllerFactory.CreateFrom(controllers[0]); return(dynamic); } return(null); }
void OnScanPortsClick(object sender, EventArgs e) { view.Log += "Scanning for open port on " + view.EndpointIP + ". This may take a few minutes..." + Environment.NewLine; Thread scannerThread = new Thread(new ThreadStart(() => { NetworkScanner scanner = new NetworkScanner(); IList<int> openPorts = scanner.GetOpenPorts(view.EndpointIP, 2999, 3001); view.Log += "Found " + openPorts.Count + " open ports:" + Environment.NewLine; foreach (int openPort in openPorts) { view.Log += openPort + Environment.NewLine; } })); scannerThread.IsBackground = true; scannerThread.Start(); }
public static Dictionary<string, List<string[]>> findControllers(bool run) { List<string[]> roboCtrl = new List<string[]> { }; List<string[]> virtCtrl = new List<string[]> { }; if (run == true) { NetworkScanner scanner = new NetworkScanner(); scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; foreach (ControllerInfo controller in controllers) { if (controller.IsVirtual == false) { string[] eachController1 = new string[5] { controller.SystemName.ToString(), controller.SystemId.ToString(), controller.Availability.ToString(), controller.Version.ToString(), controller.IPAddress.ToString() }; roboCtrl.Add(eachController1); } else { string[] eachController2 = new string[5] { controller.SystemName.ToString(), controller.SystemId.ToString(), controller.Availability.ToString(), controller.Version.ToString(), controller.IPAddress.ToString() }; virtCtrl.Add(eachController2); } } } return new Dictionary<string, List<string[]>> { {"robotController", roboCtrl}, {"virtualController", virtCtrl} }; }
void OnScanForReceiverClick(object sender, EventArgs e) { view.Log += "Scanning for receivers..." + Environment.NewLine; Thread scannerThread = new Thread(new ThreadStart(() => { NetworkScanner scanner = new NetworkScanner(); scanner.OnOpenPortFound += new EventHandler<OpenPortFoundArgs>(scanner_OnOpenPortFound); IList<string> endpoints = scanner.GetNetworkedDevices(); view.Log += endpoints.Count + " devices found:" + Environment.NewLine; foreach (string endpoint in endpoints) { view.Log += endpoint.ToString() + Environment.NewLine; } })); scannerThread.IsBackground = true; scannerThread.Start(); }
private void btnScan_Click(object sender, EventArgs e) { listView1.Items.Clear(); listView_left_robots.Items.Clear(); listView_left_robots.Visible=true; listView_right_robots.Items.Clear(); listView_right_robots.Visible=true; this.label_left.Text = "Choose Left Controller"; this.label_right.Text = "Choose Right Controller"; if (this.controller_100 != null ) { try { this.controller_100.Logoff(); this.controller_100 = null; } catch (Exception ex) { MessageBox.Show(ex.Message); } } if (this.controller_101 != null) { try { this.controller_101.Logoff(); this.controller_101 = null; } catch (Exception ex) { MessageBox.Show(ex.Message); } } listView_left_robots.Enabled=true; listView_right_robots.Enabled=true; this.scanner = new NetworkScanner(); this.scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; ListViewItem item = null; foreach (ControllerInfo controllerInfo in controllers) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.Version.ToString()); item.SubItems.Add(controllerInfo.ControllerName); this.listView1.Items.Add(item); item.Tag = controllerInfo; Console.WriteLine("IP: " + controllerInfo.IPAddress.ToString() + " Sys: " + controllerInfo.SystemName); //left controllers if ((controllerInfo.IsVirtual) && (controllerInfo.SystemName == "J-L-IRB_120_3kg_0.58m") && (controllerInfo.IPAddress.ToString() == "127.0.0.1") || (!(controllerInfo.IsVirtual) && (controllerInfo.IPAddress.ToString() == "10.234.3.100"))) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.Version.ToString()); item.SubItems.Add(controllerInfo.ControllerName); this.listView_left_robots.Items.Add(item); item.Tag = controllerInfo; } //right controllers if ((controllerInfo.IsVirtual) && (controllerInfo.SystemName == "J-R-IRB_120_3kg_0.58m") && (controllerInfo.IPAddress.ToString() == "127.0.0.1") || (!(controllerInfo.IsVirtual) && (controllerInfo.IPAddress.ToString() == "10.234.3.101"))) { item = new ListViewItem(controllerInfo.IPAddress.ToString()); item.SubItems.Add(controllerInfo.Availability.ToString()); item.SubItems.Add(controllerInfo.IsVirtual.ToString()); item.SubItems.Add(controllerInfo.SystemName); item.SubItems.Add(controllerInfo.Version.ToString()); item.SubItems.Add(controllerInfo.ControllerName); this.listView_right_robots .Items.Add(item); item.Tag = controllerInfo; } } }
/// <summary> /// Send robot target to controller. /// </summary> /// <param name="moduleName">Name of module</param> /// <param name="targetName">Name of target</param> /// <param name="targetValue">New value for target</param> public static void sendRobTargetToController(string moduleName, string targetName, string targetValue) { try { var scanner = new NetworkScanner(); scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; using (var controller = ControllerFactory.CreateFrom(controllers[0])) { controller.Logon(UserInfo.DefaultUser); using (Mastership.Request(controller.Rapid)) { if (controller.OperatingMode == ControllerOperatingMode.Auto) { using (var task = controller.Rapid.GetTask("T_ROB1")) { var target = new RobTarget(); using (var rapidData = task.GetRapidData(moduleName, targetName)) { if (rapidData.Value is RobTarget) { target.FillFromString2(targetValue); rapidData.Value = target; } } var result = task.Start(true); Debug.WriteLine(result.ToString()); task.ResetProgramPointer(); } } else { Debug.WriteLine("Automatic mode is required to start execution from a remote client."); } } controller.Logoff(); } } catch (Exception ex) { Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); } }
////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////// /// <summary> /// Send RAPID to controller. /// </summary> /// <param name="filePath">File path</param> /// <returns></returns> public static bool sendRapidToController(string filePath) { if (!File.Exists(filePath)) { throw new Exception("File could not be found."); } var scanner = new NetworkScanner(); scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; using (var controller = ControllerFactory.CreateFrom(controllers[0])) { controller.Logon(UserInfo.DefaultUser); using (Mastership.Request(controller.Rapid)) { if (controller.OperatingMode == ControllerOperatingMode.Auto) { var fileName = Path.GetFileName(filePath); try { var remoteDir = controller.FileSystem.RemoteDirectory.Replace('/', '\\'); var localDir = Path.GetDirectoryName(filePath); controller.FileSystem.LocalDirectory = localDir; //write the mod file controller.FileSystem.PutFile(fileName, true); //write the prf file controller.FileSystem.PutFile("Dynamo.prg", true); } catch (Exception ex) { Debug.WriteLine(ex.Message); return false; } using (var task = controller.Rapid.GetTask("T_ROB1")) // note the task name needs to be set up like this in Robot Studio { // read data from file task.LoadProgramFromFile("Dynamo.prg", RapidLoadMode.Replace); task.LoadModuleFromFile(fileName, RapidLoadMode.Add); try { task.ResetProgramPointer();//seems to get hung up here. } catch (Exception ex) { Debug.WriteLine(ex.Message.ToString()); throw; } var result = task.Start(true); Debug.WriteLine(result.ToString()); } } else { Debug.WriteLine("Automatic mode is required to start execution from a remote client."); } } controller.Logoff(); } return true; }