EilDLL enhancements
This commit is contained in:
parent
13c03dd807
commit
23e0b8af56
8 changed files with 389 additions and 141 deletions
|
@ -1,17 +1,17 @@
|
||||||
;CANoe Version |4|7|1|38817 ModbusNet
|
;CANoe Version |4|7|1|55217 ModbusNet
|
||||||
Version: 8.2.40 Build 40
|
Version: 8.2.40 Build 40
|
||||||
32 PRO
|
32 PRO
|
||||||
10
|
10
|
||||||
APPDIR Vector.CANoe.Debugger.DLL
|
|
||||||
Vector.CANoe.Debugger, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
|
|
||||||
Vector.CANoe.Debugger.DebuggerComponent
|
|
||||||
1
|
|
||||||
1.0.0
|
|
||||||
APPDIR Vector.CANoe.SignalGenerators.DLL
|
APPDIR Vector.CANoe.SignalGenerators.DLL
|
||||||
Vector.CANoe.SignalGenerators, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
|
Vector.CANoe.SignalGenerators, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
|
||||||
Vector.CANoe.SignalGenerators.ComponentWrapper
|
Vector.CANoe.SignalGenerators.ComponentWrapper
|
||||||
2
|
1
|
||||||
1.0.1
|
1.0.1
|
||||||
|
APPDIR Vector.CANoe.Debugger.DLL
|
||||||
|
Vector.CANoe.Debugger, Version=8.2.40.0, Culture=neutral, PublicKeyToken=null
|
||||||
|
Vector.CANoe.Debugger.DebuggerComponent
|
||||||
|
2
|
||||||
|
1.0.0
|
||||||
VGlobalConfiguration 1 Begin_Of_Object
|
VGlobalConfiguration 1 Begin_Of_Object
|
||||||
17
|
17
|
||||||
VGlobalParameters 2 Begin_Of_Object
|
VGlobalParameters 2 Begin_Of_Object
|
||||||
|
@ -67,6 +67,7 @@ DialogBegin
|
||||||
1
|
1
|
||||||
285 569 816 1103
|
285 569 816 1103
|
||||||
SymbolExplorerDialogBegin
|
SymbolExplorerDialogBegin
|
||||||
|
|
||||||
1
|
1
|
||||||
HistoryBegin
|
HistoryBegin
|
||||||
1 0
|
1 0
|
||||||
|
@ -741,9 +742,9 @@ Begin_Of_Multi_Line_String
|
||||||
Copyright (c) 2001-2006 Actipro Software LLC. All rights reserved.
|
Copyright (c) 2001-2006 Actipro Software LLC. All rights reserved.
|
||||||
http://www.ActiproSoftware.com/Products/DotNet/
|
http://www.ActiproSoftware.com/Products/DotNet/
|
||||||
|
|
||||||
--><ToolWindowLayout Version="1.0"><LayoutData><HostContainerControl><ToolWindowContainer Dock="Right" Size="645, 393" SelectedToolWindowGuid="859d3aae-7aff-47f2-8ca4-bb7d01f32282"><ToolWindow Key="{224229E5-10CA-425F-8B6F-C213CD04C44F}" Guid="859d3aae-7aff-47f2-8ca4-bb7d01f32282" DockedSize="641, 358" FloatingLocation="347, 323" FloatingSize="890, 483" HasOptions="False" ImageIndex="-1" Text="Simulationsaufbau" TitleBarText="Simulationsaufbau"><AutoHideStateInfo RootDock="Right" /><DockedInsideHostStateInfo RootDock="Right" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Left" Size="386, 393" SelectedToolWindowGuid="87323901-fe96-4011-a82f-
|
--><ToolWindowLayout Version="1.0"><LayoutData><HostContainerControl><ToolWindowContainer Dock="Right" Size="652, 393" SelectedToolWindowGuid="859d3aae-7aff-47f2-8ca4-bb7d01f32282"><ToolWindow Key="{224229E5-10CA-425F-8B6F-C213CD04C44F}" Guid="859d3aae-7aff-47f2-8ca4-bb7d01f32282" DockedSize="648, 358" FloatingLocation="347, 323" FloatingSize="890, 483" HasOptions="False" ImageIndex="-1" Text="Simulationsaufbau" TitleBarText="Simulationsaufbau"><AutoHideStateInfo RootDock="Right" /><DockedInsideHostStateInfo RootDock="Right" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Left" Size="510, 393" SelectedToolWindowGuid="87323901-fe96-4011-a82f-
|
||||||
kPersistNoLineBreak
|
kPersistNoLineBreak
|
||||||
0e1b8627507a"><ToolWindow Key="{E6849C53-63F6-4A32-9B1C-7018D50DDE09}" Guid="87323901-fe96-4011-a82f-0e1b8627507a" DockedSize="382, 161" FloatingLocation="6, 66" FloatingSize="677, 213" HasOptions="False" ImageIndex="-1" Text="Daten" TitleBarText="Daten"><AutoHideStateInfo RootDock="Left" /><DockedInsideHostStateInfo RootDock="Left" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Bottom" Size="1192, 285" SelectedToolWindowGuid="ac9be154-bd12-4ff9-b255-03e05277dbe2"><ToolWindow Key="{28077F35-C142-4ACC-B040-1BF0AB026C11}" Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" DockedSize="201, 281" FloatingLocation="111, 442" FloatingSize="1192, 514" Has
|
0e1b8627507a"><ToolWindow Key="{E6849C53-63F6-4A32-9B1C-7018D50DDE09}" Guid="87323901-fe96-4011-a82f-0e1b8627507a" DockedSize="506, 161" FloatingLocation="6, 66" FloatingSize="677, 213" HasOptions="False" ImageIndex="-1" Text="Daten" TitleBarText="Daten"><AutoHideStateInfo RootDock="Left" /><DockedInsideHostStateInfo RootDock="Left" IsAttached="False"><DockedBy Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" RootDock="Bottom" DockOperationType="TopOuter" IsTopMost="True" /><DockedBy Guid="7f29b491-3ada-4572-b140-b422651d6fed" RootDock="Top" DockOperationType="BottomOuter" IsTopMost="True" /></DockedInsideHostStateInfo><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Bottom" Size="1192, 285" SelectedToolWindowGuid="ac9be154-bd12-4ff9-b255-03e05277dbe2"><ToolWindow Key="{28077F35-C142-4ACC-B040-1BF0AB026C11}" Guid="ac9be154-bd12-4ff9-b255-03e05277dbe2" DockedSize="201, 281" FloatingLocation="111, 442" FloatingSize="1192, 514" Has
|
||||||
kPersistNoLineBreak
|
kPersistNoLineBreak
|
||||||
Options="False" ImageIndex="-1" Text="Trace" TitleBarText="Trace"><AutoHideStateInfo RootDock="Bottom" /><DockedInsideHostStateInfo RootDock="Bottom" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Top" Size="1192, 227" SelectedToolWindowGuid="7f29b491-3ada-4572-b140-b422651d6fed"><ToolWindow Key="{8F3DFCAC-9CCB-45C2-AF10-5DEC039B5956}" Guid="7f29b491-3ada-4572-b140-b422651d6fed" DockedSize="201, 223" FloatingLocation="6, 433" FloatingSize="300, 180" HasOptions="False" ImageIndex="-1" Text="Write" TitleBarText="Write"><AutoHideStateInfo RootDock="Top" /><DockedInsideHostStateInfo RootDock="Top" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer></HostContainerControl><AutoHide Dock="Left" /><AutoHide Dock="Right" /><AutoHide Dock="Top" /><AutoHide Dock="Bottom" /><TabbedDocuments Orientation="Horizontal" /><FloatingContainers /><Hidden><ToolWindow K
|
Options="False" ImageIndex="-1" Text="Trace" TitleBarText="Trace"><AutoHideStateInfo RootDock="Bottom" /><DockedInsideHostStateInfo RootDock="Bottom" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer><ToolWindowContainer Dock="Top" Size="1192, 227" SelectedToolWindowGuid="7f29b491-3ada-4572-b140-b422651d6fed"><ToolWindow Key="{8F3DFCAC-9CCB-45C2-AF10-5DEC039B5956}" Guid="7f29b491-3ada-4572-b140-b422651d6fed" DockedSize="201, 223" FloatingLocation="6, 433" FloatingSize="300, 180" HasOptions="False" ImageIndex="-1" Text="Write" TitleBarText="Write"><AutoHideStateInfo RootDock="Top" /><DockedInsideHostStateInfo RootDock="Top" IsAttached="False" /><DockedOutsideHostStateInfo IsAttached="False" /></ToolWindow></ToolWindowContainer></HostContainerControl><AutoHide Dock="Left" /><AutoHide Dock="Right" /><AutoHide Dock="Top" /><AutoHide Dock="Bottom" /><TabbedDocuments Orientation="Horizontal" /><FloatingContainers /><Hidden><ToolWindow K
|
||||||
kPersistNoLineBreak
|
kPersistNoLineBreak
|
||||||
|
@ -925,7 +926,7 @@ VBusStatisticBox 14 Begin_Of_Object
|
||||||
VBoxRoot 15 Begin_Of_Object
|
VBoxRoot 15 Begin_Of_Object
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
1 0 0 1 -1 -1 -1 -1 0 89 662 431
|
1 0 0 1 -1 -1 -1 -1 780 375 999 611
|
||||||
Bus statistic
|
Bus statistic
|
||||||
1
|
1
|
||||||
|
|
||||||
|
@ -953,7 +954,7 @@ END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
1596 747
|
1188 901
|
||||||
END_OF_DESKTOP_DATA
|
END_OF_DESKTOP_DATA
|
||||||
END_OF_DESKTOP_DATA_COLLECTION
|
END_OF_DESKTOP_DATA_COLLECTION
|
||||||
0
|
0
|
||||||
|
@ -1022,7 +1023,7 @@ VUniqueBox 16 Begin_Of_Object
|
||||||
VBoxRoot 17 Begin_Of_Object
|
VBoxRoot 17 Begin_Of_Object
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
1 1 1 1 0 218 -1 -1 196 115 786 460
|
1 1 0 1 -1 -1 -1 -1 1 375 779 615
|
||||||
Graphic
|
Graphic
|
||||||
1
|
1
|
||||||
|
|
||||||
|
@ -1033,10 +1034,10 @@ MDI_DOCK_INFO_END
|
||||||
1 2 0 218 -1 -1 196 115 786 460
|
1 2 0 218 -1 -1 196 115 786 460
|
||||||
6 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
6 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
0
|
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
2 3 -1 -1 -1 -1 243 246 837 595
|
1
|
||||||
|
0 1 -1 -1 -1 -1 157 147 751 496
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
95 389
|
95 389
|
||||||
|
@ -1050,7 +1051,7 @@ END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
1596 747
|
1188 901
|
||||||
END_OF_DESKTOP_DATA
|
END_OF_DESKTOP_DATA
|
||||||
END_OF_DESKTOP_DATA_COLLECTION
|
END_OF_DESKTOP_DATA_COLLECTION
|
||||||
0
|
0
|
||||||
|
@ -1195,7 +1196,7 @@ End_Of_Serialized_Data 15
|
||||||
End_Of_Object VPredefinedSignalObject 15
|
End_Of_Object VPredefinedSignalObject 15
|
||||||
[MeasurementObject]
|
[MeasurementObject]
|
||||||
Eth 1::Rx Bus load
|
Eth 1::Rx Bus load
|
||||||
"%" 1 800080 -2.3237864 -1.8705227 -100. 100. 0.02 -5 0 0 36000000 1 1 0 0
|
"%" 1 800080 -2.3237864 -1.8705227 -100. 100. 0.1 -5 0 0 36000000 1 1 0 0
|
||||||
VPredefinedSignalObject 15 Begin_Of_Object
|
VPredefinedSignalObject 15 Begin_Of_Object
|
||||||
1
|
1
|
||||||
VHostSignal 16 Begin_Of_Object
|
VHostSignal 16 Begin_Of_Object
|
||||||
|
@ -1246,7 +1247,7 @@ End_Of_Serialized_Data 15
|
||||||
End_Of_Object VPredefinedSignalObject 15
|
End_Of_Object VPredefinedSignalObject 15
|
||||||
[MeasurementObject]
|
[MeasurementObject]
|
||||||
Eth 1::Tx Bus load
|
Eth 1::Tx Bus load
|
||||||
"%" 1 80 -2.3237864 -1.8705227 -100. 100. 0.02 -5 0 0 36000000 1 1 0 0
|
"%" 1 80 -2.3237864 -1.8705227 -100. 100. 0.1 -5 0 0 36000000 1 1 0 0
|
||||||
VPredefinedSignalObject 15 Begin_Of_Object
|
VPredefinedSignalObject 15 Begin_Of_Object
|
||||||
1
|
1
|
||||||
VHostSignal 16 Begin_Of_Object
|
VHostSignal 16 Begin_Of_Object
|
||||||
|
@ -1297,7 +1298,7 @@ End_Of_Serialized_Data 15
|
||||||
End_Of_Object VPredefinedSignalObject 15
|
End_Of_Object VPredefinedSignalObject 15
|
||||||
[MeasurementObject]
|
[MeasurementObject]
|
||||||
Eth 1::Rx Packet rate
|
Eth 1::Rx Packet rate
|
||||||
"pkt/s" 1 800000 0. 10000. -100. 100. 500 -5 0 0 36000000 1 1 0 0
|
"pkt/s" 1 800000 0. 10000. -100. 100. 2000 -5 0 0 36000000 1 1 0 0
|
||||||
VPredefinedSignalObject 15 Begin_Of_Object
|
VPredefinedSignalObject 15 Begin_Of_Object
|
||||||
1
|
1
|
||||||
VHostSignal 16 Begin_Of_Object
|
VHostSignal 16 Begin_Of_Object
|
||||||
|
@ -1348,9 +1349,9 @@ End_Of_Serialized_Data 15
|
||||||
End_Of_Object VPredefinedSignalObject 15
|
End_Of_Object VPredefinedSignalObject 15
|
||||||
[MeasurementObject]
|
[MeasurementObject]
|
||||||
Eth 1::Tx Packet rate
|
Eth 1::Tx Packet rate
|
||||||
"pkt/s" 1 808000 0. 10000. -100. 100. 500 -5 0 0 36000000 1 1 0 0
|
"pkt/s" 1 808000 0. 10000. -100. 100. 2000 -5 0 0 36000000 1 1 0 0
|
||||||
[GraphWindow:x_x_x_x_x_x_WindowBk_Grid_AxisBk_XAxisFr_YAxisFr_x_x_x_x_x_x]
|
[GraphWindow:x_x_x_x_x_x_WindowBk_Grid_AxisBk_XAxisFr_YAxisFr_x_x_x_x_x_x]
|
||||||
0 26415.43074 26415.43074 200000 36000000 1 ffffff b2b2b2 ffffff 0 0 0 0 1 1 1 0
|
118499.99004 144915.42077999999 26415.43074 200000 36000000 1 ffffff b2b2b2 ffffff 0 0 0 0 1 1 1 0
|
||||||
0 30 5000
|
0 30 5000
|
||||||
0
|
0
|
||||||
0 100
|
0 100
|
||||||
|
@ -1432,7 +1433,7 @@ Tahoma
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
913
|
222
|
||||||
0 10
|
0 10
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
@ -1625,10 +1626,7 @@ End_Of_Serialized_Data 14
|
||||||
16
|
16
|
||||||
0
|
0
|
||||||
17
|
17
|
||||||
1
|
0
|
||||||
14
|
|
||||||
ver=2: FT
|
|
||||||
End_Of_Serialized_Data 14
|
|
||||||
18
|
18
|
||||||
0
|
0
|
||||||
19
|
19
|
||||||
|
@ -3536,12 +3534,12 @@ Trace Window
|
||||||
End_Of_Object VLogExportPersister 15
|
End_Of_Object VLogExportPersister 15
|
||||||
|
|
||||||
End_Of_Serialized_Data 14
|
End_Of_Serialized_Data 14
|
||||||
1
|
2
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
290
|
290
|
||||||
1
|
1
|
||||||
160
|
309
|
||||||
<VFileName V4 QL> 1 ""
|
<VFileName V4 QL> 1 ""
|
||||||
End_Of_Object VTraceControlCfg 14
|
End_Of_Object VTraceControlCfg 14
|
||||||
VNETTraceControlBox 14 Begin_Of_Object
|
VNETTraceControlBox 14 Begin_Of_Object
|
||||||
|
@ -3553,7 +3551,7 @@ VUniqueBox 16 Begin_Of_Object
|
||||||
VBoxRoot 17 Begin_Of_Object
|
VBoxRoot 17 Begin_Of_Object
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
1 3 0 1 -1 -1 -1 -1 -15 105 1285 623
|
1 2 0 1 -1 -1 -1 -1 22 7 1322 571
|
||||||
|
|
||||||
1
|
1
|
||||||
|
|
||||||
|
@ -3565,14 +3563,14 @@ MDI_DOCK_INFO_END
|
||||||
6 1 0 0 0 0 0 0 1192 514 0 0 1 36756 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 111 442 1 0 0 0 1 281 0 59422 1
|
6 1 0 0 0 0 0 0 1192 514 0 0 1 36756 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 111 442 1 0 0 0 1 281 0 59422 1
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
1
|
1
|
||||||
3
|
2
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
1188 696
|
1188 696
|
||||||
END_OF_DESKTOP_DATA
|
END_OF_DESKTOP_DATA
|
||||||
6
|
6
|
||||||
0 1 -1 -1 -1 -1 22 7 1450 571
|
0 1 -1 -1 -1 -1 22 7 1322 571
|
||||||
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
1
|
1
|
||||||
|
@ -3580,7 +3578,7 @@ END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
1596 747
|
1188 901
|
||||||
END_OF_DESKTOP_DATA
|
END_OF_DESKTOP_DATA
|
||||||
END_OF_DESKTOP_DATA_COLLECTION
|
END_OF_DESKTOP_DATA_COLLECTION
|
||||||
0
|
0
|
||||||
|
@ -3889,7 +3887,7 @@ MDI_DOCK_INFO_END
|
||||||
1
|
1
|
||||||
6
|
6
|
||||||
0 1 -1 -1 -8 -30 -138 106 539 323
|
0 1 -1 -1 -8 -30 -138 106 539 323
|
||||||
6 1 0 0 0 0 0 0 677 213 0 0 1 8084 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 6 66 1 0 0 0 1 382 0 59420 1
|
6 1 0 0 0 0 0 0 677 213 0 0 1 8084 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 6 66 1 0 0 0 1 506 0 59420 1
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
@ -3903,7 +3901,7 @@ END_OF_DESKTOP_DATA
|
||||||
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
-1
|
2
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
|
@ -4572,7 +4570,7 @@ MDI_DOCK_INFO_END
|
||||||
1
|
1
|
||||||
6
|
6
|
||||||
0 1 -1 -1 -8 -30 0 0 890 487
|
0 1 -1 -1 -8 -30 0 0 890 487
|
||||||
6 1 0 0 0 0 0 0 890 483 0 0 1 20372 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 347 323 1 0 0 0 1 641 0 59421 1
|
6 1 0 0 0 0 0 0 890 483 0 0 1 20372 1904 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 347 323 1 0 0 0 1 648 0 59421 1
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
|
@ -4631,7 +4629,7 @@ End_Of_Object VGrMnBox 3
|
||||||
VDOLocalInfoStruct 3 Begin_Of_Object
|
VDOLocalInfoStruct 3 Begin_Of_Object
|
||||||
3
|
3
|
||||||
1
|
1
|
||||||
203
|
211
|
||||||
VDAOBus 4 Begin_Of_Object
|
VDAOBus 4 Begin_Of_Object
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
|
@ -4899,7 +4897,7 @@ VBoxRoot 12 Begin_Of_Object
|
||||||
1
|
1
|
||||||
3
|
3
|
||||||
1 -1 0 1 -1 -1 -1 -1 35 -12 567 364
|
1 -1 0 1 -1 -1 -1 -1 35 -12 567 364
|
||||||
Debugger - Programm: Client_2 [Debugging ausgeschaltet]
|
Debugger - Client_2
|
||||||
1
|
1
|
||||||
|
|
||||||
MDI_DOCK_INFO_END
|
MDI_DOCK_INFO_END
|
||||||
|
@ -5129,7 +5127,7 @@ VSimulinkModelViewerConfiguration 7 Begin_Of_Object
|
||||||
End_Of_Object VSimulinkModelViewerConfiguration 7
|
End_Of_Object VSimulinkModelViewerConfiguration 7
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
1716208489
|
327433878
|
||||||
0
|
0
|
||||||
NodeSignalPanelBustypeCount 0
|
NodeSignalPanelBustypeCount 0
|
||||||
End_Of_Object VSimulationNode 6
|
End_Of_Object VSimulationNode 6
|
||||||
|
@ -5185,7 +5183,7 @@ END_OF_DESKTOP_DATA
|
||||||
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
2
|
1
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
|
@ -5388,7 +5386,7 @@ NULL
|
||||||
End_Of_Object VDOLocalInfoStruct 3
|
End_Of_Object VDOLocalInfoStruct 3
|
||||||
0.000000
|
0.000000
|
||||||
0 0
|
0 0
|
||||||
1 1 0 59420 1 176 1 2882400001 639 815 319 694 2882400002 0 0 0 0 0 0 1 2882400001 1280 1280 321 321 2882400002 0 0 0 0 0 0 3
|
1 1 0 59420 1 176 1 2882400001 632 808 319 694 2882400002 0 0 0 0 0 0 1 2882400001 1280 1280 321 321 2882400002 0 55 0 0 0 0 3
|
||||||
SS_BEGIN_COMMON_INFO
|
SS_BEGIN_COMMON_INFO
|
||||||
1
|
1
|
||||||
0
|
0
|
||||||
|
@ -5400,7 +5398,7 @@ Ether1
|
||||||
11
|
11
|
||||||
1
|
1
|
||||||
1
|
1
|
||||||
492214664 1 0 1 0 1 1 0 0 0 2000 1
|
487858576 1 0 1 0 1 1 0 105 35 2000 1
|
||||||
SS_BEGIN_COMMON_INFO
|
SS_BEGIN_COMMON_INFO
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
|
@ -5427,7 +5425,7 @@ VUniqueBox 3 Begin_Of_Object
|
||||||
VBoxRoot 4 Begin_Of_Object
|
VBoxRoot 4 Begin_Of_Object
|
||||||
1
|
1
|
||||||
3
|
3
|
||||||
0 2 0 1 -1 -1 -8 -30 162 249 890 645
|
0 3 0 1 -1 -1 -1 -1 117 403 779 746
|
||||||
Write
|
Write
|
||||||
1
|
1
|
||||||
|
|
||||||
|
@ -5439,14 +5437,14 @@ MDI_DOCK_INFO_END
|
||||||
6 1 1010 180 0 0 300 180 300 180 0 61440 1 12180 1904 0 0 0 0 260 0 0 0 1 5 32767 1 59422 1 5 1011 185 4 6 433 1 10 0 0 1 223 0 59419 1
|
6 1 1010 180 0 0 300 180 300 180 0 61440 1 12180 1904 0 0 0 0 260 0 0 0 1 5 32767 1 59422 1 5 1011 185 4 6 433 1 10 0 0 1 223 0 59419 1
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
1
|
1
|
||||||
2
|
3
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
1188 901
|
1188 901
|
||||||
END_OF_DESKTOP_DATA
|
END_OF_DESKTOP_DATA
|
||||||
6
|
6
|
||||||
0 1 -1 -1 -1 -1 22 272 684 615
|
0 1 -1 -1 -1 -1 117 403 779 746
|
||||||
6 0 1010 180 0 0 300 180 300 180 0 61440 1 12181 1904 0 0 0 0 260 1 0 0 -1 -1 32767 0 59422 0 0 0 0 0 0 0 1 10 0 0 1 229 0 59419 1
|
6 0 1010 180 0 0 300 180 300 180 0 61440 1 12181 1904 0 0 0 0 260 1 0 0 -1 -1 32767 0 59422 0 0 0 0 0 0 0 1 10 0 0 1 229 0 59419 1
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
1
|
1
|
||||||
|
@ -5454,7 +5452,7 @@ END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
1
|
1
|
||||||
1596 747
|
1188 901
|
||||||
END_OF_DESKTOP_DATA
|
END_OF_DESKTOP_DATA
|
||||||
END_OF_DESKTOP_DATA_COLLECTION
|
END_OF_DESKTOP_DATA_COLLECTION
|
||||||
0
|
0
|
||||||
|
@ -5831,6 +5829,8 @@ FiltersEnd
|
||||||
1 1
|
1 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
END_OF_WORKSPACE_MEMBER_DATA
|
END_OF_WORKSPACE_MEMBER_DATA
|
||||||
END_OF_WORKSPACE_MEMBER
|
END_OF_WORKSPACE_MEMBER
|
||||||
1
|
1
|
||||||
|
@ -6428,7 +6428,7 @@ END_OF_DESKTOP_DATA
|
||||||
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 -1 32767 0 0 0 0 0 0 0 0 0 0 -1 -1 0 0 0 0 0 0
|
||||||
END_OF_DOCK_INFO
|
END_OF_DOCK_INFO
|
||||||
0
|
0
|
||||||
-1
|
1
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
0
|
0
|
||||||
|
|
Binary file not shown.
|
@ -91,7 +91,7 @@ void EilConnectTo2()
|
||||||
if (gPacket == 0)
|
if (gPacket == 0)
|
||||||
{
|
{
|
||||||
gSocketState = ERROR;
|
gSocketState = ERROR;
|
||||||
writeDbg(ConnError, "EthInitPacket: Could not create UDP packet: %d", EthGetLastError());
|
writeDbg(ConnError, "EthInitPacket: Could not create Modbus packet: %d", EthGetLastError());
|
||||||
OnModbusClientPanics(ConnectionError);
|
OnModbusClientPanics(ConnectionError);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -144,8 +144,8 @@ byte EilSnd(byte buffer[], word length)
|
||||||
bin_to_strhex(buffer, str);
|
bin_to_strhex(buffer, str);
|
||||||
writeDbg(ConnDebug, "EilSnd: %s (Länge: %d)", str, length);
|
writeDbg(ConnDebug, "EilSnd: %s (Länge: %d)", str, length);
|
||||||
|
|
||||||
EthResizeToken(gPacket, "udp", "data" , length*8);
|
EthResizeToken(gPacket, "modbus", "data" , length*8);
|
||||||
EthSetTokenData(gPacket, "udp", "data" , length, buffer);
|
EthSetTokenData(gPacket, "modbus", "data" , length, buffer);
|
||||||
|
|
||||||
EthCompletePacket(gPacket);
|
EthCompletePacket(gPacket);
|
||||||
EthOutputPacket(gPacket);
|
EthOutputPacket(gPacket);
|
||||||
|
|
|
@ -57,6 +57,7 @@ void ModbusReadBits(word address, word count)
|
||||||
{
|
{
|
||||||
const byte length = __size_of(struct ModbusReqRead);
|
const byte length = __size_of(struct ModbusReqRead);
|
||||||
const byte funcCode = 0x01;
|
const byte funcCode = 0x01;
|
||||||
|
byte buffer[length];
|
||||||
struct ModbusReqRead mbr;
|
struct ModbusReqRead mbr;
|
||||||
|
|
||||||
mbr.Address = address;
|
mbr.Address = address;
|
||||||
|
@ -69,7 +70,7 @@ void ModbusReadBits(word address, word count)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusReadBits>
|
/// <ModbusReadBits>
|
||||||
void OnModbusReceiveBits(byte buffer[])
|
void OnModbusReceiveBits(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResReceiveBits mbres;
|
struct ModbusResReceiveBits mbres;
|
||||||
struct ModbusReqRead mbreq;
|
struct ModbusReqRead mbreq;
|
||||||
|
@ -78,7 +79,7 @@ void OnModbusReceiveBits(byte buffer[])
|
||||||
byte i, j;
|
byte i, j;
|
||||||
|
|
||||||
memcpy_n2h(mbres, buffer);
|
memcpy_n2h(mbres, buffer);
|
||||||
memcpy_n2h(mbreq, gQueueAck[mbres.Header.TxID].Buffer);
|
memcpy_n2h(mbreq, gQueueAck[mbap.TxID].Buffer);
|
||||||
|
|
||||||
writeDbg(MbDebug, "Received %d bits from 0x%04X", mbreq.Count, mbreq.Address);
|
writeDbg(MbDebug, "Received %d bits from 0x%04X", mbreq.Count, mbreq.Address);
|
||||||
|
|
||||||
|
@ -123,13 +124,13 @@ void ModbusReadRegisters(word address, word count) // 16 bit
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusReadRegisters>
|
/// <ModbusReadRegisters>
|
||||||
void OnModbusReceiveRegisters(byte buffer[])
|
void OnModbusReceiveRegisters(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResReceiveRegisters mbres;
|
struct ModbusResReceiveRegisters mbres;
|
||||||
struct ModbusReqRead mbreq;
|
struct ModbusReqRead mbreq;
|
||||||
|
|
||||||
memcpy_n2h(mbres, buffer);
|
memcpy_n2h(mbres, buffer);
|
||||||
memcpy_n2h(mbreq, gQueueAck[mbres.Header.TxID].Buffer);
|
memcpy_n2h(mbreq, gQueueAck[mbap.TxID].Buffer);
|
||||||
|
|
||||||
writeDbg(MbDebug, "Received %d registers from 0x%04X", mbreq.Count, mbreq.Address);
|
writeDbg(MbDebug, "Received %d registers from 0x%04X", mbreq.Count, mbreq.Address);
|
||||||
|
|
||||||
|
@ -169,7 +170,7 @@ void ModbusWriteBit(word address, byte value)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusWriteBit>
|
/// <ModbusWriteBit>
|
||||||
void OnModbusConfirmBit(byte buffer[])
|
void OnModbusConfirmBit(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResConfirmSingle mbc;
|
struct ModbusResConfirmSingle mbc;
|
||||||
|
|
||||||
|
@ -210,7 +211,7 @@ void ModbusWriteRegister(word address, int value)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusWriteRegister>
|
/// <ModbusWriteRegister>
|
||||||
void OnModbusConfirmRegister(byte buffer[])
|
void OnModbusConfirmRegister(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResConfirmSingle mbc;
|
struct ModbusResConfirmSingle mbc;
|
||||||
|
|
||||||
|
@ -300,7 +301,7 @@ void ModbusWriteBitsB(word address, word count, byte values[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusWriteBits>
|
/// <ModbusWriteBits>
|
||||||
void OnModbusConfirmBits(byte buffer[])
|
void OnModbusConfirmBits(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResConfirmMultiple mbc;
|
struct ModbusResConfirmMultiple mbc;
|
||||||
|
|
||||||
|
@ -350,7 +351,7 @@ void ModbusWriteRegisters(word address, word count, word values[])
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusWriteRegisters>
|
/// <ModbusWriteRegisters>
|
||||||
void OnModbusConfirmRegisters(byte buffer[])
|
void OnModbusConfirmRegisters(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResConfirmMultiple mbc;
|
struct ModbusResConfirmMultiple mbc;
|
||||||
|
|
||||||
|
@ -391,7 +392,7 @@ void ModbusWriteMasks(word address, word and, word or)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusWriteMasks>
|
/// <ModbusWriteMasks>
|
||||||
void OnModbusConfirmMasks(byte buffer[])
|
void OnModbusConfirmMasks(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResConfirmMasks mbc;
|
struct ModbusResConfirmMasks mbc;
|
||||||
|
|
||||||
|
@ -442,13 +443,13 @@ void ModbusReadWriteRegisters(word readAddress, word readCount, word writeAddres
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <ModbusReadWriteRegisters>
|
/// <ModbusReadWriteRegisters>
|
||||||
void OnModbusReceiveConfirmRegisters(byte buffer[])
|
void OnModbusReceiveConfirmRegisters(struct ModbusApHeader mbap, byte buffer[])
|
||||||
{
|
{
|
||||||
struct ModbusResReceiveRegisters mbres;
|
struct ModbusResReceiveRegisters mbres;
|
||||||
struct ModbusReqRead mbreq;
|
struct ModbusReqRead mbreq;
|
||||||
|
|
||||||
memcpy_n2h(mbres, buffer);
|
memcpy_n2h(mbres, buffer);
|
||||||
memcpy_n2h(mbreq, gQueueAck[mbres.Header.TxID].Buffer);
|
memcpy_n2h(mbreq, gQueueAck[mbap.TxID].Buffer);
|
||||||
|
|
||||||
writeDbg(MbDebug, "Wrote some registers and received %d registers from 0x%04X", mbreq.Count, mbreq.Address);
|
writeDbg(MbDebug, "Wrote some registers and received %d registers from 0x%04X", mbreq.Count, mbreq.Address);
|
||||||
|
|
||||||
|
@ -470,86 +471,44 @@ void OnModbusReceiveConfirmRegistersException(struct ModbusApHeader mbap, enum M
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------
|
||||||
// REGION: OnModbusReceive ------------------------------------------------------------
|
// REGION: OnModbusReceive ------------------------------------------------------------
|
||||||
/// <-OnModbusReceive>
|
|
||||||
void OnModbusReceive(dword socket, long result, dword address, dword port, byte buffer[], dword size)
|
|
||||||
{
|
|
||||||
writeDbg(ConnDebug, "OnModbusReceive: Received %d bytes", size);
|
|
||||||
if (result == 0)
|
|
||||||
{
|
|
||||||
if (size == 0)
|
|
||||||
{
|
|
||||||
// Size of zero indicates that the socket was closed by the communication peer.
|
|
||||||
writeDbg(ConnWarning, "OnModbusReceive: Socket closed by peer");
|
|
||||||
ModbusDisconnect();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
// Sucessfully received some bytes over the TCP/IP connection.
|
|
||||||
OnModbusReceive2(buffer, size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
gIpLastErr = ModbusGetLastConnectionError(gIpLastErrStr);
|
|
||||||
writeDbg(ConnError, "OnModbusReceive error (%d): %s", gIpLastErr, gIpLastErrStr);
|
|
||||||
ModbusDisconnect();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <-OnModbusReceive>
|
/// <-OnModbusReceive>
|
||||||
void OnModbusReceive2(byte buffer[], dword size)
|
void OnModbusReceive2(long packet)
|
||||||
{
|
{
|
||||||
struct ModbusApHeader mbap;
|
struct ModbusApHeader mbap;
|
||||||
int offset;
|
byte buffer[gMaxPacketLength];
|
||||||
char str[3*20];
|
long size; // packet size in bits
|
||||||
|
//char str[3*20];
|
||||||
|
byte header[__size_of(struct ModbusApHeader)];
|
||||||
|
|
||||||
if (size < 8) // No complete Modbus Application Header
|
size = EthGetThisData(0, gMaxPacketLength, buffer);
|
||||||
return;
|
EthGetTokenData(packet, "modbus", "header", __size_of(struct ModbusApHeader), header); // TODO: EthGetTokenData does not handle endianness :( /////////////////////////////////////////////////
|
||||||
|
memcpy_n2h(mbap, header);
|
||||||
|
|
||||||
offset = 0;
|
//bin_to_strhex(header, str);
|
||||||
do
|
//writeDbg(MbError, "Header: %s", str);
|
||||||
{
|
//writeDbg(MbError, "Header Length: 0x%X", mbap.Length);
|
||||||
writeDbg(ConnDebug, "OnModbusReceive2: Offset pre = %d", offset);
|
OnModbusReceive2OnePacket(buffer, size, mbap);
|
||||||
memcpy_n2h(mbap, buffer, offset);
|
|
||||||
OnModbusReceive2OnePacket(buffer, offset, mbap);
|
|
||||||
|
|
||||||
offset += __offset_of(struct ModbusApHeader, UnitID) + mbap.Length;
|
|
||||||
writeDbg(ConnDebug, "OnModbusReceive2: offset post = %d. %d <= %d?", offset, offset, size-8);
|
|
||||||
}
|
|
||||||
while(offset <= size-8); // We need at least 8 bytes for a new packet
|
|
||||||
writeDbg(ConnDebug, "OnModbusReceive2: yes. finished");
|
|
||||||
|
|
||||||
if (offset != size) // Can be removed.
|
|
||||||
{
|
|
||||||
bin_to_strhex(buffer, str);
|
|
||||||
writeDbg(ConnError, "OnModbusReceive2: Error while going through receive buffer. Our final offset is %d, but the size of the buffer is %d! Buffer: %s", offset, size, str);
|
|
||||||
OnModbusClientPanics(ParsingBuffer);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <-OnModbusReceive>
|
/// <-OnModbusReceive>
|
||||||
void OnModbusReceive2OnePacket(byte buffer[], int offset, struct ModbusApHeader mbap)
|
void OnModbusReceive2OnePacket(byte buffer[], long size, struct ModbusApHeader mbap)
|
||||||
{
|
{
|
||||||
// Test transaction identifier?
|
// Test transaction identifier?
|
||||||
// Test unit/device identifier?
|
// Test unit/device identifier?
|
||||||
word i; // counter
|
word i; // counter
|
||||||
word length; // length of current packet
|
|
||||||
byte mbuffer[__size_of(struct ModbusResReceiveRegisters)]; // second buffer where we copy the message. This way the user won't overwrite other packages.
|
|
||||||
|
|
||||||
length = __offset_of(struct ModbusApHeader, UnitID) + mbap.Length;
|
if (mbap.Length-2 != size)
|
||||||
// We cannot check this properly anymore. We have to trust the TCP/UDP stack and the sender... *sigh*
|
{
|
||||||
|
writeDbg(ConnError, "OnModbusReceive2OnePAcket: Packet payload length (%d) is different from specified length (%d)!", size, mbap.Length-2);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (mbap.Protocol != 0) // Protocol is not Modbus (0x0000). Wayne.
|
if (mbap.Protocol != 0) // Protocol is not Modbus (0x0000). Wayne.
|
||||||
{
|
{
|
||||||
writeDbg(ConnDebug, "OnModbusReceive2OnePacket: packet is no Modbus packet: Protocol = %d", mbap.Protocol);
|
writeDbg(ConnDebug, "OnModbusReceive2OnePacket: packet is no Modbus packet: Protocol = %d", mbap.Protocol);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (elCount(buffer) < offset + length) // packet larger than the (rest of the) buffer
|
|
||||||
{
|
|
||||||
writeDbg(ConnError, "OnModbusReceive2OnePacket: packet did not fit into Buffer: buffer length = %d, packet length = %d, offset = %d", elCount(buffer), __offset_of(struct ModbusApHeader, UnitID) + mbap.Length, offset);
|
|
||||||
// I REALLY don't want to assemble the two package fragments.
|
|
||||||
OnModbusClientPanics(ModbusPackageWasSplit);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// MBAP Header is OK :) Go on
|
// MBAP Header is OK :) Go on
|
||||||
|
|
||||||
if (!gQueueSent.ContainsKey(mbap.TxID)) // We don't wait for this message!
|
if (!gQueueSent.ContainsKey(mbap.TxID)) // We don't wait for this message!
|
||||||
|
@ -561,45 +520,41 @@ void OnModbusReceive2OnePacket(byte buffer[], int offset, struct ModbusApHeader
|
||||||
|
|
||||||
if (mbap.FuncCode > 0x80) // Oh no, we got a exception!
|
if (mbap.FuncCode > 0x80) // Oh no, we got a exception!
|
||||||
{
|
{
|
||||||
OnModbusReceive2Exceptions(buffer[offset+08], mbap);
|
OnModbusReceive2Exceptions(buffer[0], mbap);
|
||||||
|
|
||||||
gQueueAck.Remove(mbap.TxID); // Remove from acknowledge queue
|
gQueueAck.Remove(mbap.TxID); // Remove from acknowledge queue
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Copy the message
|
|
||||||
memcpy_off(mbuffer, 0, buffer, offset, length);
|
|
||||||
|
|
||||||
// Let's give the PDU to the corresponding function
|
// Let's give the PDU to the corresponding function
|
||||||
switch (mbap.FuncCode)
|
switch (mbap.FuncCode)
|
||||||
{
|
{
|
||||||
case 0x01:
|
case 0x01:
|
||||||
case 0x02:
|
case 0x02:
|
||||||
OnModbusReceiveBits(mbuffer);
|
OnModbusReceiveBits(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x03:
|
case 0x03:
|
||||||
case 0x04:
|
case 0x04:
|
||||||
OnModbusReceiveRegisters(mbuffer);
|
OnModbusReceiveRegisters(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x05:
|
case 0x05:
|
||||||
OnModbusConfirmBit(mbuffer);
|
OnModbusConfirmBit(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x06:
|
case 0x06:
|
||||||
OnModbusConfirmRegister(mbuffer);
|
OnModbusConfirmRegister(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x0F:
|
case 0x0F:
|
||||||
OnModbusConfirmBits(mbuffer);
|
OnModbusConfirmBits(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x10:
|
case 0x10:
|
||||||
OnModbusConfirmRegisters(mbuffer);
|
OnModbusConfirmRegisters(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x16:
|
case 0x16:
|
||||||
OnModbusConfirmMasks(mbuffer);
|
OnModbusConfirmMasks(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
case 0x17:
|
case 0x17:
|
||||||
OnModbusReceiveConfirmRegisters(mbuffer);
|
OnModbusReceiveConfirmRegisters(mbap, buffer);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
writeDbg(MbError, "OnModbusReceive2OnePacket: We received funcCode 0x%X!?", mbap.FuncCode);
|
writeDbg(MbError, "OnModbusReceive2OnePacket: We received funcCode 0x%X!?", mbap.FuncCode);
|
||||||
|
@ -744,6 +699,8 @@ on timer gtRobin
|
||||||
if (gQueueSent.Size() > 4) // Wago 750-881 cannot handle more than 5 messages at a time :(
|
if (gQueueSent.Size() > 4) // Wago 750-881 cannot handle more than 5 messages at a time :(
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
EthSetTokenInt(gPacket, "modbus", "TxId", TxID);
|
||||||
|
EthSetTokenInt(gPacket, "modbus", "FuncCode", gQueuePending[TxID].FuncCode);
|
||||||
// if packet was sent or the socket is not currently being opened
|
// if packet was sent or the socket is not currently being opened
|
||||||
if (ModbusSnd(gQueuePending[TxID].Buffer, gQueuePending[TxID].Length) == 0 || gSocketState != NULL)
|
if (ModbusSnd(gQueuePending[TxID].Buffer, gQueuePending[TxID].Length) == 0 || gSocketState != NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -38,8 +38,6 @@ long ModbusGetLastConnectionError(char string[])
|
||||||
|
|
||||||
void OnEthReceivePacket(long channel, long dir, long packet)
|
void OnEthReceivePacket(long channel, long dir, long packet)
|
||||||
{
|
{
|
||||||
byte buffer[gMaxPacketLength];
|
|
||||||
long size;
|
|
||||||
|
|
||||||
if (dir == TX)
|
if (dir == TX)
|
||||||
return;
|
return;
|
||||||
|
@ -58,7 +56,6 @@ void OnEthReceivePacket(long channel, long dir, long packet)
|
||||||
|
|
||||||
if (EthGetTokenInt(packet, "ipv4", "protocol") == 0x11 && EthGetTokenInt(packet, "ipv4", "source") == gRemoteIP) // if this is a UDP package from our server
|
if (EthGetTokenInt(packet, "ipv4", "protocol") == 0x11 && EthGetTokenInt(packet, "ipv4", "source") == gRemoteIP) // if this is a UDP package from our server
|
||||||
{
|
{
|
||||||
size = EthGetThisData(0, gMaxPacketLength, buffer);
|
OnModbusReceive2(packet);
|
||||||
OnModbusReceive(0, 0, EthGetTokenInt(packet, "ipv4", "source"), gRemoteIP, buffer, size);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -38,9 +38,9 @@ BU_: Client_2
|
||||||
|
|
||||||
BO_ 3 ReadRegisters: 8 Vector__XXX
|
BO_ 3 ReadRegisters: 8 Vector__XXX
|
||||||
|
|
||||||
BO_ 16908289 Client_2_RecBits: 1 Vector__XXX
|
BO_ 16908289 Client_2_RecBits: 2 Vector__XXX
|
||||||
SG_ DI2 : 1|1@1- (1,0) [0|0] "" Client_2
|
SG_ DI2 : 9|1@1+ (1,0) [0|0] "" Client_2
|
||||||
SG_ DI1 : 0|1@1- (1,0) [0|0] "" Client_2
|
SG_ DI1 : 8|1@1+ (1,0) [0|0] "" Client_2
|
||||||
|
|
||||||
BO_ 16908417 Client_2_Ex81: 1 Vector__XXX
|
BO_ 16908417 Client_2_Ex81: 1 Vector__XXX
|
||||||
SG_ ExCode : 0|8@1+ (1,0) [0|4] "" Client_2
|
SG_ ExCode : 0|8@1+ (1,0) [0|4] "" Client_2
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
<namespace name="Modbus" comment="">
|
<namespace name="Modbus" comment="">
|
||||||
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="ms" name="RequestTimeout" comment="The maximum duration for a Modbus-UDP/-TCP request in milliseconds. After timeout a retransmission may be started (see MaxRetransmissionCount). Use `ping` to get the maximum latency to a device, double it and add 2-3 ms for processing." bitcount="32" isSigned="true" encoding="65001" type="int" startValue="7" minValue="1" minValuePhys="1" maxValue="1000" maxValuePhys="1000" />
|
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="ms" name="RequestTimeout" comment="The maximum duration for a Modbus-UDP/-TCP request in milliseconds. After timeout a retransmission may be started (see MaxRetransmissionCount). Use `ping` to get the maximum latency to a device, double it and add 2-3 ms for processing." bitcount="32" isSigned="true" encoding="65001" type="int" startValue="7" minValue="1" minValuePhys="1" maxValue="1000" maxValuePhys="1000" />
|
||||||
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="Port" comment="" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="502" minValue="1" minValuePhys="1" maxValue="65535" maxValuePhys="65535" />
|
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="Port" comment="" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="502" minValue="1" minValuePhys="1" maxValue="65535" maxValuePhys="65535" />
|
||||||
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="times" name="MaxTransmissionCount" comment="How often a retransmission of a request will be sent until it gets discarded and an error is thrown." bitcount="32" isSigned="true" encoding="65001" type="int" startValue="2" minValue="1" minValuePhys="1" maxValue="10" maxValuePhys="10" />
|
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="times" name="MaxTransmissionCount" comment="How often a retransmission of a request will be sent until it gets discarded and an error is thrown." bitcount="32" isSigned="true" encoding="65001" type="int" startValue="1" minValue="1" minValuePhys="1" maxValue="10" maxValuePhys="10" />
|
||||||
</namespace>
|
</namespace>
|
||||||
<namespace name="TcpIp" comment="">
|
<namespace name="TcpIp" comment="">
|
||||||
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="AdapterIndex" comment="Index of network interface to use" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="2" minValue="1" minValuePhys="1" maxValue="20" maxValuePhys="20" />
|
<variable anlyzLocal="2" readOnly="false" valueSequence="false" unit="" name="AdapterIndex" comment="Index of network interface to use" bitcount="32" isSigned="true" encoding="65001" type="int" startValue="2" minValue="1" minValuePhys="1" maxValue="20" maxValuePhys="20" />
|
||||||
|
|
|
@ -1,6 +1,27 @@
|
||||||
Registered Modbus for UDP
|
Registered Modbus for UDP
|
||||||
Initializing Defining fields MyProtocolId = 4896.
|
Initializing Defining fields MyProtocolId = 4896.
|
||||||
InitProtocol.
|
InitProtocol.
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 00 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 00 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 00 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 00 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
Data = 00 01 00 00 00 06 ff 01 00 00 00 02
|
Data = 00 01 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
@ -22,3 +43,276 @@ ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
--> byteOffset = 50, byteLength = 2
|
--> byteOffset = 50, byteLength = 2
|
||||||
--> ContentId = 1020001.
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 02 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 02 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 02 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 02 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 03 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 03 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 03 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 03 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 04 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 04 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 04 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 04 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 05 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 05 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 05 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 05 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 06 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 06 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 06 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 06 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 07 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 07 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 07 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 07 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 08 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 08 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 08 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 08 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 09 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 09 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 09 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 09 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0a 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0a 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0a 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0a 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0b 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0b 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0b 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0b 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0c 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0c 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0c 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0c 00 00 00 04 ff 01 01 01
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0d 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0d 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0d 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0d 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
CompleteProtocol: Modbus->bitLength = 32, --> Length = 6.
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0e 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0e 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 12
|
||||||
|
Data = 00 0e 00 00 00 06 ff 01 00 00 00 02
|
||||||
|
--> byteOffset = 50, byteLength = 4
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
ParsePacket topProtocolToken->tokenId = 352 byteOffset = 42, byteLength = 10
|
||||||
|
Data = 00 0e 00 00 00 04 ff 01 01 00
|
||||||
|
--> byteOffset = 50, byteLength = 2
|
||||||
|
--> ContentId = 1020001.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue