Implementing struct to represent RECORD [SOLVED]
BigM
✭
Hi,
Public Structure LineData
Implements IRapidData
Private data As UserDefined
Friend Sub New(ByVal rdt As RapidDataType)
data = New UserDefined(rdt)
Private Property ProcessData() As UserDefined
Get
Return data
End Get
Set(ByVal Value As UserDefined)
data = Value
End Set
End Property
Public Property ProdData() As String
Get
Return ProcessData.Components(0).ToString()
End Get
Set(ByVal value As String)
ProcessData.Components(0) = New ABB.Robotics.Controllers.RapidDomain.String(value)
End Set
End Property
Public Property RollCount() As Single
Get
Dim res As Single = Convert.ToSingle(ProcessData.Components(1).ToString())
Return res
End Get
Set(ByVal value As Single)
ProcessData.Components(1).FillFromString(value.ToString())
End Set
End Property
Public Property LayerCount() As Single
Get
Dim res As Single = Convert.ToSingle(ProcessData.Components(2).ToString())
Return res
End Get
Set(ByVal value As Single)
ProcessData.Components(2).FillFromString(value.ToString())
End Set
End Property
Public Property LayerOffset() As Single
Get
Dim res As Single = Convert.ToSingle(ProcessData.Components(3).ToString())
Return res
End Get
Set(ByVal value As Single)
ProcessData.Components(3).FillFromString(value.ToString())
End Set
End Property
Public Sub FillFromString(ByVal newValue As String) Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.FillFromString
ProcessData.FillFromString(newValue)
End Sub
Public Overrides Function ToString() As String Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.ToString
Return ProcessData.ToString()
End Function
End StructureBigM2010-06-08 16:28:38
I'm writing a PC Application in Visual Studio 2005 and coding in VB.
I'm trying to implment a struct to represent a RECORD i have created in the IRC5 controller.
I have done this on the Flexpendant with no problems but I'm coding this project for a touch panel and i'm getting an unusual error for the line "Implements IRapidData".
My code pretty much follows the example given in the RAB PC SDK - RapidDomain (user defined data) section.
I've implemented the FillFromString and ToString IRapidData methods but i get these 3 errors...
Error 1 Structure 'LineData' must implement 'Function ToStructure() As DataNode' for interface 'ABB.Robotics.Controllers.RapidDomain.IRapidData'.
Error 2 Structure 'LineData' must implement 'Sub Fill(root As DataNode)' for interface 'ABB.Robotics.Controllers.RapidDomain.IRapidData'.
Error 3 Structure 'LineData' must implement 'Sub Fill(value As String)' for interface 'ABB.Robotics.Controllers.RapidDomain.IRapidData'.
I've tried writing the funtions and routines it says it requires but this just generates more errors ?????
Here's the code i have written...
Public Structure LineData
Implements IRapidData
Private data As UserDefined
Friend Sub New(ByVal rdt As RapidDataType)
data = New UserDefined(rdt)
End Sub
Private Property ProcessData() As UserDefined
Get
Return data
End Get
Set(ByVal Value As UserDefined)
data = Value
End Set
End Property
Public Property ProdData() As String
Get
Return ProcessData.Components(0).ToString()
End Get
Set(ByVal value As String)
ProcessData.Components(0) = New ABB.Robotics.Controllers.RapidDomain.String(value)
End Set
End Property
Public Property RollCount() As Single
Get
Dim res As Single = Convert.ToSingle(ProcessData.Components(1).ToString())
Return res
End Get
Set(ByVal value As Single)
ProcessData.Components(1).FillFromString(value.ToString())
End Set
End Property
Public Property LayerCount() As Single
Get
Dim res As Single = Convert.ToSingle(ProcessData.Components(2).ToString())
Return res
End Get
Set(ByVal value As Single)
ProcessData.Components(2).FillFromString(value.ToString())
End Set
End Property
Public Property LayerOffset() As Single
Get
Dim res As Single = Convert.ToSingle(ProcessData.Components(3).ToString())
Return res
End Get
Set(ByVal value As Single)
ProcessData.Components(3).FillFromString(value.ToString())
End Set
End Property
Public Sub FillFromString(ByVal newValue As String) Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.FillFromString
ProcessData.FillFromString(newValue)
End Sub
Public Overrides Function ToString() As String Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.ToString
Return ProcessData.ToString()
End Function
End StructureBigM2010-06-08 16:28:38
0
Comments
-
Few hours away from it and i came back refreshed and....the solution...looks like i needed to add this as well...
Public Function ToStructure() As DataNode Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.ToStructure
Return ProcessData.ToStructure()
End Function
Public Sub Fill(ByVal newValue As DataNode) Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.Fill
ProcessData.Fill(newValue)
End Sub
Public Sub fill(ByVal newValue As String) Implements ABB.Robotics.Controllers.RapidDomain.IRapidData.Fill
ProcessData.Fill(newValue)
End Sub0
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)
- 799 RAPID Programming
- AppStudio
- 3 RobotStudio AR Viewer
- 18 Wizard Easy Programming
- 105 Collaborative Robots
- 5 Job listings