Controller connection C#
Options
dzayson
✭
Hi guys,
I'm working on my app in c#.
I found sample code for controller communication, but sample was written in Visual Studio in Windows Application Project.
I would like to change this code for WPF project. I made some modifications, but I have some issue to get data from controller.
Below sample code c# Windows Application Project.
*****************************************************************************************************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ABB.Robotics.Controllers;
using ABB.Robotics.Controllers.Discovery;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
NetworkScanner scanner = new NetworkScanner();
scanner.Scan();
ControllerInfoCollection controllers = scanner.Controllers;
foreach (ControllerInfo controller in controllers)
{
ListViewItem item = new ListViewItem(controller.SystemName);
item.SubItems.Add(controller.IPAddress.ToString());
item.SubItems.Add(controller.Version.ToString());
item.SubItems.Add(controller.IsVirtual.ToString());
item.Tag = controller;
this.listView1.Items.Add(item);
}
}
private void listView1_DoubleClick(object sender, EventArgs e)
{
ListViewItem itemView = listView1.SelectedItems[0];
if (itemView.Tag != null)
{
ControllerInfo controllerInfo = (ControllerInfo)itemView.Tag;
Controller ctr1 = ControllerFactory.CreateFrom(controllerInfo);
ctr1.Logon(UserInfo.DefaultUser);
ListViewItem item = new ListViewItem(ctr1.RobotWare.ToString() +
" " + ctr1.State.ToString() + " " + ctr1.OperatingMode.ToString());
this.listView2.Items.Add(item);
ctr1.Logoff();
ctr1.Dispose();
}
}
}
}
*******************************************************************************************************************************
And here my modification for WPF Project. At this moment I have problem with modification this function : private void listView1_DoubleClick(object sender, EventArgs e).
How to do this ?
namespace controller_setup1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public class User
{
public string Name { get; set; }
public string Adress { get; set; }
public string Version { get; set; }
public string Virtual { get; set; }
}
public class Info
{
public string Data {get; set;}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
NetworkScanner scanner = new NetworkScanner();
scanner.Scan();
ControllerInfoCollection controllers = scanner.Controllers;
foreach (ControllerInfo controller in controllers)
{
List<User> items = new List<User>();
items.Add(new User()
{
Name = controller.SystemName,
Adress = controller.IPAddress.ToString(),
Version = controller.Version.ToString(),
Virtual = controller.IsVirtual.ToString()
});
listView1.ItemsSource = items;
}
}
private void listView1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
}
}
}
******************************************************************************************************************************
I'm working on my app in c#.
I found sample code for controller communication, but sample was written in Visual Studio in Windows Application Project.
I would like to change this code for WPF project. I made some modifications, but I have some issue to get data from controller.
Below sample code c# Windows Application Project.
*****************************************************************************************************************************************************
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ABB.Robotics.Controllers;
using ABB.Robotics.Controllers.Discovery;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
NetworkScanner scanner = new NetworkScanner();
scanner.Scan();
ControllerInfoCollection controllers = scanner.Controllers;
foreach (ControllerInfo controller in controllers)
{
ListViewItem item = new ListViewItem(controller.SystemName);
item.SubItems.Add(controller.IPAddress.ToString());
item.SubItems.Add(controller.Version.ToString());
item.SubItems.Add(controller.IsVirtual.ToString());
item.Tag = controller;
this.listView1.Items.Add(item);
}
}
private void listView1_DoubleClick(object sender, EventArgs e)
{
ListViewItem itemView = listView1.SelectedItems[0];
if (itemView.Tag != null)
{
ControllerInfo controllerInfo = (ControllerInfo)itemView.Tag;
Controller ctr1 = ControllerFactory.CreateFrom(controllerInfo);
ctr1.Logon(UserInfo.DefaultUser);
ListViewItem item = new ListViewItem(ctr1.RobotWare.ToString() +
" " + ctr1.State.ToString() + " " + ctr1.OperatingMode.ToString());
this.listView2.Items.Add(item);
ctr1.Logoff();
ctr1.Dispose();
}
}
}
}
*******************************************************************************************************************************
And here my modification for WPF Project. At this moment I have problem with modification this function : private void listView1_DoubleClick(object sender, EventArgs e).
How to do this ?
namespace controller_setup1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public class User
{
public string Name { get; set; }
public string Adress { get; set; }
public string Version { get; set; }
public string Virtual { get; set; }
}
public class Info
{
public string Data {get; set;}
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
NetworkScanner scanner = new NetworkScanner();
scanner.Scan();
ControllerInfoCollection controllers = scanner.Controllers;
foreach (ControllerInfo controller in controllers)
{
List<User> items = new List<User>();
items.Add(new User()
{
Name = controller.SystemName,
Adress = controller.IPAddress.ToString(),
Version = controller.Version.ToString(),
Virtual = controller.IsVirtual.ToString()
});
listView1.ItemsSource = items;
}
}
private void listView1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
}
}
}
******************************************************************************************************************************
Tagged:
0
Comments
-
Hi,
Are you using the same controller to test against and the same SDK?
Do you have troubles with getting the data or presenting the data? If it is getting the data, the code should be the same: CreateConnection - Logon - GetData - LoggOff.
BR/Carlos
Carlos Martinez
ABB0 -
How about this
public MainWindow() { InitializeComponent(); } private void MainWindow_OnLoaded(object sender, RoutedEventArgs e) { NetworkScanner scanner = new NetworkScanner(); scanner.Scan(); ControllerInfoCollection controllers = scanner.Controllers; listView1.ItemsSource = controllers; } private void ListView1_OnMouseDoubleClick(object sender, MouseButtonEventArgs e) { ListView listView = sender as ListView; ControllerInfo info = listView.SelectedValue as ControllerInfo; }
0
Categories
- All Categories
- 5.4K RobotStudio
- 385 UpFeed
- 15 Tutorials
- 12 RobotApps
- 291 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 247 ScreenMaker
- 2.7K Robot Controller
- 285 IRC5
- 47 OmniCore
- 6 RCS (Realistic Controller Simulation)
- 3 RobotStudio AR Viewer
- 748 RAPID Programming
- 15 Wizard Easy Programming
- 110 Collaborative Robots
- 3 Job listings