Controller connection C#
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.5K RobotStudio
- 396 UpFeed
- 18 Tutorials
- 13 RobotApps
- 297 PowerPacs
- 405 RobotStudio S4
- 1.8K Developer Tools
- 250 ScreenMaker
- 2.8K Robot Controller
- 316 IRC5
- 61 OmniCore
- 7 RCS (Realistic Controller Simulation)
- 800 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings