FAQs
Contents
Brainboxes provides a .NET API – called Brainboxes.IO – this allows easy integration of Brainboxes Remote Ethernet IO modules with your Windows software applications.
Requirements
- Windows 2000 or later
- Visual Studio 2005 or later – A free edition of the latest version can be download from Microsoft’s website
- .NET 2.0 or later – the latest version is installed with Visual Studio
- Brainboxes Remote IO Module (e.g. ED-204, ED-008 etc)
- Visual Basic Programming Level
- The Brainboxes.IO API – download here
Visual Basic .NET Code Samples
VB for .net 2.0 and above
The following code works in VB targeted at .net version 2.0 and above
Imports Brainboxes.IO
Module VBConsoleModule
Sub Main()
'tcp connection
Dim connection As IConnection = New TCPConnection("192.168.0.158")
'or serial connection on COM3
'connection = new SerialConnection(3)
'ED588 is the model number of the device could be e.g. ED038, ED204 etc.
Dim ed As EDDevice = New ED588(connection)
ed.Label = "Pump Control in Cabinet 3" 'optionally assign a label, useful for debugging
'open connection
ed.Connect()
'set all outputs open/off/0
ed.Outputs.Values = 0
'set Dout0 closed/on/1
ed.Outputs(0).Value = 1
'read Din0: 1 = high, 0 = low
Console.WriteLine("Din0 is "& ed.Inputs(0).Value)
'optionally label a line for ease when debugging
ed.Inputs(3).Label = "Pump enabled Monitor"
'add event handler for rising edge on Din3
AddHandler ed.Inputs(3).IOLineRisingEdge, AddressOf DIN3IOLineRisingEdge
'add event handler for falling edge on any of the inputs
AddHandler ed.Inputs.IOLineFallingEdge, AddressOf Inputs_IOLineFallingEdge
'add event handler for any change on any of the inputs or outputs of the device
AddHandler ed.IOLineChanged, AddressOf ed_IOLineChanged
Console.WriteLine("Press enter to exit...")
Console.ReadKey()
'close connections after a key press
ed.Disconnect()
End Sub
'called when DIN3 goes from 0 -> 1
Public Sub DIN3IOLineRisingEdge(line As IOLine, device As EDDevice, changeType As IOChangeTypes)
Console.WriteLine(line.ToString() & " rising edge!")
'or for full debug data about line:
Console.WriteLine(line.Describe())
End Sub
'called when any of the inputs goes from 1 -> 0
Public Sub Inputs_IOLineFallingEdge(line As IOLine, device As EDDevice, changeType As IOChangeTypes)
Console.WriteLine(line.ToString() & " falling edge!")
End Sub
'called when any change occurs on any of the inputs or output
Public Sub ed_IOLineChanged(line As IOLine, device As EDDevice, changeType As IOChangeTypes)
Console.WriteLine(line.ToString() & " of device " & device.ToString())
'changeType can be one of:
' IOChangeTypes.FallingEdge
' IOChangeTypes.RisingEdge
' IOChangeTypes.Latched -- within the sample time the line has transitioned 2 times
'or for full debug data about device:
Console.WriteLine(device.Describe())
End Sub
End Module
VB for .net 3.5 and above
The following code works in VB targeted at .net version 3.5 and above
Imports Brainboxes.IO
Module VBConsoleLinqModule
Sub Main()
Try
'alternative use a serial connection on e.g. new SerialConnection(3)
'ED588 is the model number of the device could be e.g. ED038, ED204 etc.
Using ed As EDDevice = New ED588(New TCPConnection("192.168.0.158"))
ed.Label = "Pump Control in Cabinet 3" 'optionally give it a label, useful for debugging
'first 3 inputs are connected to button switches
Dim buttons As IOList(Of IOLine) = ed.Inputs.Take(3).AsIOList()
buttons.Label = "Console Buttons" 'optionally label group, useful for debugging
'first 3 outputs are connected to lights
Dim lights As IOList(Of IOLine) = ed.Outputs.Take(3).AsIOList()
'attach anonymous event handler to falling edge of all buttons
'when the button is turned on the corresponding light will come on
AddHandler buttons.IOLineFallingEdge, Sub(line, device, changeType)
Console.WriteLine("Button " & line.IONumber & " Pressed")
lights(line.IONumber).Value = 1 'turn on light
End Sub
'attach anonymous event handler to rising edge of all buttons
'when the button is released the corresponding light will turn off
AddHandler buttons.IOLineRisingEdge, Sub(line, device, changeType)
Console.WriteLine("Button " + line.IONumber + " Released")
lights(line.IONumber).Value = 0 'turn off light
End Sub
'open connection, can be opened before or after events are attached
ed.Connect()
'initialise all lights off
lights.Values = 0
Console.WriteLine("Press any key to exit...")
Console.ReadKey()
'close connections after a key press, automatic disconnect and dispose outside of using block
End Using
Catch ex As Exception
Console.WriteLine("Exception")
Console.WriteLine(ex.ToString())
Console.WriteLine("Press any key to exit...")
Console.ReadKey()
End Try
End Sub
End Module
Related FAQs
- How do I create a windows forms app for Remote IO in VB Visual Basic?
- How do I create a windows forms application for Brainboxes Remote IO in C#?
- How do I Install the Brainboxes.IO .NET API?
- How do I test my Remote IO Module using a terminal console?
- How do I use Android to communicate with my Remote IO Module?
- How do I use C# to communicate with my Remote IO Module?
- How do I use C++ to communicate with my Remote IO Module?
- How do I use Perl to communicate with my Remote IO Module?
- How do I use PHP to communicate with my Remote IO Module?
Related Products
Related Range
FAQs