diff --git a/CANape/CANape.ini b/CANape/CANape.ini
index 081c788..e58b638 100644
--- a/CANape/CANape.ini
+++ b/CANape/CANape.ini
@@ -6,7 +6,7 @@
;-------------------------------------------------------------------------------
[!!!!!_CONSISTENCY_CHECK_START_SECTION_!!!!!]
-GUID={3E32ADB4-C84B-4412-BCFC-7390AA77D052}
+GUID={6A00AF01-208D-4111-9320-BADA8CEFEBBF}
[FILE_INFO]
Identification=CANape-Project-File
@@ -22,8 +22,8 @@ CreationTime=22:29
CreationDate=09/06/2020 ; Month/Day/Year
Protected=0
CurrentWindowsACP=1252
-ModificationTime=14:38
-ModificationDate=07/29/2024 ; Month/Day/Year
+ModificationTime=12:44
+ModificationDate=07/31/2024 ; Month/Day/Year
[CANAPE]
@@ -1091,20 +1091,20 @@ SHOWGRID=0
RIGHTPANE2HEIGHT=-2
TREEX=530
TREEY=1709
-ACTIVEPANE=0
-SELECTED_TREENODE=Geräte/xcp_lite_Device
+ACTIVEPANE=1
+SELECTED_TREENODE=Geräte/xcp_lite_Device/Protokoll
FIRSTVISIBLE_TREENODE=Geräte
-TREEEXPAND_COUNT=6
+TREEEXPAND_COUNT=7
TREEEXPAND_0=Geräte
-TREEEXPAND_1=Geräte/xcp_lite_Device/Protokoll
-TREEEXPAND_2=Netzwerke
+TREEEXPAND_1=Geräte/xcp_lite_Device
+TREEEXPAND_2=Geräte/xcp_lite_Device/Protokoll
LAST_FOCUSED_LISTCOLUMN=0
LAST_FOCUSED_LISTINDEX=0
LAST_TOP_LISTINDEX=0
-TREEEXPAND_3=Netzwerke/ETH_1_Network
-TREEEXPAND_4=Netzwerke/ETH_1_Network/xcp_lite_Device
-TREEEXPAND_5=Netzwerke/ETH_1_Network/xcp_lite_Device/Protokoll
-TREEEXPAND_6=Netzwerke/ETH_1_Network/xcp_lite_Device
+TREEEXPAND_3=Netzwerke
+TREEEXPAND_4=Netzwerke/ETH_1_Network
+TREEEXPAND_5=Netzwerke/ETH_1_Network/xcp_lite_Device
+TREEEXPAND_6=Netzwerke/ETH_1_Network/xcp_lite_Device/Protokoll
ScreenDPIinSection=192
POSX_dpi96=463
POSY_dpi96=88
@@ -1140,13 +1140,13 @@ ColWidthDisplay=384
ShowMore=0
MoreHeight=588
ScreenDPIinSection=192
-WindowLeft=2328
-WindowTop=1334
+WindowLeft=2157
+WindowTop=834
WindowWidth=1248
WindowHeight=260
MoreHeight_dpi96=294
-WindowLeft_dpi96=1164
-WindowTop_dpi96=667
+WindowLeft_dpi96=1079
+WindowTop_dpi96=417
MoreHeight=441
ScreenDPIinSection=144
@@ -1626,8 +1626,8 @@ FIELD_DISPLAY_CSUS_HEIGHT_dpi96=0
FIELD_DISPLAY_REMARK_HEIGHT_dpi96=0
FIELD_DISPLAY_DATE_HEIGHT_dpi96=0
FIELD_DISPLAY_SD_FIELDS_HEIGHT_dpi96=0
-PREDEFINED_ENTRY_00=---2024-07-29T14:25:59
-PREDEFINED_ENTRY_01=changed2024-07-29T14:25:59
+PREDEFINED_ENTRY_00=---2024-07-31T12:25:48
+PREDEFINED_ENTRY_01=changed2024-07-31T12:25:48
[RIBBON]
ISMINIMIZED=0
@@ -2981,7 +2981,7 @@ OVERRUN_HANDLING=0
-EVENT_COUNT=13
+EVENT_COUNT=14
EVENT_CHANNEL_0=0x0000
EVENT_CHANNEL_1=0x0001
@@ -3040,15 +3040,15 @@ EVENT_MAX_DAQ_LIST_8=255
EVENT_MAX_DAQ_LIST_9=255
EVENT_NAME_0=mainloop
-EVENT_NAME_1=task1
-EVENT_NAME_2=task1_points
-EVENT_NAME_3=task2_inst_1
-EVENT_NAME_4=task2_inst_2
-EVENT_NAME_5=task2_inst_3
-EVENT_NAME_6=task2_inst_4
-EVENT_NAME_7=task2_inst_5
-EVENT_NAME_8=task2_inst_6
-EVENT_NAME_9=task2_inst_7
+EVENT_NAME_1=mainloop_counter2
+EVENT_NAME_2=task1
+EVENT_NAME_3=task1_points
+EVENT_NAME_4=task2_inst_1
+EVENT_NAME_5=task2_inst_2
+EVENT_NAME_6=task2_inst_3
+EVENT_NAME_7=task2_inst_4
+EVENT_NAME_8=task2_inst_5
+EVENT_NAME_9=task2_inst_6
EVENT_MULTISAMPLES_0=0
EVENT_MULTISAMPLES_1=0
@@ -3266,7 +3266,7 @@ PACKET_CTR=0
-HOST=192.168.0.83
+HOST=172.19.11.24
PORT=5555
LOCAL_PORT=9999
TRANSPORT_LAYER_PROTOCOL=1
@@ -3379,7 +3379,7 @@ EVENT_SAMPLE_UNIT_10=3
EVENT_MODE_10=4
EVENT_PRIO_10=0
EVENT_MAX_DAQ_LIST_10=255
-EVENT_NAME_10=task2_inst_8
+EVENT_NAME_10=task2_inst_7
EVENT_MULTISAMPLES_10=0
EVENT_MIN_CYCLE_TIME_CYCLE_10=0
EVENT_MIN_CYCLE_TIME_UNIT_10=9
@@ -3390,7 +3390,7 @@ EVENT_SAMPLE_UNIT_11=3
EVENT_MODE_11=4
EVENT_PRIO_11=0
EVENT_MAX_DAQ_LIST_11=255
-EVENT_NAME_11=task2_inst_9
+EVENT_NAME_11=task2_inst_8
EVENT_MULTISAMPLES_11=0
EVENT_MIN_CYCLE_TIME_CYCLE_11=0
EVENT_MIN_CYCLE_TIME_UNIT_11=9
@@ -3407,18 +3407,18 @@ EVENT_SAMPLE_UNIT_12=3
EVENT_MODE_12=4
EVENT_PRIO_12=0
EVENT_MAX_DAQ_LIST_12=255
-EVENT_NAME_12=task2_static
+EVENT_NAME_12=task2_inst_9
EVENT_MULTISAMPLES_12=0
EVENT_MIN_CYCLE_TIME_CYCLE_12=0
EVENT_MIN_CYCLE_TIME_UNIT_12=9
EVENT_DPM_SUPPORTED_12=0
-EVENT_CHANNEL_13=0x000A
-EVENT_CYCLE_13=15
+EVENT_CHANNEL_13=0x000D
+EVENT_CYCLE_13=0
EVENT_SAMPLE_UNIT_13=3
EVENT_MODE_13=4
EVENT_PRIO_13=0
EVENT_MAX_DAQ_LIST_13=255
-EVENT_NAME_13=mainloop_10
+EVENT_NAME_13=task2_static
EVENT_MULTISAMPLES_13=0
EVENT_MIN_CYCLE_TIME_CYCLE_13=0
EVENT_MIN_CYCLE_TIME_UNIT_13=9
@@ -5007,10 +5007,10 @@ COUNT=5
[DlgCommentWrapper]
ScreenDPIinSection=192
-WindowLeft=2277
-WindowLeft_dpi96=1139
-WindowTop=1241
-WindowTop_dpi96=621
+WindowLeft=2106
+WindowLeft_dpi96=1053
+WindowTop=691
+WindowTop_dpi96=346
WindowWidth=1350
WindowWidth_dpi96=675
WindowHeight=923
@@ -5130,10 +5130,10 @@ HEIGHT=1
[DlgMdfComment]
ScreenDPIinSection=192
-WindowLeft=2290
-WindowLeft_dpi96=1145
-WindowTop=1299
-WindowTop_dpi96=650
+WindowLeft=2119
+WindowLeft_dpi96=1060
+WindowTop=749
+WindowTop_dpi96=375
WindowWidth=1324
WindowWidth_dpi96=662
WindowHeight=786
@@ -5278,203 +5278,6 @@ SortUpward=1
[xcp_lite_ECDMVariants]
ECDM_DEVICE=0
-[MEASUREMENT_DISPLAY_SELECT]
-ScreenDPIinSection=192
-POSX=574
-POSX_dpi96=287
-POSY=524
-POSY_dpi96=262
-SIZEX=1874
-SIZEX_dpi96=937
-SIZEY=1554
-SIZEY_dpi96=777
-SHOWTOOLBAR=1
-SHOWSTATUSBAR=1
-SHOWGRID=0
-RIGHTPANE2HEIGHT=2
-RIGHTPANE2HEIGHT_dpi96=1
-TREEX=380
-TREEX_dpi96=190
-TREEY=1363
-TREEY_dpi96=682
-ACTIVEPANE=0
-SELECTED_TREENODE=Messsignale
-FIRSTVISIBLE_TREENODE=Messoptionen
-TREEEXPAND_COUNT=1
-TREEEXPAND_0=Messsignale
-LAST_FOCUSED_LISTCOLUMN=0
-LAST_FOCUSED_LISTINDEX=10
-LAST_TOP_LISTINDEX=0
-DAQLISTS=2
-STATUSBAR_BYTES=1
-DIALOGFILEEXTEXPORT=vsf
-LABELLISTMEAMODE=0
-LABELLISTBUSSIGNALMODE=0
-TEXT_SEARCH=counter
-VXIIColumnsAdded=0
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_CUSTOM]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_KEY]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_SYSTEM]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=196608
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_SYSTEM_DEVICE]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_KNOWN_DYNAMIC_COLUMNS_NORMAL]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-VERSION=100
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_NORMAL]
-ScreenDPIinSection=192
-ColumnCount=7
-Column_0=65542, 66
-Column_0_dpi96=65542, 33
-Column_1=34, 124
-Column_1_dpi96=34, 62
-Column_2=31, 306
-Column_2_dpi96=31, 153
-Column_3=65540, 298
-Column_3_dpi96=65540, 149
-Column_4=65541, 140
-Column_4_dpi96=65541, 70
-Column_5=1, 180
-Column_5_dpi96=1, 90
-Column_6=98305, 160
-Column_6_dpi96=98305, 80
-ColumnIdSort=65540
-SortUpward=1
-VERSION=100
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDER]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-VERSION=100
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDER_BUSLOGGING]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDERS]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_SOUNDS]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_TARA_ACTIVE_SIGNALS]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_TARA_ALL_SIGNALS]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_VIO]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY_SELECT_DYNAMIC_COLUMNS]
-Count=0
-
-[DEVICE_EXPLORER_COLUMNLIST_CHANNELS]
-ScreenDPIinSection=192
-ColumnCount=4
-Column_0=0, 306
-Column_0_dpi96=0, 153
-Column_1=1245185, 132
-Column_1_dpi96=1245185, 66
-Column_2=1245186, 66
-Column_2_dpi96=1245186, 33
-Column_3=1245187, 106
-Column_3_dpi96=1245187, 53
-ColumnIdSort=-1
-SortUpward=1
-
-[DEVICE_EXPLORER_COLUMNLIST_DEVICES]
-ScreenDPIinSection=192
-ColumnCount=10
-Column_0=34, 64
-Column_0_dpi96=34, 32
-Column_1=0, 172
-Column_1_dpi96=0, 86
-Column_2=131078, 104
-Column_2_dpi96=131078, 52
-Column_3=131103, 98
-Column_3_dpi96=131103, 49
-Column_4=131079, 178
-Column_4_dpi96=131079, 89
-Column_5=262145, 298
-Column_5_dpi96=262145, 149
-Column_6=131085, 248
-Column_6_dpi96=131085, 124
-Column_7=131080, 160
-Column_7_dpi96=131080, 80
-Column_8=131081, 180
-Column_8_dpi96=131081, 90
-Column_9=196609, 192
-Column_9_dpi96=196609, 96
-ColumnIdSort=-1
-SortUpward=1
-
-[DEVICE_EXPLORER_COLUMNLIST_NETWORKS]
-ScreenDPIinSection=192
-ColumnCount=6
-Column_0=34, 64
-Column_0_dpi96=34, 32
-Column_1=0, 304
-Column_1_dpi96=0, 152
-Column_2=983041, 192
-Column_2_dpi96=983041, 96
-Column_3=983042, 530
-Column_3_dpi96=983042, 265
-Column_4=983043, 252
-Column_4_dpi96=983043, 126
-Column_5=983044, 300
-Column_5_dpi96=983044, 150
-ColumnIdSort=-1
-SortUpward=1
-
[test_ECDMVariants]
ECDM_DEVICE=0
@@ -5630,6 +5433,64 @@ MODE=12
VALUE_COUNT=0
HISTORY_COUNT=0
+[DEVICE_EXPLORER_COLUMNLIST_CHANNELS]
+ScreenDPIinSection=192
+ColumnCount=4
+Column_0=0, 306
+Column_0_dpi96=0, 153
+Column_1=1245185, 132
+Column_1_dpi96=1245185, 66
+Column_2=1245186, 66
+Column_2_dpi96=1245186, 33
+Column_3=1245187, 106
+Column_3_dpi96=1245187, 53
+ColumnIdSort=-1
+SortUpward=1
+
+[DEVICE_EXPLORER_COLUMNLIST_DEVICES]
+ScreenDPIinSection=192
+ColumnCount=10
+Column_0=34, 64
+Column_0_dpi96=34, 32
+Column_1=0, 172
+Column_1_dpi96=0, 86
+Column_2=131078, 104
+Column_2_dpi96=131078, 52
+Column_3=131103, 98
+Column_3_dpi96=131103, 49
+Column_4=131079, 178
+Column_4_dpi96=131079, 89
+Column_5=262145, 298
+Column_5_dpi96=262145, 149
+Column_6=131085, 248
+Column_6_dpi96=131085, 124
+Column_7=131080, 160
+Column_7_dpi96=131080, 80
+Column_8=131081, 180
+Column_8_dpi96=131081, 90
+Column_9=196609, 192
+Column_9_dpi96=196609, 96
+ColumnIdSort=-1
+SortUpward=1
+
+[DEVICE_EXPLORER_COLUMNLIST_NETWORKS]
+ScreenDPIinSection=192
+ColumnCount=6
+Column_0=34, 64
+Column_0_dpi96=34, 32
+Column_1=0, 304
+Column_1_dpi96=0, 152
+Column_2=983041, 192
+Column_2_dpi96=983041, 96
+Column_3=983042, 530
+Column_3_dpi96=983042, 265
+Column_4=983043, 252
+Column_4_dpi96=983043, 126
+Column_5=983044, 300
+Column_5_dpi96=983044, 150
+ColumnIdSort=-1
+SortUpward=1
+
[MEASUREMENT_DISPLAY]
ScreenDPIinSection=192
POSX=112
@@ -5659,7 +5520,7 @@ TREEEXPAND_2=Rekorderliste
TREEEXPAND_3=Ereignisliste
TREEEXPAND_4=Tara
LAST_FOCUSED_LISTCOLUMN=0
-LAST_FOCUSED_LISTINDEX=16
+LAST_FOCUSED_LISTINDEX=1
LAST_TOP_LISTINDEX=0
DAQLISTS=2
STATUSBAR_BYTES=1
@@ -5822,6 +5683,145 @@ SortUpward=1
[MEASUREMENT_DISPLAY_DYNAMIC_COLUMNS]
Count=0
+[MEASUREMENT_DISPLAY_SELECT]
+ScreenDPIinSection=192
+POSX=574
+POSX_dpi96=287
+POSY=524
+POSY_dpi96=262
+SIZEX=1874
+SIZEX_dpi96=937
+SIZEY=1554
+SIZEY_dpi96=777
+SHOWTOOLBAR=1
+SHOWSTATUSBAR=1
+SHOWGRID=0
+RIGHTPANE2HEIGHT=2
+RIGHTPANE2HEIGHT_dpi96=1
+TREEX=380
+TREEX_dpi96=190
+TREEY=1363
+TREEY_dpi96=682
+ACTIVEPANE=1
+SELECTED_TREENODE=Messsignale
+FIRSTVISIBLE_TREENODE=Messoptionen
+TREEEXPAND_COUNT=1
+TREEEXPAND_0=Messsignale
+LAST_FOCUSED_LISTCOLUMN=0
+LAST_FOCUSED_LISTINDEX=1
+LAST_TOP_LISTINDEX=0
+DAQLISTS=2
+STATUSBAR_BYTES=1
+DIALOGFILEEXTEXPORT=vsf
+LABELLISTMEAMODE=0
+LABELLISTBUSSIGNALMODE=0
+TEXT_SEARCH=counter
+VXIIColumnsAdded=0
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_CUSTOM]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_KEY]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_SYSTEM]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=196608
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_SYSTEM_DEVICE]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_KNOWN_DYNAMIC_COLUMNS_NORMAL]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_NORMAL]
+ScreenDPIinSection=192
+ColumnCount=7
+Column_0=65542, 66
+Column_0_dpi96=65542, 33
+Column_1=34, 124
+Column_1_dpi96=34, 62
+Column_2=31, 306
+Column_2_dpi96=31, 153
+Column_3=65540, 298
+Column_3_dpi96=65540, 149
+Column_4=65541, 140
+Column_4_dpi96=65541, 70
+Column_5=1, 180
+Column_5_dpi96=1, 90
+Column_6=98305, 160
+Column_6_dpi96=98305, 80
+ColumnIdSort=65540
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDER]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDER_BUSLOGGING]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDERS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_SOUNDS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_TARA_ACTIVE_SIGNALS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_TARA_ALL_SIGNALS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_VIO]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_DYNAMIC_COLUMNS]
+Count=0
+
[POSTPROCESS_OPTIONS]
POSTPROC_MODE=0
@@ -5829,5 +5829,5 @@ POSTPROC_MODE=0
Count=0
[~~~~~_CONSISTENCY_CHECK_END_SECTION_~~~~~]
-GUID={3E32ADB4-C84B-4412-BCFC-7390AA77D052}
+GUID={6A00AF01-208D-4111-9320-BADA8CEFEBBF}
diff --git a/CANape/XCPlite.cna b/CANape/XCPlite.cna
index 5220c59..ba36270 100644
--- a/CANape/XCPlite.cna
+++ b/CANape/XCPlite.cna
@@ -10,8 +10,8 @@ PrgDate=08.07.2024
Description=
CreationTime=23:25
CreationDate=04/18/2021 ; Month/Day/Year
-ModificationTime=14:38
-ModificationDate=07/29/2024 ; Month/Day/Year
+ModificationTime=12:39
+ModificationDate=07/31/2024 ; Month/Day/Year
Protected=0
CurrentWindowsACP=1252
@@ -261,7 +261,7 @@ OptionCSVListSeparator=0
OptionCSVExport=0
OptionMARMFExport=0
OptionMARMFExtended=0
-OptionSuppressCASLRuntimeErrors=0
+OptionSuppressCASLRuntimeErrors=1
FromTime=-1
FromActive=0
FromTimePartActive=0
@@ -333,7 +333,7 @@ COUNT=5
5=}
[FUNCTION_OBJECT_1]
-Number=16
+Number=17
Unit=
Components=0
TimeSeriesSaveMode=0
@@ -362,7 +362,7 @@ DisplayCount=2
[FUNCTION_OBJECT_1_DISPLAY_1]
Window=8
-Index=7
+Index=8
Color=65535
ApplyColorToBackground=0
ColorFunction=0
@@ -386,7 +386,7 @@ LineWidth=1
Precision=-2
Digits=6
Enabled=1
-StoredFocused=1
+StoredFocused=0
SublMask=1
MeaSublMask=0
LockScaling=0
@@ -465,7 +465,7 @@ IsParameterFunctionResult=0
Module=xcp_lite
[FUNCTION_OBJECT_2]
-Number=17
+Number=18
Unit=
Components=0
TimeSeriesSaveMode=0
@@ -540,7 +540,7 @@ GUID=DISPLAY_d65eb017-2a7e-497a-8a3d-06ecb8376e2b
[FUNCTION_OBJECT_2_DISPLAY_2]
Window=8
-Index=6
+Index=7
Color=255
ApplyColorToBackground=0
ColorFunction=0
@@ -597,7 +597,7 @@ IsParameterFunctionResult=0
Module=xcp_lite
[FUNCTION_OBJECT_3]
-Number=18
+Number=19
Unit=
Components=0
TimeSeriesSaveMode=0
@@ -672,7 +672,7 @@ GUID=DISPLAY_3e67d534-875c-447a-afa4-04fbf002c84b
[FUNCTION_OBJECT_3_DISPLAY_2]
Window=8
-Index=8
+Index=9
Color=16711935
ApplyColorToBackground=0
ColorFunction=0
@@ -751,7 +751,7 @@ SubConfigsCount=0
Count=0
[MEASUREMENT_LIST]
-Count=17
+Count=18
OfflineFileCount=0
MeaCfgLabellistName=
@@ -771,7 +771,7 @@ DisplayCount=1
[MEASUREMENT_OBJECT_10]
Module=xcp_lite
-Name=channel_3
+Name=channel_2
Disabled=0
Mode=2147483653
Rate=0
@@ -785,6 +785,66 @@ DisplayCount=1
[MEASUREMENT_OBJECT_10_DISPLAY_1]
Window=3
+Index=7
+Color=21930
+ApplyColorToBackground=0
+ColorFunction=0
+ColorFunctionScope=1
+LineTyp=2
+YMinHome=-200
+YMaxHome=200
+YMin=-200
+YMax=200
+XOffsetNS=0
+XOffset=0
+ValueFormat=3
+BitMask=1
+ShowYAxis=1
+Width=10
+LineStyle=1
+MarkerType=1
+SRMainValue=0
+InvalidValueDrawMode=3
+LineWidth=2
+Precision=-2
+Digits=6
+Enabled=1
+StoredFocused=0
+SublMask=1
+MeaSublMask=3
+LockScaling=0
+RightAxis=0
+MapMode=2
+OverlayGridColor=0
+ShadingMode=3
+EditOffset=1
+EditFactor=2
+WAxisLabel=
+XAxisLabel=
+YAxisLabel=
+AxisCaption=
+Row=0
+Col=0
+YAxis_ID=2
+AxisTemplate=
+GUID=DISPLAY_6bfc8c70-8ddc-4676-a754-45ecb1957527
+
+[MEASUREMENT_OBJECT_11]
+Module=xcp_lite
+Name=channel_3
+Disabled=0
+Mode=2147483654
+Rate=0
+Row=0
+Column=0
+MeaReferenced=1
+ArchivBy_1=Rekorder
+IsFallback=0
+HasManagedDisplay=0
+DisplayCount=1
+
+[MEASUREMENT_OBJECT_11_DISPLAY_1]
+Window=3
Index=6
Color=11184895
ApplyColorToBackground=0
@@ -829,11 +889,11 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_af726eb9-3178-4dfe-afce-87f52937a058
-[MEASUREMENT_OBJECT_11]
+[MEASUREMENT_OBJECT_12]
Module=xcp_lite
Name=channel_4
Disabled=0
-Mode=2147483654
+Mode=2147483655
Rate=0
Row=0
Column=0
@@ -843,7 +903,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_11_DISPLAY_1]
+[MEASUREMENT_OBJECT_12_DISPLAY_1]
Window=3
Index=5
Color=43520
@@ -889,11 +949,11 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_f8838ae2-d42d-4254-b1ef-0e4d00235ec5
-[MEASUREMENT_OBJECT_12]
+[MEASUREMENT_OBJECT_13]
Module=xcp_lite
Name=channel_5
Disabled=0
-Mode=2147483655
+Mode=2147483656
Rate=0
Row=0
Column=0
@@ -903,7 +963,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_12_DISPLAY_1]
+[MEASUREMENT_OBJECT_13_DISPLAY_1]
Window=3
Index=4
Color=43690
@@ -949,11 +1009,11 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_5316f15e-cd29-4a81-8d23-b63301664eab
-[MEASUREMENT_OBJECT_13]
+[MEASUREMENT_OBJECT_14]
Module=xcp_lite
Name=channel_6
Disabled=0
-Mode=2147483656
+Mode=2147483657
Rate=0
Row=0
Column=0
@@ -963,7 +1023,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_13_DISPLAY_1]
+[MEASUREMENT_OBJECT_14_DISPLAY_1]
Window=3
Index=3
Color=33023
@@ -1009,11 +1069,11 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_b5933642-3201-41ea-8349-98fce39bdcf3
-[MEASUREMENT_OBJECT_14]
+[MEASUREMENT_OBJECT_15]
Module=xcp_lite
Name=channel_7
Disabled=0
-Mode=2147483657
+Mode=2147483658
Rate=0
Row=0
Column=0
@@ -1023,7 +1083,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_14_DISPLAY_1]
+[MEASUREMENT_OBJECT_15_DISPLAY_1]
Window=3
Index=2
Color=65450
@@ -1069,11 +1129,11 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_f9d8418b-5fe5-4380-8f3e-f194517da47f
-[MEASUREMENT_OBJECT_15]
+[MEASUREMENT_OBJECT_16]
Module=xcp_lite
Name=channel_8
Disabled=0
-Mode=2147483658
+Mode=2147483659
Rate=0
Row=0
Column=0
@@ -1083,7 +1143,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_15_DISPLAY_1]
+[MEASUREMENT_OBJECT_16_DISPLAY_1]
Window=3
Index=1
Color=16776960
@@ -1129,11 +1189,11 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_a264452d-a480-42f5-8b83-1b20a7180a17
-[MEASUREMENT_OBJECT_16]
+[MEASUREMENT_OBJECT_17]
Module=xcp_lite
Name=channel_9
Disabled=0
-Mode=2147483659
+Mode=2147483660
Rate=0
Row=0
Column=0
@@ -1143,7 +1203,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_16_DISPLAY_1]
+[MEASUREMENT_OBJECT_17_DISPLAY_1]
Window=3
Index=0
Color=11162965
@@ -1189,12 +1249,12 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_38e26b38-ea9f-464e-95df-39d45a9aef6d
-[MEASUREMENT_OBJECT_17]
+[MEASUREMENT_OBJECT_18]
Components=0
Module=xcp_lite
Name=$point_cloud$
Disabled=1
-Mode=2147483650
+Mode=2147483651
Rate=0
Row=0
Column=0
@@ -1206,7 +1266,7 @@ DisplayCount=0
[MEASUREMENT_OBJECT_1_DISPLAY_1]
Window=8
-Index=5
+Index=1
Color=33023
ApplyColorToBackground=0
ColorFunction=0
@@ -1252,7 +1312,7 @@ GUID=DISPLAY_a4718064-71a8-43ab-a26d-7b0b56d07687
[MEASUREMENT_OBJECT_2]
Module=xcp_lite
-Name=counter
+Name=mainloop_counter2
Disabled=0
Mode=2147483649
Rate=0
@@ -1262,11 +1322,71 @@ MeaReferenced=1
ArchivBy_1=Rekorder
IsFallback=0
HasManagedDisplay=0
-DisplayCount=2
+DisplayCount=1
[MEASUREMENT_OBJECT_2_DISPLAY_1]
Window=8
-Index=4
+Index=0
+Color=16744576
+ApplyColorToBackground=0
+ColorFunction=0
+ColorFunctionScope=1
+LineTyp=2
+YMinHome=0
+YMaxHome=100
+YMin=0
+YMax=100
+XOffsetNS=0
+XOffset=0
+ValueFormat=3
+BitMask=1
+ShowYAxis=1
+Width=10
+LineStyle=1
+MarkerType=1
+SRMainValue=0
+InvalidValueDrawMode=3
+LineWidth=1
+Precision=-2
+Digits=6
+Enabled=1
+StoredFocused=0
+SublMask=1
+MeaSublMask=0
+LockScaling=0
+RightAxis=0
+MapMode=2
+OverlayGridColor=0
+ShadingMode=3
+EditOffset=1
+EditFactor=2
+WAxisLabel=
+XAxisLabel=
+YAxisLabel=
+AxisCaption=
+Row=0
+Col=0
+YAxis_ID=0
+AxisTemplate=
+GUID=DISPLAY_63b3c865-c9d8-4f5f-ad70-00899dc935c0
+
+[MEASUREMENT_OBJECT_3]
+Module=xcp_lite
+Name=counter
+Disabled=0
+Mode=2147483650
+Rate=0
+Row=0
+Column=0
+MeaReferenced=1
+ArchivBy_1=Rekorder
+IsFallback=0
+HasManagedDisplay=0
+DisplayCount=2
+
+[MEASUREMENT_OBJECT_3_DISPLAY_1]
+Window=8
+Index=6
Color=16744448
ApplyColorToBackground=0
ColorFunction=0
@@ -1310,7 +1430,7 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_3816e7cb-d393-4245-8621-60d726ebcfe4
-[MEASUREMENT_OBJECT_2_DISPLAY_2]
+[MEASUREMENT_OBJECT_3_DISPLAY_2]
Window=3
Index=9
Color=16744448
@@ -1356,11 +1476,11 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_2561bed0-8ac6-4731-a9eb-c3f475b324d8
-[MEASUREMENT_OBJECT_3]
+[MEASUREMENT_OBJECT_4]
Module=xcp_lite
Name=counter_u64
Disabled=0
-Mode=2147483649
+Mode=2147483650
Rate=0
Row=0
Column=0
@@ -1370,9 +1490,9 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_3_DISPLAY_1]
+[MEASUREMENT_OBJECT_4_DISPLAY_1]
Window=8
-Index=3
+Index=5
Color=65280
ApplyColorToBackground=0
ColorFunction=0
@@ -1416,11 +1536,11 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_7691d3bd-bcba-416d-8b8d-dd26b2a5fc34
-[MEASUREMENT_OBJECT_4]
+[MEASUREMENT_OBJECT_5]
Module=xcp_lite
Name=counter_u32
Disabled=0
-Mode=2147483649
+Mode=2147483650
Rate=0
Row=0
Column=0
@@ -1430,9 +1550,9 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_4_DISPLAY_1]
+[MEASUREMENT_OBJECT_5_DISPLAY_1]
Window=8
-Index=2
+Index=4
Color=255
ApplyColorToBackground=0
ColorFunction=0
@@ -1476,11 +1596,11 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_ed075cff-161d-441e-ab13-ef70dd70101d
-[MEASUREMENT_OBJECT_5]
+[MEASUREMENT_OBJECT_6]
Module=xcp_lite
Name=counter_u16
Disabled=0
-Mode=2147483649
+Mode=2147483650
Rate=0
Row=0
Column=0
@@ -1490,9 +1610,9 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_5_DISPLAY_1]
+[MEASUREMENT_OBJECT_6_DISPLAY_1]
Window=8
-Index=1
+Index=3
Color=16776960
ApplyColorToBackground=0
ColorFunction=0
@@ -1536,11 +1656,11 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_661e9d67-6e45-4854-9267-1189c1069d03
-[MEASUREMENT_OBJECT_6]
+[MEASUREMENT_OBJECT_7]
Module=xcp_lite
Name=counter_u8
Disabled=0
-Mode=2147483649
+Mode=2147483650
Rate=0
Row=0
Column=0
@@ -1550,9 +1670,9 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_6_DISPLAY_1]
+[MEASUREMENT_OBJECT_7_DISPLAY_1]
Window=8
-Index=0
+Index=2
Color=16711935
ApplyColorToBackground=0
ColorFunction=0
@@ -1576,7 +1696,7 @@ LineWidth=1
Precision=-2
Digits=6
Enabled=1
-StoredFocused=0
+StoredFocused=1
SublMask=1
MeaSublMask=0
LockScaling=0
@@ -1596,11 +1716,11 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_8ec39fbe-4cfc-405b-84f1-1beb1b99ea53
-[MEASUREMENT_OBJECT_7]
+[MEASUREMENT_OBJECT_8]
Module=xcp_lite
Name=array1
Disabled=1
-Mode=2147483649
+Mode=2147483650
Rate=0
Row=0
Column=0
@@ -1616,11 +1736,11 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=0
-[MEASUREMENT_OBJECT_8]
+[MEASUREMENT_OBJECT_9]
Module=xcp_lite
Name=channel_1
Disabled=0
-Mode=2147483651
+Mode=2147483652
Rate=0
Row=0
Column=0
@@ -1630,7 +1750,7 @@ IsFallback=0
HasManagedDisplay=0
DisplayCount=1
-[MEASUREMENT_OBJECT_8_DISPLAY_1]
+[MEASUREMENT_OBJECT_9_DISPLAY_1]
Window=3
Index=8
Color=255
@@ -1676,66 +1796,6 @@ YAxis_ID=2
AxisTemplate=
GUID=DISPLAY_b65281b1-6d89-431f-848c-ff4f029b7ddf
-[MEASUREMENT_OBJECT_9]
-Module=xcp_lite
-Name=channel_2
-Disabled=0
-Mode=2147483652
-Rate=0
-Row=0
-Column=0
-MeaReferenced=1
-ArchivBy_1=Rekorder
-IsFallback=0
-HasManagedDisplay=0
-DisplayCount=1
-
-[MEASUREMENT_OBJECT_9_DISPLAY_1]
-Window=3
-Index=7
-Color=21930
-ApplyColorToBackground=0
-ColorFunction=0
-ColorFunctionScope=1
-LineTyp=2
-YMinHome=-200
-YMaxHome=200
-YMin=-200
-YMax=200
-XOffsetNS=0
-XOffset=0
-ValueFormat=3
-BitMask=1
-ShowYAxis=1
-Width=10
-LineStyle=1
-MarkerType=1
-SRMainValue=0
-InvalidValueDrawMode=3
-LineWidth=2
-Precision=-2
-Digits=6
-Enabled=1
-StoredFocused=0
-SublMask=1
-MeaSublMask=3
-LockScaling=0
-RightAxis=0
-MapMode=2
-OverlayGridColor=0
-ShadingMode=3
-EditOffset=1
-EditFactor=2
-WAxisLabel=
-XAxisLabel=
-YAxisLabel=
-AxisCaption=
-Row=0
-Col=0
-YAxis_ID=2
-AxisTemplate=
-GUID=DISPLAY_6bfc8c70-8ddc-4676-a754-45ecb1957527
-
[MEASUREMENT_OPTIONS]
RemainingRecordingTime=5000
StopMeasurementOnRecorderStopped=0
@@ -1814,7 +1874,7 @@ GlobalCursorTimeNs=0
GlobalTimeAxis=1
GlobalTimeAxisStartTime=0
GlobalTimeAxisEndTime=34366622088
-MainWindowPos=1, 1030, 18, 3502, 2069 ;cmd, x, y, w, h
+MainWindowPos=1, 1030, 68, 3502, 2069 ;cmd, x, y, w, h
[PAR_COMMENT]
1="Name",""
@@ -4287,7 +4347,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_9ceb89e6-e86a-43ef-8365-42987ca2f460
+GUID=DISPLAY_3a251c06-01c7-4146-a312-cfe3c7327f36
[WINDOW_5_OBJECT_10]
Type=2
@@ -4336,7 +4396,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_322e6750-5a76-4eb3-a41b-92b7acdcca1c
+GUID=DISPLAY_4ebb170f-8cab-4cd9-8f43-4233f4d1bbe2
[WINDOW_5_OBJECT_11]
Type=2
@@ -4385,7 +4445,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_eaf178de-7f13-4eb0-b006-74babc8847f8
+GUID=DISPLAY_25e07f2e-457c-43e7-995e-15f7009b527b
[WINDOW_5_OBJECT_12]
Type=2
@@ -4434,7 +4494,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_aecad35c-fe76-40e0-b61d-31bfdd877156
+GUID=DISPLAY_b911ea2b-9e19-433c-99ce-6847b77d72e0
[WINDOW_5_OBJECT_13]
Type=2
@@ -4483,7 +4543,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_c4f47b5c-928e-42fa-8aaa-28580475dca4
+GUID=DISPLAY_956ac468-e774-4159-8398-581dac4dcb25
[WINDOW_5_OBJECT_14]
Type=2
@@ -4532,7 +4592,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_fbdadd16-72db-4391-b7d6-2d648d500f4d
+GUID=DISPLAY_97c96f7a-9e7c-4c69-a433-26f9738dfb96
[WINDOW_5_OBJECT_15]
Type=2
@@ -4581,7 +4641,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_5cbd1eaf-51e7-498a-a192-dfd661b60b44
+GUID=DISPLAY_80d70cc9-6963-4213-ab03-53131095e8fe
[WINDOW_5_OBJECT_16]
Type=2
@@ -4630,7 +4690,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_8ef081e5-30ed-43ef-8e64-3339d1f45e05
+GUID=DISPLAY_4c3f63b1-54f4-45e0-9d2f-ed038c0cee44
[WINDOW_5_OBJECT_2]
Type=2
@@ -4679,7 +4739,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_6339cbb5-14f2-42e1-a2bd-4f8d3f73b959
+GUID=DISPLAY_68707be8-01e2-48e6-ac73-179618a5018a
[WINDOW_5_OBJECT_3]
Type=2
@@ -4728,7 +4788,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_fb9388f3-836b-41e4-b803-a0b7ee4d7f4f
+GUID=DISPLAY_979bbde8-663e-43e1-b9ea-dafcf81ae21d
[WINDOW_5_OBJECT_4]
Type=2
@@ -4777,7 +4837,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_b5b671ed-0021-418c-8488-2254fe2bc44f
+GUID=DISPLAY_1c0c1cb1-a571-4e9c-a01b-f8017e6d613b
[WINDOW_5_OBJECT_5]
Type=2
@@ -4826,7 +4886,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_acde4758-3a4c-4333-8acb-88365bafbe4b
+GUID=DISPLAY_54abeccf-c19d-4337-abfa-4e4897a23dfa
[WINDOW_5_OBJECT_6]
Type=2
@@ -4875,7 +4935,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_ec6419a5-5cf6-4fa3-a386-990f00076bd7
+GUID=DISPLAY_85f4276e-6b94-4f5a-83ab-609aa2d593cd
[WINDOW_5_OBJECT_7]
Type=2
@@ -4924,7 +4984,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_197c8deb-a846-492f-bc8f-46e92fc1cd6d
+GUID=DISPLAY_e970e771-6c1c-491d-a8b2-1e3cf32fa9fa
[WINDOW_5_OBJECT_8]
Type=2
@@ -4973,7 +5033,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_6190ec4d-fd59-4a06-981a-4cb40f9dbe70
+GUID=DISPLAY_289beb2a-15e2-4c7c-825f-9039d42842a7
[WINDOW_5_OBJECT_9]
Type=2
@@ -5022,7 +5082,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_0d151f66-5599-4ccb-bae6-4417b5599474
+GUID=DISPLAY_e0b7e0d3-0060-47e4-a692-b01ec4e28b11
[WINDOW_6]
ProgID=CNPTRACE.TraceCtrl.1
diff --git a/CANape/XCPlite.cnaxml b/CANape/XCPlite.cnaxml
index af3367f..cbd3455 100644
--- a/CANape/XCPlite.cnaxml
+++ b/CANape/XCPlite.cnaxml
@@ -201,7 +201,7 @@
false
false
false
- 516,179.5
+ 516,204.5
\ No newline at end of file
diff --git a/CANape/xcp_lite_autodetect.a2l b/CANape/xcp_lite_autodetect.a2l
index ccc0cdf..5499a63 100644
--- a/CANape/xcp_lite_autodetect.a2l
+++ b/CANape/xcp_lite_autodetect.a2l
@@ -130,28 +130,29 @@
OPTIONAL_LEVEL1_CMD GET_VERSION
/end PROTOCOL_LAYER
/begin DAQ
- DYNAMIC 0 13 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
+ DYNAMIC 0 14 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
/begin TIMESTAMP_SUPPORTED
0x1 SIZE_DWORD UNIT_1US TIMESTAMP_FIXED
/end TIMESTAMP_SUPPORTED
/begin EVENT "mainloop" "mainloop" 0 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task1" "task1" 1 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task1_points" "task1_po" 2 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_1" "task2_in" 3 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_2" "task2_in" 4 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_3" "task2_in" 5 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_4" "task2_in" 6 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_5" "task2_in" 7 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_6" "task2_in" 8 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_7" "task2_in" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_8" "task2_in" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_9" "task2_in" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_static" "task2_st" 12 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "mainloop_counter2" "mainloop" 1 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task1" "task1" 2 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task1_points" "task1_po" 3 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_1" "task2_in" 4 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_2" "task2_in" 5 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_3" "task2_in" 6 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_4" "task2_in" 7 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_5" "task2_in" 8 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_6" "task2_in" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_7" "task2_in" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_8" "task2_in" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_9" "task2_in" 12 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_static" "task2_st" 13 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
/end DAQ
-/begin XCP_ON_UDP_IP 0x104 5555 ADDRESS "192.168.0.83" /end XCP_ON_UDP_IP
+/begin XCP_ON_UDP_IP 0x104 5555 ADDRESS "172.19.11.24" /end XCP_ON_UDP_IP
/end IF_DATA
@@ -202,35 +203,35 @@ CalPage2.ampl
CalPage2.period
/end REF_CHARACTERISTIC /end GROUP
-/begin MEASUREMENT array1 "" FLOAT64_IEEE NO_COMPU_METHOD 0 0 -1000000000000 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x1F7F4 ECU_ADDRESS_EXTENSION 2 MATRIX_DIM 256 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT array1 "" FLOAT64_IEEE NO_COMPU_METHOD 0 0 -1000000000000 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x2F7F4 ECU_ADDRESS_EXTENSION 2 MATRIX_DIM 256 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel "sine: f64" FLOAT64_IEEE channel.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xC0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel "sine: f64" FLOAT64_IEEE channel.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xD0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 13 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_1.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_1 "sine: f64" FLOAT64_IEEE channel_1.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x30000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 3 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_1 "sine: f64" FLOAT64_IEEE channel_1.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x40000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 4 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_2.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_2 "sine: f64" FLOAT64_IEEE channel_2.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x40000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 4 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_2 "sine: f64" FLOAT64_IEEE channel_2.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x50000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 5 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_3.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_3 "sine: f64" FLOAT64_IEEE channel_3.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x50000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 5 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_3 "sine: f64" FLOAT64_IEEE channel_3.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x60000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 6 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_4.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_4 "sine: f64" FLOAT64_IEEE channel_4.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x60000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 6 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_4 "sine: f64" FLOAT64_IEEE channel_4.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x70000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_5.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_5 "sine: f64" FLOAT64_IEEE channel_5.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x70000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_5 "sine: f64" FLOAT64_IEEE channel_5.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x80000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_6.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_6 "sine: f64" FLOAT64_IEEE channel_6.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x80000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_6 "sine: f64" FLOAT64_IEEE channel_6.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x90000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_7.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_7 "sine: f64" FLOAT64_IEEE channel_7.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x90000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_7 "sine: f64" FLOAT64_IEEE channel_7.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xA0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_8.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_8 "sine: f64" FLOAT64_IEEE channel_8.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xA0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_8 "sine: f64" FLOAT64_IEEE channel_8.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xB0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_9.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_9 "sine: f64" FLOAT64_IEEE channel_9.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xB0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter "" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x1F7E0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u16 "wrapping counter: u16" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x1F7E6 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u32 "wrapping counter: u32" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x1F7E8 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u64 "wrapping counter: u64" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x1F7EC ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u8 "wrapping counter: u8" UBYTE NO_COMPU_METHOD 0 0 0 255 PHYS_UNIT "" ECU_ADDRESS 0x1F7E5 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_9 "sine: f64" FLOAT64_IEEE channel_9.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xC0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter "" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x2F7E0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u16 "wrapping counter: u16" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x2F7E6 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u32 "wrapping counter: u32" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x2F7E8 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u64 "wrapping counter: u64" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x2F7EC ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u8 "wrapping counter: u8" UBYTE NO_COMPU_METHOD 0 0 0 255 PHYS_UNIT "" ECU_ADDRESS 0x2F7E5 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin MEASUREMENT mainloop_counter "counter on stack" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0xFFF0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT mainloop_counter2 "counter on heap" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin CHARACTERISTIC point_cloud "struct serializer demo" ASCII 0x20000 U8 0 NO_COMPU_METHOD 0 255 READ_ONLY NUMBER 64 ECU_ADDRESS_EXTENSION 2
+/begin MEASUREMENT mainloop_counter2 "counter on heap" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x10000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin CHARACTERISTIC point_cloud "struct serializer demo" ASCII 0x30000 U8 0 NO_COMPU_METHOD 0 255 READ_ONLY NUMBER 64 ECU_ADDRESS_EXTENSION 2
/begin ANNOTATION ANNOTATION_LABEL "ObjectDescription" ANNOTATION_ORIGIN "application/dds" /begin ANNOTATION_TEXT
" "
"Vector::PointCloud"
@@ -247,9 +248,11 @@ CalPage2.period
/end ANNOTATION_TEXT /end ANNOTATION
/begin ANNOTATION ANNOTATION_LABEL "IsVlsd" ANNOTATION_ORIGIN "" /begin ANNOTATION_TEXT "true" /end ANNOTATION_TEXT /end ANNOTATION
/begin ANNOTATION ANNOTATION_LABEL "MaxBufferNeeded" ANNOTATION_ORIGIN "" /begin ANNOTATION_TEXT "64" /end ANNOTATION_TEXT /end ANNOTATION
- /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end CHARACTERISTIC
+ /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 3 /end DAQ_EVENT /end IF_DATA /end CHARACTERISTIC
/begin GROUP mainloop "" /begin REF_MEASUREMENT
mainloop_counter
+/end REF_MEASUREMENT /end GROUP
+/begin GROUP mainloop_counter2 "" /begin REF_MEASUREMENT
mainloop_counter2
/end REF_MEASUREMENT /end GROUP
/begin GROUP task1 "" /begin REF_MEASUREMENT
@@ -263,31 +266,15 @@ counter_u8
/begin GROUP task1_points "" /begin REF_MEASUREMENT
point_cloud
/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_1 "" /begin REF_MEASUREMENT
+/begin GROUP task2_inst "" /begin REF_MEASUREMENT
channel_1
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_2 "" /begin REF_MEASUREMENT
channel_2
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_3 "" /begin REF_MEASUREMENT
channel_3
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_4 "" /begin REF_MEASUREMENT
channel_4
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_5 "" /begin REF_MEASUREMENT
channel_5
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_6 "" /begin REF_MEASUREMENT
channel_6
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_7 "" /begin REF_MEASUREMENT
channel_7
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_8 "" /begin REF_MEASUREMENT
channel_8
-/end REF_MEASUREMENT /end GROUP
-/begin GROUP task2_inst_9 "" /begin REF_MEASUREMENT
channel_9
/end REF_MEASUREMENT /end GROUP
/begin GROUP task2_static "" /begin REF_MEASUREMENT
diff --git a/build.rs b/build.rs
index e0fa5a4..f33a2ce 100644
--- a/build.rs
+++ b/build.rs
@@ -15,6 +15,7 @@ fn main() {
// //
// .blocklist_type("T_CLOCK_INFO")
// .allowlist_function("XcpInit")
+ // .allowlist_function("XcpEvent")
// .allowlist_function("XcpEventExt")
// .allowlist_function("XcpPrint")
// .allowlist_function("XcpEthServerInit")
@@ -22,6 +23,7 @@ fn main() {
// .allowlist_function("XcpEthServerStatus")
// .allowlist_function("ApplXcpSetLogLevel")
// .allowlist_function("ApplXcpSetA2lName")
+ // .allowlist_function("ApplXcpGetAddr")
// .allowlist_function("ApplXcpRegisterCallbacks")
// //
// .generate()
diff --git a/examples/rayon_demo/CANape/.gitignore b/examples/rayon_demo/CANape/.gitignore
index 471c630..5bc665f 100644
--- a/examples/rayon_demo/CANape/.gitignore
+++ b/examples/rayon_demo/CANape/.gitignore
@@ -1 +1,2 @@
/tokio_demo.HEX
+/FLASH_tokio_demo.HEX
diff --git a/examples/rayon_demo/CANape/CANape.ini b/examples/rayon_demo/CANape/CANape.ini
index 0c47dd4..ac86d54 100644
--- a/examples/rayon_demo/CANape/CANape.ini
+++ b/examples/rayon_demo/CANape/CANape.ini
@@ -6,7 +6,7 @@
;-------------------------------------------------------------------------------
[!!!!!_CONSISTENCY_CHECK_START_SECTION_!!!!!]
-GUID={E1E212EB-5105-46F9-B787-4FED32FFE2D6}
+GUID={71300A12-E465-4BC5-8B0B-2029B8486CC6}
[FILE_INFO]
Identification=CANape-Project-File
@@ -20,8 +20,8 @@ PrgDate=08.07.2024
Description=
CreationTime=19:37
CreationDate=06/23/2024 ; Month/Day/Year
-ModificationTime=22:10
-ModificationDate=07/30/2024 ; Month/Day/Year
+ModificationTime=14:42
+ModificationDate=08/01/2024 ; Month/Day/Year
Protected=0
CurrentWindowsACP=1252
@@ -379,6 +379,10 @@ SHOW_MIGRATION_DIALOG_PARAMETER_WINDOW=1
IMAGE_ANONYMIZATION=0
TID=1
MDF_WRITE_INVAL_BITS=1
+AlgorithmConfiguratioDialog_PortColumn_Configuration=
+AlgorithmConfiguratioDialog_PortColumn_Configuration_dpi96=
+REOPEN_FUNCTIONS_BROWSER=0
+SHOW_MESSAGE_BEFORE_CLOSE_FB_AT_MEASUREMENT=1
[WRITEWINDOW]
@@ -394,7 +398,7 @@ MDF_WRITE_INVAL_BITS=1
; 0x20 Show command messages (with a hand symbol)
; 0x1000 Suppress CASL runtime errors (ATTENTION: When true CASL runtime errors are suppressed, so that the errors are displayed with the default flags to not change the behaviour of existing projects.)
; As default all messages are shown
-SHOW_MESSAGES=255
+SHOW_MESSAGES=4351
LOG=0
LOGFILE=WriteWindow_log.TXT
LOG_OVERWRITE=0
@@ -1023,25 +1027,25 @@ ConfigurationJson={"RemoteServiceDataList":[{"DisplayName":"CANape Master","Ip":
[DlgCommentWrapper]
ScreenDPIinSection=192
-WindowLeft=1060
-WindowLeft_dpi96=530
-WindowTop=621
-WindowTop_dpi96=311
+WindowLeft=909
+WindowLeft_dpi96=455
+WindowTop=542
+WindowTop_dpi96=271
WindowWidth=1350
WindowWidth_dpi96=675
-WindowHeight=893
-WindowHeight_dpi96=447
+WindowHeight=923
+WindowHeight_dpi96=462
[DlgMdfComment]
ScreenDPIinSection=192
-WindowLeft=1073
-WindowLeft_dpi96=537
-WindowTop=679
-WindowTop_dpi96=340
+WindowLeft=922
+WindowLeft_dpi96=461
+WindowTop=600
+WindowTop_dpi96=300
WindowWidth=1324
WindowWidth_dpi96=662
-WindowHeight=756
-WindowHeight_dpi96=378
+WindowHeight=786
+WindowHeight_dpi96=393
[DlgSaveConfigs]
ScreenDPIinSection=192
@@ -1168,17 +1172,19 @@ HEIGHT=-24
COUNT=0
[FUNCTIONS]
-COUNT=0
+COUNT=1
[MDF_FILE_COLLECTIONS]
COUNT=0
+1="FILE1", "mandelbrot.mf4", "d29ea1e7-6f9c-43ea-b533-2791f7caf298"
[MDF_FILES]
COUNT=0
+1="FILE1", "mandelbrot.mf4"
[MEASUREMENT_0]
FileId=Measurement1
-MeasurementId=e42c9f6a-e752-471c-8c0e-09652e92ff93
+MeasurementId=8cde6f50-8fa6-404e-86d0-fd27248bdd45
MeasurementMapped=0
[MEASUREMENTS]
@@ -1390,7 +1396,7 @@ BEG_CAL_SERVICE=0x0
END_CAL_SERVICE=0x0
TEST_CONNECTION_PERIOD=0
OVERRUN_HANDLING=0
-EVENT_COUNT=12
+EVENT_COUNT=13
EVENT_CHANNEL_0=0x0000
EVENT_CHANNEL_1=0x0001
EVENT_CHANNEL_2=0x0002
@@ -1488,7 +1494,7 @@ PSEUDO_CAN_ID_START=2415919104
DSP_MODE=0
DAQ_LIST_AUTODETECT=1
DAQ_COUNT=0
-DAQ_CONFIG_ID=3150
+DAQ_CONFIG_ID=3194
DAQ_START_STOP_ALL_DISABLED=0
INIT_CAL_PAGE_SEGMENTWISE=0
CALRAM_CHECK_INITIAL_PAGE=1
@@ -1601,7 +1607,7 @@ CHECKSUM_ENABLED=1
CHECKSUM_DLL_NAME=
CHECKSUM_MAX_BLOCKSIZE=65535
ENABLE_CHECKSUM_OUTPUT=0
-CHECKSUM_TYPE_MAPPING_2=3
+CHECKSUM_TYPE_MAPPING_2=2
SELECT_CAL_PAGE=1
INIT_CAL_PAGE=0
RAM_PAGE_ID=0x0
@@ -1717,7 +1723,7 @@ EVENT_DPM_SUPPORTED_9=0
EVENT_DPM_SUPPORTED_10=0
MEMORY_SEGMENT_NAME_2=mandelbrot
MEMORY_SEGMENT_TYPE_2=FLASH,DATA,INTERN
-MEMORY_SEGMENT_SIZE_2=0x00000020
+MEMORY_SEGMENT_SIZE_2=0x00000018
MEMORY_SEGMENT_ADDR_2=0x80010000
MEMORY_SEGMENT_ADDR_EXT_2=0x00
MEMORY_SEGMENT_ATTRIBUTE_2=0x00000000
@@ -1725,7 +1731,7 @@ MEMORY_SEGMENT_FLASH_OFFSET_2=0x00000000
MEMORY_SEGMENT_ADDRESS_MAPPING_2=
CALRAM_SECTOR_NAME_2=mandelbrot
CALRAM_SECTOR_TYPE_2=FLASH,DATA,INTERN
-CALRAM_SECTOR_SIZE_2=0x00000020
+CALRAM_SECTOR_SIZE_2=0x00000018
CALRAM_SECTOR_ADDR_2=0x80010000
CALRAM_SECTOR_ADDR_EXT_2=0x00
CALRAM_SECTOR_ATTRIBUTE_2=0x00000000
@@ -1742,6 +1748,28 @@ EVENT_MULTISAMPLES_11=0
EVENT_MIN_CYCLE_TIME_CYCLE_11=0
EVENT_MIN_CYCLE_TIME_UNIT_11=9
EVENT_DPM_SUPPORTED_11=0
+EVENT_CHANNEL_12=0x000C
+EVENT_CYCLE_12=0
+EVENT_SAMPLE_UNIT_12=3
+EVENT_MODE_12=4
+EVENT_PRIO_12=0
+EVENT_MAX_DAQ_LIST_12=255
+EVENT_NAME_12=update
+EVENT_MULTISAMPLES_12=0
+EVENT_MIN_CYCLE_TIME_CYCLE_12=0
+EVENT_MIN_CYCLE_TIME_UNIT_12=9
+EVENT_DPM_SUPPORTED_12=0
+EVENT_CHANNEL_13=0x000D
+EVENT_CYCLE_13=0
+EVENT_SAMPLE_UNIT_13=3
+EVENT_MODE_13=4
+EVENT_PRIO_13=0
+EVENT_MAX_DAQ_LIST_13=255
+EVENT_NAME_13=update
+EVENT_MULTISAMPLES_13=0
+EVENT_MIN_CYCLE_TIME_CYCLE_13=0
+EVENT_MIN_CYCLE_TIME_UNIT_13=9
+EVENT_DPM_SUPPORTED_13=0
[MODULES]
CREATE_SYSTEM_DEVICE=1
@@ -1949,8 +1977,8 @@ COPY_COMPLETED_AS_READ_ONLY=0
COPY_QUALITY_DATA=0
CHANGED_FROM_LAST=0
SD_FIELD_ORDER=0
-PREDEFINED_ENTRY_00=---2024-07-30T22:02:41
-PREDEFINED_ENTRY_01=changed2024-07-30T22:02:41
+PREDEFINED_ENTRY_00=---2024-08-01T09:33:18
+PREDEFINED_ENTRY_01=changed2024-08-01T09:33:18
PREDEFINED_ENTRY_COUNT=2
SD_FIELD_ENTRY_1=
SD_FIELD_ENTRY_2=
@@ -2048,7 +2076,7 @@ PdhObjectList=0
Smart_UPS_Configuration=
[TASKLIST]
-COUNT=0
+COUNT=1
[TimeManagement]
MasterClock=0
@@ -2078,6 +2106,12 @@ COLUMNS_TYP1_CONTEXT1_ScreenDPI=192
COLUMNS_TYP1_CONTEXT4=
COLUMNS_TYP1_CONTEXT4_dpi96=
COLUMNS_TYP1_CONTEXT4_ScreenDPI=192
+COLUMNS_TYP2097152_CONTEXT1=
+COLUMNS_TYP2097152_CONTEXT1_dpi96=
+COLUMNS_TYP2097152_CONTEXT1_ScreenDPI=192
+COLUMNS_TYP2097152_CONTEXT4=
+COLUMNS_TYP2097152_CONTEXT4_dpi96=
+COLUMNS_TYP2097152_CONTEXT4_ScreenDPI=192
[VIEW_ITEM_DIALOG]
ScreenDPIinSection=192
@@ -2145,10 +2179,10 @@ ColWidthDisplay=462
ShowMore=0
MoreHeight=566
MoreHeight_dpi96=283
-WindowLeft=1114
-WindowLeft_dpi96=557
-WindowTop=748
-WindowTop_dpi96=374
+WindowLeft=963
+WindowLeft_dpi96=482
+WindowTop=684
+WindowTop_dpi96=342
WindowWidth=1242
WindowWidth_dpi96=621
WindowHeight=260
@@ -2167,7 +2201,7 @@ SIZEY_dpi96=700
SHOWTOOLBAR=1
SHOWSTATUSBAR=1
SHOWGRID=0
-RIGHTPANE2HEIGHT=-1
+RIGHTPANE2HEIGHT=-2
RIGHTPANE2HEIGHT_dpi96=-1
TREEX=450
TREEX_dpi96=225
@@ -2516,10 +2550,12 @@ SELECT_SORT_COLUMN_ID=31
SELECT_SORT_UPWARD=1
LAST_PAGE_NAME_DLG_FILTER=
LAST_PAGE_ID_DLG_FILTER=1504
-OBJECT_DIALOG_WITH=1189
+OBJECT_DIALOG_WITH=1190
OBJECT_DIALOG_WITH_dpi96=595
-OBJECT_DIALOG_HEIGHT=613
+OBJECT_DIALOG_HEIGHT=614
OBJECT_DIALOG_HEIGHT_dpi96=307
+LAST_PAGE_NAME_DLG_VARIABLE=
+LAST_PAGE_ID_DLG_VARIABLE=21296
[DB_EXPLORER_SEARCH_FILTER]
SEARCH_CASE_SENSITIVE=0
@@ -2543,71 +2579,57 @@ SEARCH_COMMENT=
SEARCH_NAME=*
PARENT=
-[DEVICE_EXPLORER_COLUMNLIST_CHANNELS]
-ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[DEVICE_EXPLORER_COLUMNLIST_DEVICES]
+[Dialog_MdiCfgDlg_Typ2097152]
+LastOpenedDlgType=1
+TreeWidth=240
+TreeWidth_dpi96=120
ScreenDPIinSection=192
-ColumnCount=10
-Column_0=34, 96
-Column_0_dpi96=34, 48
-Column_1=0, 460
-Column_1_dpi96=0, 230
-Column_2=131078, 160
-Column_2_dpi96=131078, 80
-Column_3=131103, 100
-Column_3_dpi96=131103, 50
-Column_4=131079, 100
-Column_4_dpi96=131079, 50
-Column_5=262145, 240
-Column_5_dpi96=262145, 120
-Column_6=131085, 200
-Column_6_dpi96=131085, 100
-Column_7=131080, 240
-Column_7_dpi96=131080, 120
-Column_8=131081, 160
-Column_8_dpi96=131081, 80
-Column_9=196609, 100
-Column_9_dpi96=196609, 50
-ColumnIdSort=-1
-SortUpward=1
-
-[DEVICE_EXPLORER_COLUMNLIST_NETWORKS]
+WindowLeft=233
+WindowLeft_dpi96=117
+WindowTop=1495
+WindowTop_dpi96=748
+WindowWidth=2188
+WindowWidth_dpi96=1094
+WindowHeight=616
+WindowHeight_dpi96=308
+
+[InsertArrayRowColDialog]
ScreenDPIinSection=192
-ColumnCount=0
-ColumnIdSort=-1
-SortUpward=1
-
-[MEASUREMENT_DISPLAY]
+WindowLeft=1337
+WindowLeft_dpi96=669
+WindowTop=953
+WindowTop_dpi96=477
+WindowWidth=797
+WindowWidth_dpi96=399
+WindowHeight=427
+WindowHeight_dpi96=214
+
+[MEASUREMENT_DISPLAY_SELECT_REDUCED]
ScreenDPIinSection=192
POSX=0
POSX_dpi96=0
POSY=0
POSY_dpi96=0
-SIZEX=2180
-SIZEX_dpi96=1090
+SIZEX=1620
+SIZEX_dpi96=810
SIZEY=1200
SIZEY_dpi96=600
SHOWTOOLBAR=1
SHOWSTATUSBAR=1
SHOWGRID=0
-RIGHTPANE2HEIGHT=304
-RIGHTPANE2HEIGHT_dpi96=152
+RIGHTPANE2HEIGHT=-1
+RIGHTPANE2HEIGHT_dpi96=-1
TREEX=450
TREEX_dpi96=225
-TREEY=1009
-TREEY_dpi96=505
+TREEY=1048
+TREEY_dpi96=524
ACTIVEPANE=0
-SELECTED_TREENODE=Messsignale/tokio_demo
-FIRSTVISIBLE_TREENODE=Messoptionen
-TREEEXPAND_COUNT=2
+SELECTED_TREENODE=Messsignale
+FIRSTVISIBLE_TREENODE=Messsignale
+TREEEXPAND_COUNT=1
TREEEXPAND_0=Messsignale
-TREEEXPAND_1=Rekorderliste
LAST_FOCUSED_LISTCOLUMN=0
-LAST_FOCUSED_LISTINDEX=10
+LAST_FOCUSED_LISTINDEX=13
LAST_TOP_LISTINDEX=0
DAQLISTS=2
STATUSBAR_BYTES=1
@@ -2616,46 +2638,45 @@ LABELLISTMEAMODE=0
LABELLISTBUSSIGNALMODE=0
TEXT_SEARCH=
VXIIColumnsAdded=0
-SHOWONLYACTIVE=0
-[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_EVENTS]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_CUSTOM]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_EVENTS_CUSTOM]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_KEY]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_EVENTS_KEY]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_SYSTEM]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_EVENTS_SYSTEM]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=196608
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_SYSTEM_DEVICE]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_EVENTS_SYSTEM_DEVICE]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_KNOWN_DYNAMIC_COLUMNS_NORMAL]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_KNOWN_DYNAMIC_COLUMNS_NORMAL]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
VERSION=100
-[MEASUREMENT_DISPLAY_COLUMNLIST_NORMAL]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_NORMAL]
ScreenDPIinSection=192
ColumnCount=8
Column_0=65542, 100
@@ -2674,67 +2695,70 @@ Column_6=65597, 200
Column_6_dpi96=65597, 100
Column_7=98305, 160
Column_7_dpi96=98305, 80
-ColumnIdSort=65542
+ColumnIdSort=-1
SortUpward=1
VERSION=100
-[MEASUREMENT_DISPLAY_COLUMNLIST_RECORDER]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_RECORDER]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
VERSION=100
-[MEASUREMENT_DISPLAY_COLUMNLIST_RECORDER_BUSLOGGING]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_RECORDER_BUSLOGGING]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_RECORDERS]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_RECORDERS]
ScreenDPIinSection=192
-ColumnCount=6
-Column_0=327711, 400
-Column_0_dpi96=327711, 200
-Column_1=327684, 120
-Column_1_dpi96=327684, 60
-Column_2=327709, 300
-Column_2_dpi96=327709, 150
-Column_3=327695, 130
-Column_3_dpi96=327695, 65
-Column_4=327681, 400
-Column_4_dpi96=327681, 200
-Column_5=327683, 400
-Column_5_dpi96=327683, 200
+ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_SOUNDS]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_SOUNDS]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_TARA_ACTIVE_SIGNALS]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_TARA_ACTIVE_SIGNALS]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_TARA_ALL_SIGNALS]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_TARA_ALL_SIGNALS]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_COLUMNLIST_VIO]
+[MEASUREMENT_DISPLAY_SELECT_REDUCED_COLUMNLIST_VIO]
ScreenDPIinSection=192
ColumnCount=0
ColumnIdSort=-1
SortUpward=1
-[MEASUREMENT_DISPLAY_DYNAMIC_COLUMNS]
-Count=0
+[DLG_DISPLAY_PAGE]
+LAST_PAGE=Anzeigeseite
+
+[DlgDisplayElements]
+ScreenDPIinSection=192
+ColWidthType=134
+ColWidthType_dpi96=67
+ColWidthInfo=382
+ColWidthInfo_dpi96=191
+ColWidthActive=120
+ColWidthActive_dpi96=60
+ColWidthAutoSize=120
+ColWidthAutoSize_dpi96=60
+ColWidthBorder=120
+ColWidthBorder_dpi96=60
+ColWidthTransparent=154
+ColWidthTransparent_dpi96=77
[COLOR_SCHEME_LIST]
COLOR_SCHEME0=COLOR_SCHEMEUSER_DEFINED
@@ -2873,9 +2897,510 @@ MODE=12
VALUE_COUNT=0
HISTORY_COUNT=0
+[DEVICE_EXPLORER_COLUMNLIST_CHANNELS]
+ScreenDPIinSection=192
+ColumnCount=4
+Column_0=0, 306
+Column_0_dpi96=0, 153
+Column_1=1245185, 132
+Column_1_dpi96=1245185, 66
+Column_2=1245186, 66
+Column_2_dpi96=1245186, 33
+Column_3=1245187, 106
+Column_3_dpi96=1245187, 53
+ColumnIdSort=-1
+SortUpward=1
+
+[DEVICE_EXPLORER_COLUMNLIST_DEVICES]
+ScreenDPIinSection=192
+ColumnCount=10
+Column_0=34, 96
+Column_0_dpi96=34, 48
+Column_1=0, 460
+Column_1_dpi96=0, 230
+Column_2=131078, 160
+Column_2_dpi96=131078, 80
+Column_3=131103, 100
+Column_3_dpi96=131103, 50
+Column_4=131079, 100
+Column_4_dpi96=131079, 50
+Column_5=262145, 240
+Column_5_dpi96=262145, 120
+Column_6=131085, 200
+Column_6_dpi96=131085, 100
+Column_7=131080, 240
+Column_7_dpi96=131080, 120
+Column_8=131081, 160
+Column_8_dpi96=131081, 80
+Column_9=196609, 100
+Column_9_dpi96=196609, 50
+ColumnIdSort=-1
+SortUpward=1
+
+[DEVICE_EXPLORER_COLUMNLIST_NETWORKS]
+ScreenDPIinSection=192
+ColumnCount=6
+Column_0=34, 64
+Column_0_dpi96=34, 32
+Column_1=0, 304
+Column_1_dpi96=0, 152
+Column_2=983041, 192
+Column_2_dpi96=983041, 96
+Column_3=983042, 530
+Column_3_dpi96=983042, 265
+Column_4=983043, 252
+Column_4_dpi96=983043, 126
+Column_5=983044, 300
+Column_5_dpi96=983044, 150
+ColumnIdSort=-1
+SortUpward=1
+
+[DlgAlgorithmConfiguration]
+TreeWidth=339
+TreeWidth_dpi96=170
+ScreenDPIinSection=192
+WindowLeft=967
+WindowLeft_dpi96=484
+WindowTop=798
+WindowTop_dpi96=399
+WindowWidth=1561
+WindowWidth_dpi96=781
+WindowHeight=986
+WindowHeight_dpi96=493
+
+[FUNCTION_1]
+NAME=UpdateHTMPWinodows
+COMMENT=
+COUNT=7
+1=function UpdateHTMPWinodows ()
+2={
+3= CallScript("UpdateHTMLWindows.cns");
+4=
+5=
+6= return ;
+7=}
+
+[FunctionsBrowser]
+ShowWhiteSpace=0
+TabSize=2
+AutoIndent=1
+SmartIndent=1
+KeepTabs=0
+DontShowSyntxErrOnExit=1
+CompileScriptsOnStart=1
+ShowSuggestionBox=1
+Enable0LevelSuggestion=1
+AutoParameterInfo=1
+LoadDotNetScripts=1
+DisplayLineNumbers=1
+ScreenDPIinSection=192
+frm_x=376
+frm_x_dpi96=188
+frm_y=230
+frm_y_dpi96=115
+frm_x1=2460
+frm_x1_dpi96=1230
+frm_y2=1230
+frm_y2_dpi96=615
+frm_show=1
+SplitterPercent1=80
+SplitterPercent2=37.8758797185
+SplitterPercent3=33
+showToolTips=1
+showToolbar=1
+showStatusBar=1
+showTreeView=1
+showTabTablView=1
+NameColSize=80
+CmntColSize=250
+tabSel=0
+TabTabl0ColSize=400 120 260 200 300 700
+TabTabl0ColSize_dpi96=200 60 130 100 150 350
+TabTabl1ColSize=400 700 0 0 0 0
+TabTabl1ColSize_dpi96=200 350 0 0 0 0
+TabTabl2ColSize=400 700 0 0 0 0
+TabTabl2ColSize_dpi96=200 350 0 0 0 0
+TabTabl3ColSize=400 700 0 0 0 0
+TabTabl3ColSize_dpi96=200 350 0 0 0 0
+TreeExpStatus=6
+DisplayIntValuesAsHex=0
+DisplayCharArrayAsString=1
+LAST_SESSION_SRC_TYPE=1
+LAST_SESSION_SRC_NAME=UpdateHTMPWinodows
+LAST_SESSION_CARRET_LINE=2
+LAST_SESSION_CARRET_COL=35
+LAST_SESSION_TOP_LINE=0
+
+[FunctionsBrowserSingleMode]
+ScreenDPIinSection=192
+frm_x=20
+frm_x_dpi96=10
+frm_y=20
+frm_y_dpi96=10
+frm_x1=1620
+frm_x1_dpi96=810
+frm_y2=1020
+frm_y2_dpi96=510
+frm_show=1
+SplitterPercent1=80
+SplitterPercent2=25
+SplitterPercent3=33
+showToolTips=1
+showToolbar=1
+showStatusBar=1
+showTreeView=1
+showTabTablView=1
+NameColSize=80
+CmntColSize=250
+tabSel=0
+TabTabl0ColSize=400 120 260 200 300 700
+TabTabl0ColSize_dpi96=200 60 130 100 150 350
+TabTabl1ColSize=400 700 0 0 0 0
+TabTabl1ColSize_dpi96=200 350 0 0 0 0
+TabTabl2ColSize=400 700 0 0 0 0
+TabTabl2ColSize_dpi96=200 350 0 0 0 0
+TabTabl3ColSize=400 700 0 0 0 0
+TabTabl3ColSize_dpi96=200 350 0 0 0 0
+TreeExpStatus=0
+DisplayIntValuesAsHex=0
+DisplayCharArrayAsString=1
+
+[Funktionsauswahl]
+WindowState=0
+X=87.5
+Y=533.5
+
+[MEASUREMENT_DISPLAY]
+ScreenDPIinSection=192
+POSX=0
+POSX_dpi96=0
+POSY=0
+POSY_dpi96=0
+SIZEX=2192
+SIZEX_dpi96=1096
+SIZEY=1322
+SIZEY_dpi96=661
+SHOWTOOLBAR=1
+SHOWSTATUSBAR=1
+SHOWGRID=0
+RIGHTPANE2HEIGHT=434
+RIGHTPANE2HEIGHT_dpi96=217
+TREEX=450
+TREEX_dpi96=225
+TREEY=1131
+TREEY_dpi96=566
+ACTIVEPANE=1
+SELECTED_TREENODE=Messsignale/tokio_demo
+FIRSTVISIBLE_TREENODE=Messoptionen
+TREEEXPAND_COUNT=3
+TREEEXPAND_0=Messsignale
+TREEEXPAND_1=Messsignale/tokio_demo
+TREEEXPAND_2=Rekorderliste
+LAST_FOCUSED_LISTCOLUMN=0
+LAST_FOCUSED_LISTINDEX=12
+LAST_TOP_LISTINDEX=0
+DAQLISTS=2
+STATUSBAR_BYTES=1
+DIALOGFILEEXTEXPORT=vsf
+LABELLISTMEAMODE=0
+LABELLISTBUSSIGNALMODE=0
+TEXT_SEARCH=
+VXIIColumnsAdded=0
+SHOWONLYACTIVE=0
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_CUSTOM]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_KEY]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_SYSTEM]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=196608
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_EVENTS_SYSTEM_DEVICE]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_KNOWN_DYNAMIC_COLUMNS_NORMAL]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_NORMAL]
+ScreenDPIinSection=192
+ColumnCount=8
+Column_0=65542, 100
+Column_0_dpi96=65542, 50
+Column_1=29, 88
+Column_1_dpi96=29, 44
+Column_2=34, 96
+Column_2_dpi96=34, 48
+Column_3=31, 324
+Column_3_dpi96=31, 162
+Column_4=65540, 408
+Column_4_dpi96=65540, 204
+Column_5=65541, 120
+Column_5_dpi96=65541, 60
+Column_6=65597, 200
+Column_6_dpi96=65597, 100
+Column_7=98305, 160
+Column_7_dpi96=98305, 80
+ColumnIdSort=65542
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_RECORDER]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_RECORDER_BUSLOGGING]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_RECORDERS]
+ScreenDPIinSection=192
+ColumnCount=6
+Column_0=327711, 400
+Column_0_dpi96=327711, 200
+Column_1=327684, 120
+Column_1_dpi96=327684, 60
+Column_2=327709, 300
+Column_2_dpi96=327709, 150
+Column_3=327695, 130
+Column_3_dpi96=327695, 65
+Column_4=327681, 400
+Column_4_dpi96=327681, 200
+Column_5=327683, 400
+Column_5_dpi96=327683, 200
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_SOUNDS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_TARA_ACTIVE_SIGNALS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_TARA_ALL_SIGNALS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_COLUMNLIST_VIO]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_DYNAMIC_COLUMNS]
+Count=0
+
+[MEASUREMENT_DISPLAY_SELECT]
+ScreenDPIinSection=192
+POSX=0
+POSX_dpi96=0
+POSY=0
+POSY_dpi96=0
+SIZEX=1620
+SIZEX_dpi96=810
+SIZEY=1200
+SIZEY_dpi96=600
+SHOWTOOLBAR=1
+SHOWSTATUSBAR=1
+SHOWGRID=0
+RIGHTPANE2HEIGHT=304
+RIGHTPANE2HEIGHT_dpi96=152
+TREEX=450
+TREEX_dpi96=225
+TREEY=1009
+TREEY_dpi96=505
+ACTIVEPANE=0
+SELECTED_TREENODE=Messsignale
+FIRSTVISIBLE_TREENODE=Messoptionen
+TREEEXPAND_COUNT=1
+TREEEXPAND_0=Messsignale
+LAST_FOCUSED_LISTCOLUMN=0
+LAST_FOCUSED_LISTINDEX=15
+LAST_TOP_LISTINDEX=0
+DAQLISTS=2
+STATUSBAR_BYTES=1
+DIALOGFILEEXTEXPORT=vsf
+LABELLISTMEAMODE=0
+LABELLISTBUSSIGNALMODE=0
+TEXT_SEARCH=
+VXIIColumnsAdded=0
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_CUSTOM]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_KEY]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_SYSTEM]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=196608
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_EVENTS_SYSTEM_DEVICE]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_KNOWN_DYNAMIC_COLUMNS_NORMAL]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_NORMAL]
+ScreenDPIinSection=192
+ColumnCount=8
+Column_0=65542, 100
+Column_0_dpi96=65542, 50
+Column_1=29, 88
+Column_1_dpi96=29, 44
+Column_2=34, 96
+Column_2_dpi96=34, 48
+Column_3=31, 460
+Column_3_dpi96=31, 230
+Column_4=65540, 160
+Column_4_dpi96=65540, 80
+Column_5=65541, 120
+Column_5_dpi96=65541, 60
+Column_6=65597, 200
+Column_6_dpi96=65597, 100
+Column_7=98305, 160
+Column_7_dpi96=98305, 80
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDER]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+VERSION=100
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDER_BUSLOGGING]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_RECORDERS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_SOUNDS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_TARA_ACTIVE_SIGNALS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_TARA_ALL_SIGNALS]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_COLUMNLIST_VIO]
+ScreenDPIinSection=192
+ColumnCount=0
+ColumnIdSort=-1
+SortUpward=1
+
+[MEASUREMENT_DISPLAY_SELECT_DYNAMIC_COLUMNS]
+Count=0
+
+[Module_FILE1]
+DefaultReplaceFile=0
+Converter=Converter_ID
+
+[PARASETEXPLORER]
+LAST_SELECTED_SAVEDIALOG_FILETYPE_FILTER=PAR-Dateien(*.par)|*.par|
+LASTFILTER=AllFiles
+
+[SELECT_SCRIPT_DIALOG]
+ScreenDPIinSection=192
+WindowLeft=1284
+WindowLeft_dpi96=642
+WindowTop=768
+WindowTop_dpi96=384
+WindowWidth=638
+WindowWidth_dpi96=319
+WindowHeight=462
+WindowHeight_dpi96=231
+
[SIGNSELWND_DYNAMIC_COLUMNS]
Count=0
+[TASK_1]
+PATH=UpdateHTMLWindows.cns
+STARTUP=0
+CURRENT_DEVICE=
+
+[TASKMAN]
+ScreenDPIinSection=192
+POSITION=895 1021 2869 1835
+POSITION_dpi96=448 511 1435 918
+COLUMNS=282 112 184 382 282 156 98
+COLUMNS_dpi96=141 56 92 191 141 78 49
+
[~~~~~_CONSISTENCY_CHECK_END_SECTION_~~~~~]
-GUID={E1E212EB-5105-46F9-B787-4FED32FFE2D6}
+GUID={71300A12-E465-4BC5-8B0B-2029B8486CC6}
diff --git a/examples/rayon_demo/CANape/UpdateHTMLWindows.cns b/examples/rayon_demo/CANape/UpdateHTMLWindows.cns
new file mode 100644
index 0000000..abc2728
--- /dev/null
+++ b/examples/rayon_demo/CANape/UpdateHTMLWindows.cns
@@ -0,0 +1 @@
+UpdateHTMLWindows();
diff --git a/examples/rayon_demo/CANape/mandelbrot.par b/examples/rayon_demo/CANape/mandelbrot.par
index 4219765..9a364e2 100644
--- a/examples/rayon_demo/CANape/mandelbrot.par
+++ b/examples/rayon_demo/CANape/mandelbrot.par
@@ -1,11 +1,9 @@
CANape PAR V3.1: tokio_demo_autodetect.a2l 1 0 tokio_demo
-; visza
-; RDM
;
;
;
-Mandelbrot.x_pixels [UINT(64)] 3000 ; 3000
-Mandelbrot.y_pixels [UINT(64)] 2000 ; 2000
-Mandelbrot.x [DOUBLE] -0.94999999999999995559 ; -0.95
-Mandelbrot.y [DOUBLE] 0.26100000000000000977 ; 0.261
-Mandelbrot.width [DOUBLE] 2.1999999999999998723e-2 ; 0.022
+;
+;
+Mandelbrot.x [DOUBLE] -1.3999999999999999112 ; -1.4
+Mandelbrot.y [DOUBLE] 0 ; 0
+Mandelbrot.width [DOUBLE] 0.10000000000000000555 ; 0.1
diff --git a/examples/rayon_demo/CANape/rayon_demo.cna b/examples/rayon_demo/CANape/rayon_demo.cna
index 44f289d..cfb7b9f 100644
--- a/examples/rayon_demo/CANape/rayon_demo.cna
+++ b/examples/rayon_demo/CANape/rayon_demo.cna
@@ -10,8 +10,8 @@ PrgDate=08.07.2024
Description=
CreationTime=20:42
CreationDate=06/23/2024 ; Month/Day/Year
-ModificationTime=22:10
-ModificationDate=07/30/2024 ; Month/Day/Year
+ModificationTime=14:42
+ModificationDate=08/01/2024 ; Month/Day/Year
Protected=0
CurrentWindowsACP=1252
@@ -22,10 +22,10 @@ Count=1
Count=0
[CALIBRATION_LIST]
-Count=5
+Count=3
[CALIBRATION_OBJECT_1]
-EditOffset=1
+EditOffset=0.001
EditFactor=2
EditFormat=2
ShowWorkingPoint=0
@@ -36,7 +36,7 @@ StimMode=0
IsFallback=0
[CALIBRATION_OBJECT_2]
-EditOffset=0.01
+EditOffset=0.001
EditFactor=2
EditFormat=2
ShowWorkingPoint=0
@@ -47,18 +47,7 @@ StimMode=0
IsFallback=0
[CALIBRATION_OBJECT_3]
-EditOffset=1
-EditFactor=2
-EditFormat=2
-ShowWorkingPoint=0
-FollowWorkingPoint=0
-Module=tokio_demo
-Name=Mandelbrot.x_pixels
-StimMode=0
-IsFallback=0
-
-[CALIBRATION_OBJECT_4]
-EditOffset=1
+EditOffset=0.1
EditFactor=2
EditFormat=2
ShowWorkingPoint=0
@@ -68,17 +57,6 @@ Name=Mandelbrot.y
StimMode=0
IsFallback=0
-[CALIBRATION_OBJECT_5]
-EditOffset=1
-EditFactor=2
-EditFormat=2
-ShowWorkingPoint=0
-FollowWorkingPoint=0
-Module=tokio_demo
-Name=Mandelbrot.y_pixels
-StimMode=0
-IsFallback=0
-
[CANAPE_ENVIRONMENT]
OBJECT_COUNT=0
@@ -122,7 +100,7 @@ Count=0
Name=
Comment=
Maximized=0
-ActiveWindow=5
+ActiveWindow=3
IsReportPage=0
TimeAxisSynchronized=0
PrintLayout=Default
@@ -131,8 +109,21 @@ GUID=DISPLAY_PAGE_f96953f1-fdfe-47a7-811e-e2231d8a8a62
[DISPLAY_PAGE_1_DisplayElements]
Count=0
+[DISPLAY_PAGE_2]
+Name=Trace
+Comment=
+Maximized=0
+ActiveWindow=8
+IsReportPage=0
+TimeAxisSynchronized=0
+PrintLayout=Default
+GUID=DISPLAY_PAGE_9f535a7c-e6c1-46eb-890b-c585d19950eb
+
+[DISPLAY_PAGE_2_DisplayElements]
+Count=0
+
[DISPLAY_PAGES]
-Count=1
+Count=2
Active=0
[DYNAMIC_COLUMNS]
@@ -149,11 +140,53 @@ Count=0
5="Comment",""
Count=5
+[FUNCTION_1]
+NAME=UpdateHTMPWinodows
+COMMENT=
+COUNT=7
+1=function UpdateHTMPWinodows ()
+2={
+3= CallScript("UpdateHTMLWindows.cns");
+4=
+5=
+6= return ;
+7=}
+
+[FUNCTION_OBJECT_1]
+Number=14
+Unit=
+Components=0
+TimeSeriesSaveMode=0
+StimMode=0
+Name=UpdateWindow
+ObjectType=1
+TextFormula=UpdateHTMPWinodows
+Disabled=0
+FromLibrary=0
+BurstSensitivity=10
+LPcount=0
+Formula=0
+Precision=-1
+HasInitialValue=0
+InitialValue=0
+NumberOfInputSignals=0
+Module=Functions
+Mode=5
+Rate=0
+ModeModule=tokio_demo
+ModeName=1,"update" "tokio_demo"
+Row=0
+Column=0
+MeaReferenced=1
+ArchivBy_1=Rekorder
+IsFallback=0
+DisplayCount=0
+
[FUNCTION_OBJECT_LIST]
-count=0
+count=1
[FUNCTIONS]
-COUNT=0
+COUNT=1
COUNT_LIBRARY=0
[GFX_VISUALIZATION]
@@ -172,7 +205,7 @@ SubConfigsCount=0
Count=0
[MEASUREMENT_LIST]
-Count=12
+Count=14
OfflineFileName=mandelbrot.mf4
OfflineFileCount=1
MeaCfgLabellistName=
@@ -213,10 +246,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-2155.24367816
-YMaxHome=20725.2643678
-YMin=-2155.24367816
-YMax=20725.2643678
+YMinHome=-137.830508475
+YMaxHome=1336.95762712
+YMin=-137.830508475
+YMax=1336.95762712
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -273,10 +306,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-50.5494252874
-YMaxHome=22829.9586207
-YMin=-50.5494252874
-YMax=22829.9586207
+YMinHome=-2.87288135593
+YMaxHome=1471.91525424
+YMin=-2.87288135593
+YMax=1471.91525424
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -315,7 +348,7 @@ GUID=DISPLAY_31bc9642-afff-456b-96ff-ceb4219ceb6c
Module=tokio_demo
Name=elapsed_time
Disabled=0
-Mode=2147483648
+Mode=2147483660
Rate=0
Row=0
Column=0
@@ -327,7 +360,7 @@ DisplayCount=1
[MEASUREMENT_OBJECT_12_DISPLAY_1]
Window=5
-Index=0
+Index=2
Color=65280
ApplyColorToBackground=0
ColorFunction=0
@@ -371,6 +404,126 @@ YAxis_ID=0
AxisTemplate=
GUID=DISPLAY_098ce908-57d2-472f-9b84-272ba87e43e3
+[MEASUREMENT_OBJECT_13]
+Module=tokio_demo
+Name=update_counter
+Disabled=0
+Mode=2147483660
+Rate=0
+Row=0
+Column=0
+MeaReferenced=1
+ArchivBy_1=Rekorder
+IsFallback=0
+HasManagedDisplay=0
+DisplayCount=1
+
+[MEASUREMENT_OBJECT_13_DISPLAY_1]
+Window=5
+Index=1
+Color=255
+ApplyColorToBackground=0
+ColorFunction=0
+ColorFunctionScope=1
+LineTyp=2
+YMinHome=0
+YMaxHome=100
+YMin=0
+YMax=100
+XOffsetNS=0
+XOffset=0
+ValueFormat=3
+BitMask=1
+ShowYAxis=1
+Width=10
+LineStyle=1
+MarkerType=1
+SRMainValue=0
+InvalidValueDrawMode=3
+LineWidth=1
+Precision=-2
+Digits=6
+Enabled=1
+StoredFocused=0
+SublMask=1
+MeaSublMask=0
+LockScaling=0
+RightAxis=0
+MapMode=2
+OverlayGridColor=0
+ShadingMode=3
+EditOffset=1
+EditFactor=2
+WAxisLabel=
+XAxisLabel=
+YAxisLabel=
+AxisCaption=
+Row=0
+Col=0
+YAxis_ID=0
+AxisTemplate=
+GUID=DISPLAY_60c6bd93-6fd4-4a6a-90ea-2bc4863ee909
+
+[MEASUREMENT_OBJECT_14]
+Module=tokio_demo
+Name=mainloop_counter
+Disabled=0
+Mode=2147483648
+Rate=0
+Row=0
+Column=0
+MeaReferenced=1
+ArchivBy_1=Rekorder
+IsFallback=0
+HasManagedDisplay=0
+DisplayCount=1
+
+[MEASUREMENT_OBJECT_14_DISPLAY_1]
+Window=5
+Index=0
+Color=65535
+ApplyColorToBackground=0
+ColorFunction=0
+ColorFunctionScope=1
+LineTyp=2
+YMinHome=0
+YMaxHome=100
+YMin=0
+YMax=100
+XOffsetNS=0
+XOffset=0
+ValueFormat=3
+BitMask=1
+ShowYAxis=1
+Width=10
+LineStyle=1
+MarkerType=1
+SRMainValue=0
+InvalidValueDrawMode=3
+LineWidth=1
+Precision=-2
+Digits=6
+Enabled=1
+StoredFocused=0
+SublMask=1
+MeaSublMask=0
+LockScaling=0
+RightAxis=0
+MapMode=2
+OverlayGridColor=0
+ShadingMode=3
+EditOffset=1
+EditFactor=2
+WAxisLabel=
+XAxisLabel=
+YAxisLabel=
+AxisCaption=
+Row=0
+Col=0
+YAxis_ID=0
+AxisTemplate=
+GUID=DISPLAY_440cf5e5-8349-4780-9501-1809843bb6aa
+
[MEASUREMENT_OBJECT_1_DISPLAY_1]
Window=2
Index=10
@@ -379,10 +532,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-20856.2333333
-YMaxHome=2024.27471264
-YMin=-20856.2333333
-YMax=2024.27471264
+YMinHome=-1345.45762712
+YMaxHome=129.330508475
+YMin=-1345.45762712
+YMax=129.330508475
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -439,10 +592,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-18779.1114943
-YMaxHome=4101.39655172
-YMin=-18779.1114943
-YMax=4101.39655172
+YMinHome=-1210.5
+YMaxHome=264.5
+YMin=-1210.5
+YMax=264.5
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -499,10 +652,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-16701.9896552
-YMaxHome=6180.81609195
-YMin=-16701.9896552
-YMax=6180.81609195
+YMinHome=-1068.23389831
+YMaxHome=394.755932203
+YMin=-1068.23389831
+YMax=394.755932203
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -559,10 +712,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-14615.2551724
-YMaxHome=8253.80689655
-YMin=-14615.2551724
-YMax=8253.80689655
+YMinHome=-960.033898305
+YMaxHome=538.350847458
+YMin=-960.033898305
+YMax=538.350847458
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -619,10 +772,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-12545.4482759
-YMaxHome=10335.0597701
-YMin=-12545.4482759
-YMax=10335.0597701
+YMinHome=-807.957627119
+YMaxHome=666.830508475
+YMin=-807.957627119
+YMax=666.830508475
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -679,10 +832,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-10468.3264368
-YMaxHome=12414.4793103
-YMin=-10468.3264368
-YMax=12414.4793103
+YMinHome=-662.493220339
+YMaxHome=788.698305085
+YMin=-662.493220339
+YMax=788.698305085
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -739,10 +892,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-8388.90689655
-YMaxHome=14491.6011494
-YMin=-8388.90689655
-YMax=14491.6011494
+YMinHome=-540.372881356
+YMaxHome=934.415254237
+YMin=-540.372881356
+YMax=934.415254237
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -799,10 +952,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-6305.47011494
-YMaxHome=16552.145977
-YMin=-6305.47011494
-YMax=16552.145977
+YMinHome=-401.155932203
+YMaxHome=1061.83389831
+YMin=-401.155932203
+YMax=1061.83389831
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -859,10 +1012,10 @@ ApplyColorToBackground=0
ColorFunction=0
ColorFunctionScope=1
LineTyp=3
-YMinHome=-4232.54482759
-YMaxHome=18638.8137931
-YMin=-4232.54482759
-YMax=18638.8137931
+YMinHome=-270.8
+YMaxHome=1192.4
+YMin=-270.8
+YMax=1192.4
XOffsetNS=0
XOffset=0
ValueFormat=3
@@ -968,7 +1121,7 @@ WindowSymbols=1
GlobalCursor=0
GlobalCursorTime=0
GlobalCursorTimeNs=0
-MainWindowPos=1, 190, 87, 3091, 1960 ;cmd, x, y, w, h
+MainWindowPos=1, 28, 23, 3112, 1960 ;cmd, x, y, w, h
[PAR_COMMENT]
1="Name",""
@@ -1126,14 +1279,15 @@ TreeExpand_4=Alle\Messliste\Alle Signale
TreeExpand_5=Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l\mandelbrot
TreeExpand_6=Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l\task
TreeExpand_7=Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l\mainloop
-TreeExpand_8=$Alle\Geräte
-TreeExpand_9=#Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l
-TreeExpand_10=@Alle\Geräte\tokio_demo
-TreeExpand_11=$Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l
-TreeExpand_12=#Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l\mainloop\elapsed_time
-TreeExpand_13=@Alle\Messliste
-TreeExpand_14=$Alle\Messliste\Alle Signale
-TreeExpand_15=#Alle\Messliste\Alle Signale\line_1
+TreeExpand_8=Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l\pixels
+TreeExpand_9=$Alle\Geräte
+TreeExpand_10=#Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l
+TreeExpand_11=@Alle\Geräte\tokio_demo
+TreeExpand_12=$Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l
+TreeExpand_13=#Alle\Geräte\tokio_demo\tokio_demo_autodetect.a2l\task\line_7
+TreeExpand_14=@Alle\Messliste
+TreeExpand_15=$Alle\Messliste\Alle Signale
+TreeExpand_16=#Alle\Messliste\Alle Signale\line_1
TextSearchCaseSensitive=0
TextSearchUseMode=1
TextSearchSearchFullText=1
@@ -1160,11 +1314,11 @@ ShowSignalComments=1
DisplayMask=1 ; pages 1
[WINDOW_2]
-XLen=7760
-XMin=6566
-XMinNs=6566080772
-XMax=6692
-XMaxNs=6692686076
+XLen=10354
+XMin=0
+XMinNs=0
+XMax=417522
+XMaxNs=417522248824
Grid=1
Mark=1
YValue=0
@@ -1180,14 +1334,14 @@ Average=0
ShowMinMax=1
XYModeIndexP1=-1
DisplayModeAuto=0
-XStart=0
+XStart=286679
AbsoluteTimeMode=0
YAxisWidth=188
YAxisWidth_dpi96=94
RightYAxisWidth=0
RightYAxisWidth_dpi96=0
ObjectMode=0
-DisplayMode=2
+DisplayMode=1
ShowSignalMode=0
AxisScrollPos2=0
LegendScrollPos=0
@@ -1198,7 +1352,7 @@ YAxisDynScaleEnabled=0
YAxisDynScaleEnlarge=25
TimeStickToZero=0
XYModeRedrawEnabled=0
-MARKER_TIME_1=14991366819
+MARKER_TIME_1=2188298710
MARKER_TIME_2=2700953089
OscilloscopeEnabled=0
OsciEventCount=0
@@ -1235,14 +1389,12 @@ COL_1_dpi96=1048578, 56
[WINDOW_3]
ProgID=
PROPERTIES_COUNT=1
-PROPERTY_1={"Version":"1.3.0.0","Configuration":{"ArrayWindowSubControlConfiguration":{"NumericGraphicCompositeWidth":311,"NumericGraphicCompositeHeight":132,"LegendCoordinatePoint":{"X":0,"Y":0},"LegendWidth":0,"LegendHeight":0,"LegendLayoutGroupSizeWidth":0,"LegendLayoutGroupSizeHeight":0,"NumericCoordinatePoint":{"X":1,"Y":24},"NumericWidth":309,"NumericHeight":107,"NumericLayoutGroupSizeWidth":309,"NumericLayoutGroupSizeHeight":107,"Intersection2DXWCoordinatePoint":{"X":0,"Y":0},"Intersection2DXWWidth":0,"Intersection2DXWHeight":0,"Intersection2DXWLayoutGroupSizeWidth":0,"Intersection2DXWLayoutGroupSizeHeight":0,"Intersection2DYWCoordinatePoint":{"X":0,"Y":0},"Intersection2DYWWidth":0,"Intersection2DYWHeight":0,"Intersection2DYWLayoutGroupSizeWidth":0,"Intersection2DYWLayoutGroupSizeHeight":0,"Graphic3DCoordinatePoint":{"X":0,"Y":0},"Graphic3DWidth":0,"Graphic3DHeight":0,"Graphic3DLayoutGroupSizeWidth":0,"Graphic3DLayoutGroupSizeHeight":0},"ShowCalibrationBar":true,"ShowHorizontalChartLines":false,"ShowVerticalChartLines":false,"NonSelectedIntersectionLineTransparency":0.100000024,"FocusedValueSymbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.x\":P","ValueObjectConfigurations":[{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.x_pixels\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":0,"ValueAxisMax":1.8446744073709552E+19,"CustomAxisLabels":["","","","","",""]},{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.y_pixels\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":0,"ValueAxisMax":1.8446744073709552E+19,"CustomAxisLabels":["","","","","",""]},{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.x\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":-1000000000000,"ValueAxisMax":1000000000000,"CustomAxisLabels":["","","","","",""]},{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.y\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":-1000000000000,"ValueAxisMax":1000000000000,"CustomAxisLabels":["","","","","",""]},{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.width\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":-1000000000000,"ValueAxisMax":1000000000000,"CustomAxisLabels":["","","","","",""]}],"NumericGraphicControlPosition":0,"NumericGraphicControlSelectedTab":0,"GraphicControlPosition":0,"Height2DXControl":1,"Height2DYControl":1,"Height3DControl":2,"HeightNumericControl":1,"HeightChartControl":1,"HeightLegendControl":0.44999998807907104,"Width2DXControl":1,"Width2DYControl":1,"Width3DControl":2,"WidthNumericControl":2,"WidthChartControl":2,"WidthLegendControl":0.30000001192092896,"HeightValueControl":1,"WidthValueControl":1,"HeightNumericGraphicControl":1,"WidthNumericGraphicControl":1,"Height2DChartsControl":1,"Width2DChartsControl":1,"IsXAxisHeightSynchronizedBetweenCharts":true,"SyncedXAxisHeight":NaN,"XWChartXAxisHeight":NaN,"YWChartXAxisHeight":NaN,"LegendPosition":0,"LegendViewType":0,"LegendTableColumnAttributes":[{"TypeId":"1048594","Size":40},{"TypeId":"1048601","Size":45},{"TypeId":"31","Size":100},{"TypeId":"3","Size":250},{"TypeId":"16","Size":70},{"TypeId":"1048627","Size":100},{"TypeId":"1048631","Size":100},{"TypeId":"1048634","Size":100}],"LegendTabItemAttributes":[{"TypeId":"31","Size":100}],"FlipAxes":false,"AxisDisplayNameMode":3,"ReversedAxis":[false,false],"ShowUnits":false,"ShowObjectColor":false,"SortDescending":false,"SortAttributeId":null,"ShowWorkingPointHistory":false,"NumericViewValueObjectDisplayOption":1,"ValueColumnWidth":127,"ValueColumnWidthDouble":127,"ParameterGroup":"mandelbrot","ModuleName":"tokio_demo","GroupIsFunction":false,"NumericControlAxisAttributes":[],"NumericControlColumnAttributes":[{"TypeId":"31","Size":162}],"ChartViewValueObjectDisplayOption":1,"SerializationCameraPosition":{"X":1,"Y":1,"Z":-1},"SerializationCameraTarget":{"X":0,"Y":0.5,"Z":0},"IsValueAnnotationRotated":false,"EquidistantAxisPoints":false,"BarThickness":0.6,"WorkingPointMarker":0,"LinearWorkingPointInterpolation":true,"ShowAllIntersectionLines":false,"IsValueAxisIndependent":true,"TickLabelRotationAngle":-90,"IsTickLabelRotationEnabled":false,"IsTickLabelRightAligned":false,"ShowBoundarySurface":true,"ShowBoundarySurfaceGradient":false,"ShowCursorAsCrosshair":false,"XAxisAutoRange":true,"ValueAxisAutoRange":true,"ShowAllValueAxes":false,"CurrentColumnChartType":0,"SerializationCursorCrosshairColor":{"R":0,"G":0,"B":0,"A":255},"AlignBarToZero":true,"DefaultChartViewType":2,"AttributeColumnPositioning":1}}
-OBJECTS_COUNT=5
-OBJECT_1=DEVICE:"tokio_demo":"Mandelbrot.x_pixels":P
-OBJECT_2=DEVICE:"tokio_demo":"Mandelbrot.y_pixels":P
-OBJECT_3=DEVICE:"tokio_demo":"Mandelbrot.x":P
-OBJECT_4=DEVICE:"tokio_demo":"Mandelbrot.y":P
-OBJECT_5=DEVICE:"tokio_demo":"Mandelbrot.width":P
-ObjectCount=5
+PROPERTY_1={"Version":"1.3.0.0","Configuration":{"ArrayWindowSubControlConfiguration":{"NumericGraphicCompositeWidth":311,"NumericGraphicCompositeHeight":132,"LegendCoordinatePoint":{"X":0,"Y":0},"LegendWidth":0,"LegendHeight":0,"LegendLayoutGroupSizeWidth":0,"LegendLayoutGroupSizeHeight":0,"NumericCoordinatePoint":{"X":1,"Y":24},"NumericWidth":309,"NumericHeight":107,"NumericLayoutGroupSizeWidth":309,"NumericLayoutGroupSizeHeight":107,"Intersection2DXWCoordinatePoint":{"X":0,"Y":0},"Intersection2DXWWidth":0,"Intersection2DXWHeight":0,"Intersection2DXWLayoutGroupSizeWidth":0,"Intersection2DXWLayoutGroupSizeHeight":0,"Intersection2DYWCoordinatePoint":{"X":0,"Y":0},"Intersection2DYWWidth":0,"Intersection2DYWHeight":0,"Intersection2DYWLayoutGroupSizeWidth":0,"Intersection2DYWLayoutGroupSizeHeight":0,"Graphic3DCoordinatePoint":{"X":0,"Y":0},"Graphic3DWidth":0,"Graphic3DHeight":0,"Graphic3DLayoutGroupSizeWidth":0,"Graphic3DLayoutGroupSizeHeight":0},"ShowCalibrationBar":true,"ShowHorizontalChartLines":false,"ShowVerticalChartLines":false,"NonSelectedIntersectionLineTransparency":0.100000024,"FocusedValueSymbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.x\":P","ValueObjectConfigurations":[{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.x\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":-1000000000000,"ValueAxisMax":1000000000000,"CustomAxisLabels":["","","","","",""]},{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.y\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":-1000000000000,"ValueAxisMax":1000000000000,"CustomAxisLabels":["","","","","",""]},{"Symbol":"DEVICE:\"tokio_demo\":\"Mandelbrot.width\":P","SerializationColor":{"R":0,"G":0,"B":0,"A":255},"Collapsed":false,"SerializationFrameColor":{"R":0,"G":0,"B":0,"A":255},"ValueFormat":0,"AxisValueFormats":[],"NumericFormat":4,"AxisNumericFormats":[],"NumericFormatDigits":6,"IsActive":true,"CurrentChartViewType":2,"PointMarker":1,"IsValueAnnotationEnabled":false,"ValueAxisMin":-1000000000000,"ValueAxisMax":1000000000000,"CustomAxisLabels":["","","","","",""]}],"NumericGraphicControlPosition":0,"NumericGraphicControlSelectedTab":0,"GraphicControlPosition":0,"Height2DXControl":1,"Height2DYControl":1,"Height3DControl":2,"HeightNumericControl":1,"HeightChartControl":1,"HeightLegendControl":0.44999998807907104,"Width2DXControl":1,"Width2DYControl":1,"Width3DControl":2,"WidthNumericControl":2,"WidthChartControl":2,"WidthLegendControl":0.30000001192092896,"HeightValueControl":1,"WidthValueControl":1,"HeightNumericGraphicControl":1,"WidthNumericGraphicControl":1,"Height2DChartsControl":1,"Width2DChartsControl":1,"IsXAxisHeightSynchronizedBetweenCharts":true,"SyncedXAxisHeight":NaN,"XWChartXAxisHeight":NaN,"YWChartXAxisHeight":NaN,"LegendPosition":0,"LegendViewType":0,"LegendTableColumnAttributes":[{"TypeId":"1048594","Size":40},{"TypeId":"1048601","Size":45},{"TypeId":"31","Size":100},{"TypeId":"3","Size":250},{"TypeId":"16","Size":70},{"TypeId":"1048627","Size":100},{"TypeId":"1048631","Size":100},{"TypeId":"1048634","Size":100}],"LegendTabItemAttributes":[{"TypeId":"31","Size":100}],"FlipAxes":false,"AxisDisplayNameMode":3,"ReversedAxis":[false,false],"ShowUnits":false,"ShowObjectColor":false,"SortDescending":false,"SortAttributeId":null,"ShowWorkingPointHistory":false,"NumericViewValueObjectDisplayOption":1,"ValueColumnWidth":127,"ValueColumnWidthDouble":127,"ParameterGroup":"mandelbrot","ModuleName":"tokio_demo","GroupIsFunction":false,"NumericControlAxisAttributes":[],"NumericControlColumnAttributes":[{"TypeId":"31","Size":162}],"ChartViewValueObjectDisplayOption":1,"SerializationCameraPosition":{"X":1,"Y":1,"Z":-1},"SerializationCameraTarget":{"X":0,"Y":0.5,"Z":0},"IsValueAnnotationRotated":false,"EquidistantAxisPoints":false,"BarThickness":0.6,"WorkingPointMarker":0,"LinearWorkingPointInterpolation":true,"ShowAllIntersectionLines":false,"IsValueAxisIndependent":true,"TickLabelRotationAngle":-90,"IsTickLabelRotationEnabled":false,"IsTickLabelRightAligned":false,"ShowBoundarySurface":true,"ShowBoundarySurfaceGradient":false,"ShowCursorAsCrosshair":false,"XAxisAutoRange":true,"ValueAxisAutoRange":true,"ShowAllValueAxes":false,"CurrentColumnChartType":0,"SerializationCursorCrosshairColor":{"R":0,"G":0,"B":0,"A":255},"AlignBarToZero":true,"DefaultChartViewType":2,"AttributeColumnPositioning":1}}
+OBJECTS_COUNT=3
+OBJECT_1=DEVICE:"tokio_demo":"Mandelbrot.x":P
+OBJECT_2=DEVICE:"tokio_demo":"Mandelbrot.y":P
+OBJECT_3=DEVICE:"tokio_demo":"Mandelbrot.width":P
+ObjectCount=3
HiddenDisplayCount=0
Title=mandelbrot
Type=137438953472
@@ -1250,10 +1402,10 @@ Comment=mandelbrot
Number=3
GUID=WINDOW_b3f3f886-c975-469c-a3ac-b76ff137e36c
ScreenDPIinSection=192
-Position=0, 1264, 36, 628, 304 ;cmd, x, y, w, h
-Position_dpi96=0, 632, 18, 314, 152 ;cmd, x, y, w, h
-Position_Page01=0, 1264, 36, 628, 304 ;cmd, x, y, w, h
-Position_Page01_dpi96=0, 632, 18, 314, 152 ;cmd, x, y, w, h
+Position=0, 1964, 19, 628, 304 ;cmd, x, y, w, h
+Position_dpi96=0, 982, 10, 314, 152 ;cmd, x, y, w, h
+Position_Page01=0, 1964, 19, 628, 304 ;cmd, x, y, w, h
+Position_Page01_dpi96=0, 982, 10, 314, 152 ;cmd, x, y, w, h
FloatingWindow=0
ShowSignalComments=1
DisplayMask=1 ; pages 1
@@ -1261,107 +1413,9 @@ DisplayMask=1 ; pages 1
[WINDOW_3_OBJECT_1]
Type=2
Module=tokio_demo
-Name=Mandelbrot.x_pixels
-Window=3
-Index=0
-Color=0
-ApplyColorToBackground=0
-ColorFunction=0
-ColorFunctionScope=1
-LineTyp=2
-YMinHome=0
-YMaxHome=4294967295
-YMin=0
-YMax=1.84467440737e+19
-XOffsetNS=0
-XOffset=0
-ValueFormat=3
-BitMask=1
-ShowYAxis=1
-Width=10
-LineStyle=1
-MarkerType=1
-SRMainValue=0
-InvalidValueDrawMode=3
-LineWidth=1
-Precision=-2
-Digits=6
-Enabled=1
-StoredFocused=0
-SublMask=0
-MeaSublMask=0
-LockScaling=0
-RightAxis=0
-MapMode=2
-OverlayGridColor=0
-ShadingMode=3
-EditOffset=1
-EditFactor=2
-WAxisLabel=
-XAxisLabel=
-YAxisLabel=
-AxisCaption=
-Row=0
-Col=0
-YAxis_ID=0
-AxisTemplate=
-GUID=DISPLAY_1ff5dd47-44f5-42db-89e8-08a22f4d39e8
-
-[WINDOW_3_OBJECT_2]
-Type=2
-Module=tokio_demo
-Name=Mandelbrot.y_pixels
-Window=3
-Index=1
-Color=0
-ApplyColorToBackground=0
-ColorFunction=0
-ColorFunctionScope=1
-LineTyp=2
-YMinHome=0
-YMaxHome=4294967295
-YMin=0
-YMax=1.84467440737e+19
-XOffsetNS=0
-XOffset=0
-ValueFormat=3
-BitMask=1
-ShowYAxis=1
-Width=10
-LineStyle=1
-MarkerType=1
-SRMainValue=0
-InvalidValueDrawMode=3
-LineWidth=1
-Precision=-2
-Digits=6
-Enabled=1
-StoredFocused=0
-SublMask=0
-MeaSublMask=0
-LockScaling=0
-RightAxis=0
-MapMode=2
-OverlayGridColor=0
-ShadingMode=3
-EditOffset=1
-EditFactor=2
-WAxisLabel=
-XAxisLabel=
-YAxisLabel=
-AxisCaption=
-Row=0
-Col=0
-YAxis_ID=0
-AxisTemplate=
-GUID=DISPLAY_f97c041e-46e8-4a63-a811-555e1c226012
-
-[WINDOW_3_OBJECT_3]
-Type=2
-Module=tokio_demo
Name=Mandelbrot.x
Window=3
-Index=2
+Index=0
Color=0
ApplyColorToBackground=0
ColorFunction=0
@@ -1403,14 +1457,14 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_0454d49b-3b88-48b1-8f0f-797104d95cf6
+GUID=DISPLAY_f0c254f4-6ecb-4793-814b-018e5a67225c
-[WINDOW_3_OBJECT_4]
+[WINDOW_3_OBJECT_2]
Type=2
Module=tokio_demo
Name=Mandelbrot.y
Window=3
-Index=3
+Index=1
Color=0
ApplyColorToBackground=0
ColorFunction=0
@@ -1452,14 +1506,14 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_6dcc5454-2a28-43d6-a041-aebca1cc61e5
+GUID=DISPLAY_4ac79c47-494e-4c31-acf5-dfec15177ff5
-[WINDOW_3_OBJECT_5]
+[WINDOW_3_OBJECT_3]
Type=2
Module=tokio_demo
Name=Mandelbrot.width
Window=3
-Index=4
+Index=2
Color=0
ApplyColorToBackground=0
ColorFunction=0
@@ -1501,7 +1555,7 @@ Row=0
Col=0
YAxis_ID=0
AxisTemplate=
-GUID=DISPLAY_c0dbee64-d9c2-45b2-9278-c41d41e158f9
+GUID=DISPLAY_3a81943a-9799-4e84-8735-5dbbcec9dfc1
[WINDOW_4]
ProgID=
@@ -1516,10 +1570,10 @@ Comment=Browser
Number=4
GUID=WINDOW_4186de4f-2e06-4d6f-ae00-3fc65e1d27ac
ScreenDPIinSection=192
-Position=0, 8, 0, 1206, 834 ;cmd, x, y, w, h
-Position_dpi96=0, 4, 0, 603, 417 ;cmd, x, y, w, h
-Position_Page01=0, 8, 0, 1206, 834 ;cmd, x, y, w, h
-Position_Page01_dpi96=0, 4, 0, 603, 417 ;cmd, x, y, w, h
+Position=0, 18, 19, 1934, 1428 ;cmd, x, y, w, h
+Position_dpi96=0, 9, 10, 967, 714 ;cmd, x, y, w, h
+Position_Page01=0, 18, 19, 1934, 1428 ;cmd, x, y, w, h
+Position_Page01_dpi96=0, 9, 10, 967, 714 ;cmd, x, y, w, h
FloatingWindow=0
ShowSignalComments=1
DisplayMask=1 ; pages 1
@@ -1528,8 +1582,8 @@ DisplayMask=1 ; pages 1
ScaleFont=1
ShowLegend=1
ShowLegendHeader=0
-LegendPixWidth=224
-LegendPixWidth_dpi96=112
+LegendPixWidth=256
+LegendPixWidth_dpi96=128
GridStyle=0
DisplayColors=1
LegendFont=0
@@ -1539,7 +1593,7 @@ ShowActivity=0
ExceedLimitWarning=0
OnlyHighlightOnViolation=0
LegendScrollPos=0
-DotLinePos=199
+DotLinePos=106
ObjectCount=0
Title=Numerisch {DISPLAYED_FILENAME}
Type=4
@@ -1547,10 +1601,10 @@ Comment=Ziffernfenster
Number=5
GUID=WINDOW_6760c75f-8b7e-4372-a9eb-e5c31d03826a
ScreenDPIinSection=192
-Position=0, 1264, 498, 906, 178 ;cmd, x, y, w, h
-Position_dpi96=0, 632, 249, 453, 89 ;cmd, x, y, w, h
-Position_Page01=0, 1264, 498, 906, 178 ;cmd, x, y, w, h
-Position_Page01_dpi96=0, 632, 249, 453, 89 ;cmd, x, y, w, h
+Position=0, 1964, 336, 628, 196 ;cmd, x, y, w, h
+Position_dpi96=0, 982, 168, 314, 98 ;cmd, x, y, w, h
+Position_Page01=0, 1964, 336, 628, 196 ;cmd, x, y, w, h
+Position_Page01_dpi96=0, 982, 168, 314, 98 ;cmd, x, y, w, h
FloatingWindow=0
ShowSignalComments=1
LEGEND_HSCROLL_POS=0
@@ -1560,11 +1614,105 @@ DisplayMask=1 ; pages 1
[WINDOW_5_LEG_COLUMNS]
ScreenDPIinSection=192
COUNT=1
-COL_0=31, 224
-COL_0_dpi96=31, 112
+COL_0=31, 256
+COL_0_dpi96=31, 128
+
+[WINDOW_6]
+ProgID=CNPTRACE.TraceCtrl.1
+PROPERTIES_COUNT=22
+PROPERTY_1=DeviceItems={"CaptureEvents":"1","ShowEvents":"0","NodeCount":"1","Node0":{"DeviceName":"tokio_demo","CaptureEvents":"1","ShowEvents":"1","NodeCount":"3","Node0":{"Channel":"2","DisplayColor":{"Color":"0","UseColor":"false"},"CaptureEvents":"1","ShowEvents":"1","NodeCount":"0"},"Node1":{"Channel":"3","DisplayColor":{"Color":"0","UseColor":"false"},"CaptureEvents":"1","ShowEvents":"1","NodeCount":"0"},"Node2":{"Channel":"4","DisplayColor":{"Color":"0","UseColor":"false"},"CaptureEvents":"1","ShowEvents":"1","NodeCount":"0"}}}
+PROPERTY_2=NetworkItems={"Items":"0"}
+PROPERTY_3=ColumnConfigs={"ConfigCount":"1","Config0":{"Layout":"1","Name":"Initial","Column0":{"Width":"210","Position":"0","Name":"Time","IsDefaultName":"1"},"Column1":{"Width":"237","Position":"1","Name":"Channel","IsDefaultName":"1"},"Column2":{"Width":"60","Position":"2","Name":"ID","IsDefaultName":"1"},"Column3":{"Width":"90","Position":"3","Name":"Name","IsDefaultName":"1"},"Column5":{"Width":"60","Position":"5","Name":"Dir","IsDefaultName":"1"},"Column6":{"Width":"100","Position":"6","Name":"Length","IsDefaultName":"1"},"Column7":{"Width":"817","Position":"7","Name":"Data","IsDefaultName":"1"},"Column16":{"Width":"150","Position":"4","Name":"Type","IsDefaultName":"1"},"Column52":{"Width":"300","Position":"8","Name":"Protocol Interpretation","IsDefaultName":"1"}},"Active":"0","ActiveLayout":"1"}
+PROPERTY_4=PinningEvents={"EventCount":"0"}
+PROPERTY_5=ExpandedEvents={"EventCount":"0"}
+PROPERTY_6=AnalysisGroups={"GroupCount":"1","Group0":{"Enabled":"1","Expanded":"1","Name":"Filtergruppe 0","FilterCount":"2","Filter0":{"Stop":"1","Enabled":"1","ConditionCount":"0"},"Filter1":{"Stop":"0","Enabled":"0","ConditionCount":"0"}}}
+PROPERTY_7=AnalysisDataChangeFilter=0
+PROPERTY_8=SequenceFilters={"IsEnabled":"1","FilterCount":"0"}
+PROPERTY_9=SearchPatterns={"EventCount":"0"}
+PROPERTY_10=ExplorerConfig={"VSplitPos":"300","VSplitExpanded":"true","HSplitPos":"580","HSplitExpanded":"false","ActiveExplorerView":"1","ActiveSearchType":"0"}
+PROPERTY_11=ContinuousMode=1
+PROPERTY_12=AbsoluteTimeMode=1
+PROPERTY_13=HighPrioritySBClient=0
+PROPERTY_14=EventFading=0
+PROPERTY_15=ByteFading=0
+PROPERTY_16=BufferEntries=10000
+PROPERTY_17=ClearStart=true
+PROPERTY_18=OnlyMeasurement=false
+PROPERTY_19=CopyColumnTitles=true
+PROPERTY_20=LoggingEnabled=false
+PROPERTY_21=LoggingFilePath=
+PROPERTY_22=LoggingOverwriteOnConfigLoad=false
+OBJECTS_COUNT=0
+ObjectCount=0
+HiddenDisplayCount=0
+TraceChannelCount=2
+ColumnCount=9
+Column_0=0, 210
+Column_1=256, 237
+Column_2=257, 60
+Column_3=4, 90
+Column_4=1281, 150
+Column_5=1, 60
+Column_6=2, 100
+Column_7=3, 817
+Column_8=513, 300
+DeltaTimeEnabled=0
+Title=Trace-Fenster {DISPLAYED_FILENAME}
+Type=16384
+Comment=ActiveX-Fenster
+Number=6
+GUID=WINDOW_4026211d-ce3d-4659-a53a-05e21b1750c4
+ScreenDPIinSection=192
+Position=0, 78, 228, 2478, 1240 ;cmd, x, y, w, h
+Position_dpi96=0, 39, 114, 1239, 620 ;cmd, x, y, w, h
+Position_Page02=0, 78, 228, 2478, 1240 ;cmd, x, y, w, h
+Position_Page02_dpi96=0, 39, 114, 1239, 620 ;cmd, x, y, w, h
+FloatingWindow=0
+ShowSignalComments=1
+DisplayMask=2 ; pages 2
+
+[WINDOW_6_CHANNEL_1]
+Module=tokio_demo
+Channel=0
+CustomColorFlag=0
+Color=0
+
+[WINDOW_6_CHANNEL_2]
+Module=tokio_demo
+Channel=1
+CustomColorFlag=0
+Color=0
+
+[WINDOW_7]
+ShowTime=1
+TimeWidth=180
+CopyColumnTitles=1
+ClearStart=1
+AbsoluteTimeEnabled=0
+ShowGridLines=0
+ColumnCount=3
+Column_0=21, 80
+Column_0_dpi96=21, 40
+Column_1=22, 180
+Column_1_dpi96=22, 90
+Column_2=23, 1640
+Column_2_dpi96=23, 820
+Title=Write
+Type=128
+Comment=Write-Fenster
+Number=7
+GUID=WINDOW_55f635e5-5e82-4bde-b67a-f2f0fdf04317
+ScreenDPIinSection=192
+Position=0, 50, 50, 2372, 594 ;cmd, x, y, w, h
+Position_dpi96=0, 25, 25, 1186, 297 ;cmd, x, y, w, h
+Position_Page02=0, 50, 50, 2372, 594 ;cmd, x, y, w, h
+Position_Page02_dpi96=0, 25, 25, 1186, 297 ;cmd, x, y, w, h
+FloatingWindow=0
+ShowSignalComments=1
+DisplayMask=2 ; pages 2
[WINDOWS]
-Count=5
+Count=7
[Y_COMMON_AXIS_LIST]
Count=0
diff --git a/examples/rayon_demo/CANape/rayon_demo.cnaxml b/examples/rayon_demo/CANape/rayon_demo.cnaxml
index c0e3381..94c2a1a 100644
--- a/examples/rayon_demo/CANape/rayon_demo.cnaxml
+++ b/examples/rayon_demo/CANape/rayon_demo.cnaxml
@@ -200,7 +200,7 @@
false
false
false
- 96,189
+ 15,157
\ No newline at end of file
diff --git a/examples/rayon_demo/CANape/tokio_demo.HEX b/examples/rayon_demo/CANape/tokio_demo.HEX
index 588fb82..305e17f 100644
--- a/examples/rayon_demo/CANape/tokio_demo.HEX
+++ b/examples/rayon_demo/CANape/tokio_demo.HEX
@@ -1,6 +1,7 @@
:020000020000FC
:020000040000FA
+:0200000480007A
+:0300000045504B1D
:02000004800179
-:2000000052B81E85EB51F0BFF2D24D621058D13FBA490C022B87963FB80B0000D00700002B
+:18000000666666666666F6BF0000000000000000B81E85EB51B88E3FB3
:00000001FF
-
\ No newline at end of file
diff --git a/examples/rayon_demo/mandelbrot.a2l b/examples/rayon_demo/mandelbrot.a2l
index abe32b4..bddd7fb 100644
--- a/examples/rayon_demo/mandelbrot.a2l
+++ b/examples/rayon_demo/mandelbrot.a2l
@@ -66,7 +66,7 @@
/end MEMORY_SEGMENT
/begin MEMORY_SEGMENT
- mandelbrot "" DATA FLASH INTERN 0x80010000 32 -1 -1 -1 -1 -1
+ mandelbrot "" DATA FLASH INTERN 0x80010000 24 -1 -1 -1 -1 -1
/begin IF_DATA XCP
/begin SEGMENT /* index: */ 1 /* pages: */ 2 /* ext: */ 0 0 0
/begin CHECKSUM XCP_ADD_44 MAX_BLOCK_SIZE 0xFFFF EXTERNAL_FUNCTION "" /end CHECKSUM
@@ -110,7 +110,7 @@
OPTIONAL_LEVEL1_CMD GET_VERSION
/end PROTOCOL_LAYER
/begin DAQ
- DYNAMIC 0 12 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
+ DYNAMIC 0 13 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
/begin TIMESTAMP_SUPPORTED
0x1 SIZE_DWORD UNIT_1US TIMESTAMP_FIXED
/end TIMESTAMP_SUPPORTED
@@ -127,6 +127,7 @@
/begin EVENT "task_9" "task_9" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
/begin EVENT "task_10" "task_10" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
/begin EVENT "task_11" "task_11" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "update" "update" 12 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
/end DAQ
@@ -136,19 +137,15 @@
/begin CHARACTERISTIC Mandelbrot.width "" VALUE 0x80010010 F64 0 NO_COMPU_METHOD -1000000000000 1000000000000 /end CHARACTERISTIC
/begin CHARACTERISTIC Mandelbrot.x "" VALUE 0x80010000 F64 0 NO_COMPU_METHOD -1000000000000 1000000000000 /end CHARACTERISTIC
-/begin CHARACTERISTIC Mandelbrot.x_pixels "" VALUE 0x80010018 U32 0 NO_COMPU_METHOD 0 4294967295 /end CHARACTERISTIC
/begin CHARACTERISTIC Mandelbrot.y "" VALUE 0x80010008 F64 0 NO_COMPU_METHOD -1000000000000 1000000000000 /end CHARACTERISTIC
-/begin CHARACTERISTIC Mandelbrot.y_pixels "" VALUE 0x8001001C U32 0 NO_COMPU_METHOD 0 4294967295 /end CHARACTERISTIC
/begin GROUP mandelbrot "" /begin REF_CHARACTERISTIC
Mandelbrot.width
Mandelbrot.x
-Mandelbrot.x_pixels
Mandelbrot.y
-Mandelbrot.y_pixels
/end REF_CHARACTERISTIC /end GROUP
/begin COMPU_METHOD elapsed_time.Conv "" LINEAR "%6.3" "s" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT elapsed_time "duration of image calculation" FLOAT64_IEEE elapsed_time.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "s" ECU_ADDRESS 0x4 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT elapsed_time "calculation duration" FLOAT64_IEEE elapsed_time.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "s" ECU_ADDRESS 0xC0004 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin MEASUREMENT line_1 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x1011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin MEASUREMENT line_10 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xA011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin MEASUREMENT line_11 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xB011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
@@ -160,10 +157,10 @@ Mandelbrot.y_pixels
/begin MEASUREMENT line_7 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x7011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin MEASUREMENT line_8 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x8011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin MEASUREMENT line_9 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x9011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT wait_counter "loop counter" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x10 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT mainloop_counter "mainloop counter" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x1C ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT update_counter "update counter" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0xC0010 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin GROUP mainloop "" /begin REF_MEASUREMENT
-elapsed_time
-wait_counter
+mainloop_counter
/end REF_MEASUREMENT /end GROUP
/begin GROUP task "" /begin REF_MEASUREMENT
line_1
@@ -177,6 +174,10 @@ line_6
line_7
line_8
line_9
+/end REF_MEASUREMENT /end GROUP
+/begin GROUP update "" /begin REF_MEASUREMENT
+elapsed_time
+update_counter
/end REF_MEASUREMENT /end GROUP
/end MODULE
diff --git a/examples/rayon_demo/mandelbrot.png b/examples/rayon_demo/mandelbrot.png
index 529ed9a..dd55e49 100644
Binary files a/examples/rayon_demo/mandelbrot.png and b/examples/rayon_demo/mandelbrot.png differ
diff --git a/examples/rayon_demo/src/main.rs b/examples/rayon_demo/src/main.rs
index b16c45a..34ef13d 100644
--- a/examples/rayon_demo/src/main.rs
+++ b/examples/rayon_demo/src/main.rs
@@ -8,30 +8,42 @@ use log::{debug, error, info, trace, warn};
use image::{ImageBuffer, Rgb};
use num::Complex;
use rayon::prelude::*;
-//use std::usize;
use std::{thread, time::Duration};
use serde::{Deserialize, Serialize};
use xcp::*;
use xcp_type_description_derive::XcpTypeDescription;
-/// Write the buffer `pixels`, whose dimensions are given by `bounds`, to the
-/// file named `filename`.
-fn write_image(
- filename: &str,
- pixels: &[u8],
- mandelbrot: CalSeg,
-) -> Result<(), std::io::Error> {
- // Black and white
- // let output = File::create(filename)?;
- // let encoder = PNGEncoder::new(output);
- // encoder.encode(
- // &pixels,
- // mandelbrot.x_pixels as u32,
- // mandelbrot.y_pixels as u32,
- // ColorType::Gray(8),
- // )?;
+// Arrays measured may not exxed 2^15
+const X_RES: usize = 1024 * 2;
+const Y_RES: usize = 768 * 2;
+#[derive(Debug, Copy, Clone, Serialize, Deserialize, XcpTypeDescription)]
+struct Mandelbrot {
+ x: f64,
+ y: f64,
+ width: f64,
+}
+
+// Complete set
+// const MANDELBROT: Mandelbrot = Mandelbrot {
+// x: -0.5,
+// y: 0.0,
+// width: 3.0,
+// };
+
+const MANDELBROT: Mandelbrot = Mandelbrot {
+ x: -1.4,
+ y: 0.0,
+ width: 0.015,
+};
+
+//---------------------------------------------------------------------------------------
+// Image rendering
+
+// Write the buffer `pixels` to the file named `filename`.
+fn write_image(filename: &str, pixels: &[u8]) -> Result<(), std::io::Error> {
+ // Rainbox color map (credits to CoPilot)
let mut color_map = Vec::with_capacity(256);
for i in 0..256 {
let (r, g, b) = match i {
@@ -48,11 +60,10 @@ fn write_image(
color_map.push(rgb);
}
- // Color
- let mut imgbuf = ImageBuffer::new(mandelbrot.x_pixels as u32, mandelbrot.y_pixels as u32);
+ // Create rgb image buffer and write to file
+ let mut imgbuf = ImageBuffer::new(X_RES as u32, Y_RES as u32);
for (x, y, rgb_pixel) in imgbuf.enumerate_pixels_mut() {
- *rgb_pixel =
- color_map[pixels[y as usize * mandelbrot.x_pixels as usize + x as usize] as usize];
+ *rgb_pixel = color_map[pixels[y as usize * X_RES as usize + x as usize] as usize];
}
imgbuf.save(filename).unwrap();
@@ -62,23 +73,6 @@ fn write_image(
//---------------------------------------------------------------------------------------
// Mandelbrot set
-#[derive(Debug, Copy, Clone, Serialize, Deserialize, XcpTypeDescription)]
-struct Mandelbrot {
- x_pixels: u32,
- y_pixels: u32,
- x: f64,
- y: f64,
- width: f64,
-}
-
-const MANDELBROT: Mandelbrot = Mandelbrot {
- x_pixels: 3000,
- y_pixels: 2000,
- x: -1.06,
- y: 0.271,
- width: 0.022,
-};
-
/// Try to determine if `c` is in the Mandelbrot set, using at most `limit`
/// iterations to decide.
///
@@ -107,7 +101,6 @@ fn escape_time(c: Complex, limit: usize) -> Option {
/// The `upper_left` and `lower_right` parameters are points on the complex
/// plane designating the area our image covers.
fn pixel_to_point(
- bounds: (usize, usize),
pixel: (usize, usize),
upper_left: Complex,
lower_right: Complex,
@@ -117,9 +110,8 @@ fn pixel_to_point(
upper_left.im - lower_right.im,
);
Complex {
- re: upper_left.re + pixel.0 as f64 * width / bounds.0 as f64,
- im: upper_left.im - pixel.1 as f64 * height / bounds.1 as f64, // Why subtraction here? pixel.1 increases as we go down,
- // but the imaginary component increases as we go up.
+ re: upper_left.re + pixel.0 as f64 * width / X_RES as f64,
+ im: upper_left.im - pixel.1 as f64 * height / Y_RES as f64,
}
}
@@ -140,7 +132,7 @@ fn render(
// Render line
for column in 0..length {
- let point = pixel_to_point((length, 1), (column, row), upper_left, lower_right);
+ let point = pixel_to_point((column, row), upper_left, lower_right);
pixels[column] = match escape_time(point, 255) {
None => 0,
Some(count) => 255 - count as u8,
@@ -158,77 +150,82 @@ fn main() {
println!("xcp_lite rayon mandelbrot demo");
env_logger::Builder::new()
- .filter_level(log::LevelFilter::Info)
+ .filter_level(log::LevelFilter::Debug)
.init();
- const BIND_ADDR: [u8; 4] = [192, 168, 0, 83]; // [127, 0, 0, 1]
+ const BIND_ADDR: [u8; 4] = [192, 168, 0, 83]; // [172, 19, 11, 24]; // [192, 168, 0, 83]; // [127, 0, 0, 1];
XcpBuilder::new("mandelbrot")
- .set_log_level(XcpLogLevel::Info)
+ .set_log_level(XcpLogLevel::Debug)
.enable_a2l(true)
.set_epk("EPK")
- .start_server(XcpTransportLayer::Udp, BIND_ADDR, 5555, 1464)
+ .start_server(XcpTransportLayer::Udp, BIND_ADDR, 5555, 8000 - 20 - 8)
.unwrap();
let mandelbrot = Xcp::create_calseg("mandelbrot", &MANDELBROT, true);
+ // The pixel array on heap
+ let mut pixels = vec![0; X_RES * Y_RES];
+
// Create event for this worker thread and register variable index, which is the upper left corner of the rectangle
- let event = daq_create_event!("mainloop");
+ let event_mainloop = daq_create_event!("mainloop");
+ let event_update = daq_create_event!("update");
let mut elapsed_time: f64 = 0.0;
- let mut wait_counter: u32 = 0;
- daq_register!(elapsed_time, event, "duration of image calculation", "s");
- daq_register!(wait_counter, event, "loop counter", "");
-
+ let mut mainloop_counter: u32 = 0;
+ let mut update_counter: u32 = 0;
+ daq_register!(elapsed_time, event_update, "calculation duration", "s");
+ daq_register!(mainloop_counter, event_mainloop, "mainloop counter", "");
+ daq_register!(update_counter, event_update, "update counter", "");
+
+ // Recalculate image in a loop with 10 ms pause
+ let mut first = true;
loop {
- thread::sleep(Duration::from_micros(1000));
- let start_time = std::time::Instant::now();
-
- let x_pixels: usize = mandelbrot.x_pixels as usize;
- let y_pixels: usize = mandelbrot.y_pixels as usize;
- let lower_right = Complex {
- re: mandelbrot.x - mandelbrot.width / 2.0,
- im: mandelbrot.y - mandelbrot.width / 2.0 * y_pixels as f64 / x_pixels as f64,
- };
- let upper_left = Complex {
- re: mandelbrot.x + mandelbrot.width / 2.0,
- im: mandelbrot.y + mandelbrot.width / 2.0 * y_pixels as f64 / x_pixels as f64,
- };
-
- // Calculate image by lines in parallel
- let mut pixels = vec![0; x_pixels * y_pixels];
- let lines: Vec<(usize, &mut [u8])> = pixels.chunks_mut(x_pixels).enumerate().collect();
- lines.into_par_iter().for_each(|(y, band)| {
- let band_upper_left =
- pixel_to_point((x_pixels, y_pixels), (0, y), upper_left, lower_right);
- let band_lower_right = pixel_to_point(
- (x_pixels, y_pixels),
- (x_pixels, y + 1),
- upper_left,
- lower_right,
+ thread::sleep(Duration::from_micros(1000)); // 1ms
+ mainloop_counter += 1;
+ event_mainloop.trigger();
+
+ // On first iteration or after parameter changes: render image and write to file
+ if first || mandelbrot.sync() {
+ {
+ let start_time = std::time::Instant::now();
+
+ // Calculate image lines in parallel
+ let lower_right = Complex {
+ re: mandelbrot.x + mandelbrot.width / 2.0,
+ im: mandelbrot.y - mandelbrot.width / 2.0 * Y_RES as f64 / X_RES as f64,
+ };
+ let upper_left = Complex {
+ re: mandelbrot.x - mandelbrot.width / 2.0,
+ im: mandelbrot.y + mandelbrot.width / 2.0 * Y_RES as f64 / X_RES as f64,
+ };
+ let lines: Vec<(usize, &mut [u8])> = pixels.chunks_mut(X_RES).enumerate().collect();
+ lines.into_par_iter().for_each(|(y, band)| {
+ let band_upper_left = pixel_to_point((0, y), upper_left, lower_right);
+ let band_lower_right = pixel_to_point((X_RES, y + 1), upper_left, lower_right);
+ render(band, y, X_RES, band_upper_left, band_lower_right);
+ });
+
+ elapsed_time = start_time.elapsed().as_secs_f64();
+
+ // Measure the pixel array from heap, with an individual event
+ // daq_event_for_ref!(
+ // pixels,
+ // RegistryDataType::Ubyte,
+ // X_RES as u16,
+ // Y_RES as u16,
+ // "pixel array"
+ // );
+ }
+
+ // Write image to file
+ write_image("mandelbrot.png", &pixels).expect("error writing PNG file");
+ println!(
+ "Image written to mandelbrot.png, frame {} {:.4}s",
+ mainloop_counter, elapsed_time
);
- render(band, y, x_pixels, band_upper_left, band_lower_right);
- });
-
- // Measure runtime
- elapsed_time = start_time.elapsed().as_secs_f64();
- event.trigger();
- println!("Image rendered, duration = {:.3} s", elapsed_time);
-
- // Render image to png
- let m = mandelbrot.clone();
- write_image("mandelbrot.png", &pixels, m).expect("error writing PNG file");
- println!("Image written to mandelbrot.png");
-
- // Write A2L file
- Xcp::get().write_a2l();
-
- // Wait until parameter change and recalculate image
- while !mandelbrot.sync() {
- thread::sleep(Duration::from_millis(100));
- wait_counter += 1;
- event.trigger();
+ update_counter += 1;
+ event_update.trigger();
}
- }
- //Xcp::get().write_a2l();
- //Xcp::stop_server();
+ first = false;
+ }
}
diff --git a/examples/tokio_demo/tokio_demo_autodetect.a2l b/examples/tokio_demo/tokio_demo_autodetect.a2l
index abe32b4..34fab4a 100644
--- a/examples/tokio_demo/tokio_demo_autodetect.a2l
+++ b/examples/tokio_demo/tokio_demo_autodetect.a2l
@@ -66,7 +66,7 @@
/end MEMORY_SEGMENT
/begin MEMORY_SEGMENT
- mandelbrot "" DATA FLASH INTERN 0x80010000 32 -1 -1 -1 -1 -1
+ mandelbrot "" DATA FLASH INTERN 0x80010000 24 -1 -1 -1 -1 -1
/begin IF_DATA XCP
/begin SEGMENT /* index: */ 1 /* pages: */ 2 /* ext: */ 0 0 0
/begin CHECKSUM XCP_ADD_44 MAX_BLOCK_SIZE 0xFFFF EXTERNAL_FUNCTION "" /end CHECKSUM
@@ -110,23 +110,24 @@
OPTIONAL_LEVEL1_CMD GET_VERSION
/end PROTOCOL_LAYER
/begin DAQ
- DYNAMIC 0 12 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
+ DYNAMIC 0 13 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
/begin TIMESTAMP_SUPPORTED
0x1 SIZE_DWORD UNIT_1US TIMESTAMP_FIXED
/end TIMESTAMP_SUPPORTED
/begin EVENT "mainloop" "mainloop" 0 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_1" "task_1" 1 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_2" "task_2" 2 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_3" "task_3" 3 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_4" "task_4" 4 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_5" "task_5" 5 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_6" "task_6" 6 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_7" "task_7" 7 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_8" "task_8" 8 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_9" "task_9" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_10" "task_10" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task_11" "task_11" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "pixels" "pixels" 1 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_1" "task_1" 2 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_2" "task_2" 3 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_3" "task_3" 4 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_4" "task_4" 5 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_5" "task_5" 6 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_6" "task_6" 7 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_7" "task_7" 8 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_8" "task_8" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_9" "task_9" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_10" "task_10" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task_11" "task_11" 12 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
/end DAQ
@@ -136,34 +137,34 @@
/begin CHARACTERISTIC Mandelbrot.width "" VALUE 0x80010010 F64 0 NO_COMPU_METHOD -1000000000000 1000000000000 /end CHARACTERISTIC
/begin CHARACTERISTIC Mandelbrot.x "" VALUE 0x80010000 F64 0 NO_COMPU_METHOD -1000000000000 1000000000000 /end CHARACTERISTIC
-/begin CHARACTERISTIC Mandelbrot.x_pixels "" VALUE 0x80010018 U32 0 NO_COMPU_METHOD 0 4294967295 /end CHARACTERISTIC
/begin CHARACTERISTIC Mandelbrot.y "" VALUE 0x80010008 F64 0 NO_COMPU_METHOD -1000000000000 1000000000000 /end CHARACTERISTIC
-/begin CHARACTERISTIC Mandelbrot.y_pixels "" VALUE 0x8001001C U32 0 NO_COMPU_METHOD 0 4294967295 /end CHARACTERISTIC
/begin GROUP mandelbrot "" /begin REF_CHARACTERISTIC
Mandelbrot.width
Mandelbrot.x
-Mandelbrot.x_pixels
Mandelbrot.y
-Mandelbrot.y_pixels
/end REF_CHARACTERISTIC /end GROUP
/begin COMPU_METHOD elapsed_time.Conv "" LINEAR "%6.3" "s" COEFFS_LINEAR 1 0 /end COMPU_METHOD
/begin MEASUREMENT elapsed_time "duration of image calculation" FLOAT64_IEEE elapsed_time.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "s" ECU_ADDRESS 0x4 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_1 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x1011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_10 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xA011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_11 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xB011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_2 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x2011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_3 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x3011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 3 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_4 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x4011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 4 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_5 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x5011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 5 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_6 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x6011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 6 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_7 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x7011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_8 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x8011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT line_9 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x9011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT wait_counter "loop counter" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x10 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT frame_counter "frame counter" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x10 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_1 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x2011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_10 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xB011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_11 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xC011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_2 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x3011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 3 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_3 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x4011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 4 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_4 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x5011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 5 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_5 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x6011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 6 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_6 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x7011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_7 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x8011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_8 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x9011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT line_9 "" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0xA011E ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT pixels "pixel array" UBYTE NO_COMPU_METHOD 0 0 0 255 PHYS_UNIT "" ECU_ADDRESS 0x10000 ECU_ADDRESS_EXTENSION 2 MATRIX_DIM 256 128 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin GROUP mainloop "" /begin REF_MEASUREMENT
elapsed_time
-wait_counter
+frame_counter
+/end REF_MEASUREMENT /end GROUP
+/begin GROUP pixels "" /begin REF_MEASUREMENT
+pixels
/end REF_MEASUREMENT /end GROUP
/begin GROUP task "" /begin REF_MEASUREMENT
line_1
diff --git a/src/cal.rs b/src/cal.rs
index b2540c4..d4d16a3 100644
--- a/src/cal.rs
+++ b/src/cal.rs
@@ -216,7 +216,7 @@ impl CalSegList {
// Address is index<<16, addr_ext is 0
{
for (i, d) in self.0.iter().enumerate() {
- trace!("register CalSeg {}, size={}", d.get_name(), d.get_size());
+ trace!("Register CalSeg {}, size={}", d.get_name(), d.get_size());
assert!(i == d.calseg.lock().unwrap().get_index());
Xcp::get().get_registry().lock().unwrap().add_cal_seg(
d.get_name(),
diff --git a/src/cal/cal_seg.rs b/src/cal/cal_seg.rs
index d8d4d0c..b249a66 100644
--- a/src/cal/cal_seg.rs
+++ b/src/cal/cal_seg.rs
@@ -150,7 +150,7 @@ where
}
}
}
- return false;
+ false
}
}
diff --git a/src/daq/daq_event.rs b/src/daq/daq_event.rs
index ad2a1ac..cf462c9 100644
--- a/src/daq/daq_event.rs
+++ b/src/daq/daq_event.rs
@@ -6,6 +6,59 @@ use log::{debug, error, info, trace, warn};
use crate::{reg::RegistryMeasurement, xcp::*, RegistryDataType};
+//----------------------------------------------------------------------------------------------
+// XcpEvent
+
+impl Xcp {
+ // Create a measurement event and a measurement variable directly associated to the event with memory offset 0
+ pub fn create_measurement_object(
+ &self,
+ name: &'static str,
+ data_type: RegistryDataType,
+ x_dim: u16,
+ y_dim: u16,
+ comment: &'static str,
+ ) -> XcpEvent {
+ let event = self.create_event(name, false);
+ self.get_registry()
+ .lock()
+ .unwrap()
+ .add_measurement(RegistryMeasurement::new(
+ name.to_string(),
+ data_type,
+ x_dim,
+ y_dim,
+ event,
+ 0, // byte_offset
+ 0,
+ 1.0, // factor
+ 0.0, // offset
+ comment,
+ "", // unit
+ ));
+ event
+ }
+}
+
+/// Create a single instance XCP event and register the given variable once, trigger the event
+#[allow(unused_macros)]
+#[macro_export]
+macro_rules! daq_event_ref {
+
+ ( $id:expr, $data_type: expr, $x_dim: expr, $comment:expr ) => {{
+ lazy_static::lazy_static! {
+ static ref XCP_EVENT__: XcpEvent = Xcp::get().create_measurement_object(stringify!($id), $data_type, $x_dim, 1, $comment);
+ }
+ XCP_EVENT__.trigger(&(*$id) as *const _ as *const u8, 0 );
+ }};
+ ( $id:expr, $data_type: expr, $x_dim: expr, $y_dim: expr, $comment:expr ) => {{
+ lazy_static::lazy_static! {
+ static ref XCP_EVENT__: XcpEvent = Xcp::get().create_measurement_object(stringify!($id), $data_type, $x_dim, $y_dim, $comment);
+ }
+ XCP_EVENT__.trigger(&(*$id) as *const _ as *const u8, 0);
+ }};
+}
+
//----------------------------------------------------------------------------------------------
// DaqEvent
@@ -56,12 +109,17 @@ impl DaqEvent {
self.buffer[offset as usize..offset as usize + data.len()].copy_from_slice(data);
}
- /// Trigger this event
+ /// Trigger for stack or capture buffer measurement with base pointer relative addressing
pub fn trigger(&self) {
let base: *const u8 = &self.buffer as *const u8;
self.event.trigger(base, self.buffer_len as u32);
}
+ /// Trigger for stack measurement with absolute addressing
+ pub fn trigger_abs(&self) {
+ self.event.trigger_abs();
+ }
+
/// Associate a variable to this DaqEvent, allocate space in the capture buffer and register it
#[allow(clippy::too_many_arguments)]
pub fn add_capture(
@@ -69,7 +127,8 @@ impl DaqEvent {
name: &'static str,
size: usize,
datatype: RegistryDataType,
- dim: usize,
+ x_dim: u16,
+ y_dim: u16,
factor: f64,
offset: f64,
unit: &'static str,
@@ -90,9 +149,11 @@ impl DaqEvent {
.add_measurement(RegistryMeasurement::new(
name.to_string(),
datatype,
- dim,
+ x_dim,
+ y_dim,
event,
event_offset,
+ 0u64,
factor,
offset,
comment,
@@ -108,7 +169,8 @@ impl DaqEvent {
name: &'static str,
ptr: *const u8,
datatype: RegistryDataType,
- dim: usize,
+ x_dim: u16,
+ y_dim: u16,
factor: f64,
offset: f64,
unit: &'static str,
@@ -116,7 +178,7 @@ impl DaqEvent {
) {
let p = ptr as usize; // variable address
let b = &self.buffer as *const _ as usize; // base address
- trace!(
+ debug!(
"add_stack: {} {:?} ptr={:p} base={:p}",
name,
datatype,
@@ -136,15 +198,60 @@ impl DaqEvent {
.add_measurement(RegistryMeasurement::new(
name.to_string(),
datatype,
- dim,
+ x_dim,
+ y_dim,
self.event,
event_offset,
+ 0u64,
+ factor,
+ offset,
+ comment,
+ unit,
+ ));
+ }
+
+
+ /// Associate a variable on stack to this DaqEvent and register it
+ #[allow(clippy::too_many_arguments)]
+ pub fn add_heap(
+ &self,
+ name: &'static str,
+ ptr: *const u8,
+ datatype: RegistryDataType,
+ x_dim: u16,
+ y_dim: u16,
+ factor: f64,
+ offset: f64,
+ unit: &'static str,
+ comment: &'static str,
+ ) {
+ debug!(
+ "add_heap: {} {:?} ptr={:p} ",
+ name,
+ datatype,
+ ptr,
+
+ );
+
+ Xcp::get()
+ .get_registry()
+ .lock()
+ .unwrap()
+ .add_measurement(RegistryMeasurement::new(
+ name.to_string(),
+ datatype,
+ x_dim,
+ y_dim,
+ self.event,
+ 0i16,
+ ptr as u64,
factor,
offset,
comment,
unit,
));
}
+
}
//-----------------------------------------------------------------------------
@@ -159,6 +266,7 @@ impl DaqEvent {
#[allow(unused_macros)]
#[macro_export]
macro_rules! daq_create_event {
+ // Without capture buffer
( $name:expr, $capacity: literal ) => {{
// Scope for lazy static XCP_EVENT__, create the XCP event only once
lazy_static::lazy_static! {
@@ -167,6 +275,7 @@ macro_rules! daq_create_event {
// Create the DAQ event every time the thread is running through this code
DaqEvent::<$capacity>::new_from(&XCP_EVENT__)
}};
+ // With capture buffer capacity
( $name:expr ) => {{
lazy_static::lazy_static! {
static ref XCP_EVENT__: XcpEvent = Xcp::get().create_event($name, false);
@@ -196,7 +305,8 @@ macro_rules! daq_capture {
stringify!($id),
std::mem::size_of_val(&$id),
$id.get_type(),
- 1, // dim
+ 1, // x_dim
+ 1, // y_dim
$factor,
$offset,
$unit,
@@ -226,7 +336,8 @@ macro_rules! daq_capture {
stringify!($id),
std::mem::size_of_val(&$id),
$id.get_type(),
- 1, // dim
+ 1, // x_dim
+ 1, // y_dim
1.0,
0.0,
$unit,
@@ -255,7 +366,8 @@ macro_rules! daq_capture {
stringify!($id),
std::mem::size_of_val(&$id),
$id.get_type(),
- 1, // dim
+ 1, // x_dim
+ 1, // y_dim
1.0,
0.0,
"",
@@ -291,7 +403,8 @@ macro_rules! daq_serialize {
stringify!($id),
std::mem::size_of_val(&$id),
RegistryDataType::Blob,
- $daq_event.buffer.len(), // dim
+ $daq_event.buffer.len() as u16, // x_dim
+ 1, // y_dim
1.0,
0.0,
"",
@@ -333,6 +446,7 @@ macro_rules! daq_register {
&$id as *const _ as *const u8,
$id.get_type(),
1,
+ 1,
$factor,
$offset,
$unit,
@@ -358,6 +472,7 @@ macro_rules! daq_register {
&$id as *const _ as *const u8,
$id.get_type(),
1,
+ 1,
1.0,
0.0,
$unit,
@@ -383,6 +498,41 @@ macro_rules! daq_register {
&$id as *const _ as *const u8,
$id.get_type(),
1,
+ 1,
+ 1.0,
+ 0.0,
+ "",
+ "",
+ );
+ };
+ }};
+}
+
+/// Register a local variable which is a reference to heap with basic type for the given daq event
+/// Address will be absolute addressing mode
+/// No capture buffer required
+#[allow(unused_macros)]
+#[macro_export]
+macro_rules! daq_register_ref {
+ // name, event
+ ( $id:ident, $daq_event:expr ) => {{
+ static DAQ_OFFSET__: std::sync::atomic::AtomicI16 =
+ std::sync::atomic::AtomicI16::new(-32768);
+ if DAQ_OFFSET__
+ .compare_exchange(
+ -32768,
+ 0,
+ std::sync::atomic::Ordering::Relaxed,
+ std::sync::atomic::Ordering::Relaxed,
+ )
+ .is_ok()
+ {
+ $daq_event.add_heap(
+ stringify!($id),
+ &(*$id) as *const _ as *const u8,
+ (*$id).get_type(),
+ 1,
+ 1,
1.0,
0.0,
"",
@@ -411,12 +561,13 @@ macro_rules! daq_register_array {
)
.is_ok()
{
- let dim = std::mem::size_of_val(&$id) / std::mem::size_of_val(&$id[0]);
+ let dim = (std::mem::size_of_val(&$id) / std::mem::size_of_val(&$id[0])) as u16;
$daq_event.add_stack(
stringify!($id),
&$id as *const _ as *const u8,
($id[0]).get_type(),
dim,
+ 1,
1.0,
0.0,
"",
@@ -475,7 +626,8 @@ macro_rules! daq_capture_instance {
stringify!($id),
std::mem::size_of_val(&$id),
$id.get_type(),
- 1,
+ 1, // x_dim
+ 1, // y_dim
$factor,
$offset,
$unit,
@@ -497,7 +649,8 @@ macro_rules! daq_capture_instance {
stringify!($id),
std::mem::size_of_val(&$id),
$id.get_type(),
- 1,
+ 1, // x_dim
+ 1, // y_dim
1.0,
0.0,
$unit,
@@ -519,7 +672,8 @@ macro_rules! daq_capture_instance {
stringify!($id),
std::mem::size_of_val(&$id),
$id.get_type(),
- 1,
+ 1, // x_dim
+ 1, // y_dim
1.0,
0.0,
"",
@@ -549,6 +703,7 @@ macro_rules! daq_register_instance {
&$id as *const _ as *const u8,
$id.get_type(),
1,
+ 1,
1.0,
0.0,
"",
diff --git a/src/main.rs b/src/main.rs
index a2c342a..b638340 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -57,8 +57,8 @@ struct Args {
#[arg(short, long, default_value_t = 5555)]
port: u16,
- /// Segment size (UDP MTU)
- #[arg(short, long, default_value_t = 7500)]
+ /// XCP segment size (jumbo frames supported with MTU up to 8000 bytes -> segment_size <= (OPTION_MTU-20-8), OPTION_MTU defined in main_cfg.h )
+ #[arg(short, long, default_value_t = 8000-20-8)]
segment_size: u16,
/// Don't create A2L file
@@ -330,7 +330,8 @@ fn main() {
let xcp_builder = XcpBuilder::new("xcp_lite")
.set_log_level(log_level)
.enable_a2l(!args.no_a2l)
- //.set_epk(build_info::format!("{}", $.timestamp));
+ // .set_segment_size(1500-20-8) // no jumbo frames
+ // .set_epk(build_info::format!("{}", $.timestamp)); // EPK from build info
.set_epk("EPK_");
let xcp = match xcp_builder.start_server(
@@ -344,7 +345,7 @@ fn main() {
args.segment_size,
) {
Err(res) => {
- error!("XCP initialization failed: {:?}", res);
+ error!("XCP server initialization failed: {:?}", res);
return;
}
Ok(xcp) => xcp,
@@ -387,26 +388,46 @@ fn main() {
// Mainloop
xcp_println!("Main task starts");
- let mut mainloop_counter: u64 = 0;
- let mut mainloop_counter2 = Box::new(0u64);
- let mut mainloop_event = daq_create_event!("mainloop", 8);
- daq_register!(mainloop_counter, mainloop_event, "counter on stack", "");
+ let mut mainloop_counter1: u64 = 0;
+ let mut mainloop_counter2 = Box::new(0u64);
+ let mut mainloop_counter3 = Box::new(0u64);
+ let mut mainloop_array = Box::new([[0u8; 16]; 16]);
+ let mut mainloop_event = daq_create_event!("mainloop", 8); // Capture buffer 8 bytes for mainloop_counter3
+ daq_register!(mainloop_counter1, mainloop_event);
+ //daq_register_ref!(mainloop_counter2, mainloop_event);
+
loop {
- // @@@@ Dev: Terminate after 3s to check shutdown and drop behaviour
- // if START_TIME.elapsed().as_secs() > 3 {
- // break;
- // }
// @@@@ Dev: Terminate mainloop for shutdown if calibration parameter run is false, for test automation
if !calseg.run {
break;
}
thread::sleep(Duration::from_millis(50));
- mainloop_counter += 1;
- *mainloop_counter2 += 1;
- daq_capture!(mainloop_counter2, mainloop_event, "counter on heap", "");
+ mainloop_counter1 += 1;
+ *mainloop_counter2 += 2;
+ *mainloop_counter3 += 3;
+ mainloop_array[0][0] = mainloop_counter1 as u8;
+
+
+ // Capture variable from heap
+ daq_capture!(mainloop_counter3,mainloop_event);
+
+ // Measure variable directly from heap with individual event "mainloop_array"
+ daq_event_ref!(
+ mainloop_array,
+ RegistryDataType::AUint64,
+ 16,
+ 16,
+ "array on heap"
+ );
+
+ // Measure directly from stack with event "mainloop"
+ mainloop_event.trigger();
+
+ // Sync
+ calseg.sync();
// Check if the XCP server is still alive
// Optional
@@ -415,15 +436,11 @@ fn main() {
break;
}
- // Sync and trigger mainloop event
- calseg.sync();
- mainloop_event.trigger();
-
// @@@@ Dev:
// Finalize A2l after 2s delay
// This is just for testing, to force immediate creation of A2L file
// Without this, the A2L file will be automatically written on XCP connect, to be available for download by CANape
- if !args.no_a2l && mainloop_counter == 1 {
+ if !args.no_a2l && mainloop_counter1 == 1 {
thread::sleep(Duration::from_secs(2));
xcp.write_a2l(); // Test A2L write
// xcp.set_init_request(); // Test init request
diff --git a/src/reg/registry.rs b/src/reg/registry.rs
index b7a17bd..0a50ce1 100644
--- a/src/reg/registry.rs
+++ b/src/reg/registry.rs
@@ -325,9 +325,11 @@ impl RegistryEpk {
pub struct RegistryMeasurement {
name: String,
datatype: RegistryDataType, // Basic types Ubyte, SByte, AUint64, Float64Ieee, ... or Blob
- dim: usize, // 1 = basic type (A2L MEASUREMENT), >1 = array[dim] of basic type (A2L MEASUREMENT with MATRIX_DIM)
+ x_dim: u16, // 1 = basic type (A2L MEASUREMENT), >1 = array[dim] of basic type (A2L MEASUREMENT with MATRIX_DIM x (max u16))
+ y_dim: u16, // 1 = basic type (A2L MEASUREMENT), >1 = array[x_dim,y_dim] of basic type (A2L MEASUREMENT with MATRIX_DIM x,y (max u16))
event: XcpEvent,
- event_offset: i16, // Address offset (signed) relative to event memory context (XCP_ADDR_EXT_DYN)
+ addr_offset: i16, // Address offset (signed!) relative to event memory context (XCP_ADDR_EXT_DYN)
+ addr: u64,
factor: f64,
offset: f64,
comment: &'static str,
@@ -339,20 +341,25 @@ impl RegistryMeasurement {
pub fn new(
name: String,
datatype: RegistryDataType,
- dim: usize,
+ x_dim: u16,
+ y_dim: u16,
event: XcpEvent,
event_offset: i16,
+ addr: u64,
factor: f64,
offset: f64,
comment: &'static str,
unit: &'static str,
) -> Self {
+ assert!((x_dim as usize * y_dim as usize) * datatype.get_size() <= u16::MAX as usize / 2);
RegistryMeasurement {
name,
datatype,
- dim,
+ x_dim,
+ y_dim,
event,
- event_offset,
+ addr_offset: event_offset,
+ addr,
factor,
offset,
comment,
@@ -367,17 +374,26 @@ impl RegistryMeasurement {
pub fn datatype(&self) -> RegistryDataType {
self.datatype
}
-
- pub fn dim(&self) -> usize {
- self.dim
+ pub fn dim(&self) -> u16 {
+ self.x_dim * self.y_dim
+ }
+ pub fn x_dim(&self) -> u16 {
+ self.x_dim
+ }
+ pub fn y_dim(&self) -> u16 {
+ self.y_dim
}
pub fn event(&self) -> XcpEvent {
self.event
}
- pub fn event_offset(&self) -> i16 {
- self.event_offset
+ pub fn addr_offset(&self) -> i16 {
+ self.addr_offset
+ }
+
+ pub fn addr(&self) -> u64 {
+ self.addr
}
pub fn factor(&self) -> f64 {
@@ -668,23 +684,15 @@ impl Registry {
/// # panics
/// If a measurement with the same name already exists
/// If the registry is closed
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
pub fn add_measurement(&mut self, mut m: RegistryMeasurement) {
debug!(
- "add_measurement: {} type={:?}[{}] event={}+({})",
+ "add_measurement: {} type={:?}[{},{}] event={}+({})",
m.name,
m.datatype,
- m.dim,
+ m.x_dim,
+ m.y_dim,
m.event.get_num(),
- m.event_offset
+ m.addr_offset
);
// Panic if registry is closed
@@ -797,8 +805,10 @@ mod registry_tests {
"signal1".to_string(),
RegistryDataType::Float64Ieee,
1,
+ 1,
event,
0,
+ 0,
1.0,
0.0,
"unit",
diff --git a/src/reg/registry/a2l_writer.rs b/src/reg/registry/a2l_writer.rs
index 01c8b77..e1b18b5 100644
--- a/src/reg/registry/a2l_writer.rs
+++ b/src/reg/registry/a2l_writer.rs
@@ -125,16 +125,22 @@ impl GenerateA2l for RegistryCalSegList {
impl GenerateA2l for RegistryMeasurement {
fn to_a2l_string(&self) -> String {
- let (ext, addr) = self.event.get_daq_ext_addr(self.event_offset);
+
+ let (ext, addr) = if self.addr == 0 {
+ self.event.get_dyn_ext_addr(self.addr_offset)
+ } else {
+ self.event.get_abs_ext_addr(self.addr)
+ };
trace!(
- "write measurement: {} {} {}:0x{:08X} event={},{}",
+ "write measurement: {} {} {}:0x{:08X} event={}+{}, addr=0x{:08X}",
self.name,
self.datatype.get_type_str(),
ext,
addr,
self.event.get_num(),
- self.event_offset
+ self.addr_offset,
+ self.addr
);
let name = &self.name;
@@ -144,13 +150,15 @@ impl GenerateA2l for RegistryMeasurement {
let max = self.datatype.get_max();
let offset = self.offset;
let type_str = self.datatype.get_type_str();
- let dim = self.dim;
+ let x_dim = self.x_dim;
+ let y_dim = self.y_dim;
+
let min = self.datatype.get_min();
let event = self.event.get_num();
// Dynamic object as CHARACTERISTIC ASCII string with IDL annotation
if self.datatype == RegistryDataType::Blob {
- let buffer_size = self.dim;
+ let buffer_size = self.x_dim * self.y_dim;
let annotation = format!(
r#"
@@ -184,8 +192,12 @@ impl GenerateA2l for RegistryMeasurement {
)
} else {
// Measurement signals or array of signals
- let matrix_dim = if dim > 1 {
- format!("MATRIX_DIM {} ", dim)
+ let matrix_dim = if x_dim > 1 && y_dim > 1 {
+ format!("MATRIX_DIM {} {} ", x_dim, y_dim)
+ } else if x_dim > 1 {
+ format!("MATRIX_DIM {} ", x_dim)
+ } else if y_dim > 1 {
+ format!("MATRIX_DIM {} ", y_dim)
} else {
"".to_string()
};
diff --git a/src/xcp.rs b/src/xcp.rs
index 5812db8..4aa6f21 100644
--- a/src/xcp.rs
+++ b/src/xcp.rs
@@ -60,11 +60,11 @@ impl XcpLogLevel {
// The remapping is done when the registry is finalized and the A2L is written
// # Safety
// Use of a mutable static is save, because mutation for remapping is done only once in a thread safe context
-const XCP_MAX_EVENTS: usize = 256;
-static mut XCP_EVENT_MAP: [u16; XCP_MAX_EVENTS] = [0; XCP_MAX_EVENTS];
+static mut XCP_EVENT_MAP: [u16; XcpEvent::XCP_MAX_EVENTS] = [0; XcpEvent::XCP_MAX_EVENTS];
/// Represents a measurement event
/// Holds the u16 XCP event number used in the XCP protocol and A2L to identify an event
+/// May have an index > 0 to identify multiple events with the same name in instanciated in different threads
#[derive(Debug, Clone, Copy)]
pub struct XcpEvent {
num: u16, // Number used in A2L and XCP protocol
@@ -72,6 +72,11 @@ pub struct XcpEvent {
}
impl XcpEvent {
+
+ /// Maximum number of events
+ pub const XCP_MAX_EVENTS: usize = 256;
+
+ // Uninitialized event
pub const UNDEFINED: XcpEvent = XcpEvent {
num: 0xFFFF,
index: 0,
@@ -79,6 +84,7 @@ impl XcpEvent {
/// Create a new XCP event
pub fn new(num: u16, index: u16) -> XcpEvent {
+ assert!((num as usize) < XcpEvent::XCP_MAX_EVENTS, "Maximum number of events exceeded");
unsafe {
XCP_EVENT_MAP[num as usize] = num;
}
@@ -117,20 +123,39 @@ impl XcpEvent {
self.index
}
- // Get address externsion and address for A2L generation
- pub fn get_daq_ext_addr(self, offset: i16) -> (u8, u32) {
+ /// Get address extension and address for A2L generation for XCP_ADDR_EXT_DYN addressing mode
+ /// Used by A2L writer
+ pub fn get_dyn_ext_addr(self, offset: i16) -> (u8, u32) {
let a2l_ext = Xcp::XCP_ADDR_EXT_DYN;
let a2l_addr: u32 = (self.get_num() as u32) << 16 | (offset as u16 as u32);
(a2l_ext, a2l_addr)
}
- /// Trigger a XCP event and provide a base pointer for relative addressing with address extension 0
+ /// Get address extension and address for A2L generation for XCP_ADDR_EXT_ABS addressing mode
+ /// Used by A2L writer
+ pub fn get_abs_ext_addr(self, addr: u64) -> (u8, u32) {
+ let a2l_ext = Xcp::XCP_ADDR_EXT_ABS;
+ let a2l_addr = unsafe { xcplib::ApplXcpGetAddr(addr as *const u8) };
+ (a2l_ext, a2l_addr)
+ }
+
+ /// Trigger a XCP event and provide a base pointer for relative addressing mode (XCP_ADDR_EXT_DYN)
+ /// Address of the associated measurement variable must be relative to base
+ ///
/// # Safety
/// This is a C ffi call, which gets a pointer to a daq capture buffer
/// The provenance of the pointer (len, lifetime) is is guaranteed , it refers to self
/// The buffer must match its registry description, to avoid corrupt data given to the XCP tool
#[allow(clippy::not_unsafe_ptr_arg_deref)]
pub fn trigger(self, base: *const u8, len: u32) -> u8 {
+ // trace!(
+ // "Trigger event {} num={}, index={}, base=0x{:X}, len={}",
+ // self.get_name(),
+ // self.get_num(),
+ // self.get_index(),
+ // base as u64,
+ // len
+ // );
// @@@@ unsafe - C library call
// @@@@ unsafe - Transfering a pointer and its valid memory range to XCPlite FFI
unsafe {
@@ -138,6 +163,28 @@ impl XcpEvent {
xcplib::XcpEventExt(self.get_num(), base, len)
}
}
+
+ /// Trigger a XCP event for measurement objects in absolute addressing mode (XCP_ADDR_EXT_DYN)
+ /// Address of the associated measurement variable must be relative to module load addr
+ /// In 64 applications, this offset might overflow in the A2L description - this is checked wenn generating A2L
+ ///
+ /// # Safety
+ /// This is a C ffi call, which gets a pointer to a daq capture buffer
+ #[allow(clippy::not_unsafe_ptr_arg_deref)]
+ pub fn trigger_abs(self) {
+ // trace!(
+ // "Trigger event {} num={}, index={}, len={}",
+ // self.get_name(),
+ // self.get_num(),
+ // self.get_index(),
+ // len
+ // );
+ // @@@@ unsafe - C library call
+ unsafe {
+ // Trigger event
+ xcplib::XcpEvent(self.get_num());
+ }
+ }
}
impl PartialEq for XcpEvent {
@@ -169,7 +216,7 @@ impl EventList {
fn clear(&mut self) {
unsafe {
- XCP_EVENT_MAP = [0; XCP_MAX_EVENTS];
+ XCP_EVENT_MAP = [0; XcpEvent::XCP_MAX_EVENTS];
}
self.0.clear();
}
@@ -212,6 +259,7 @@ impl EventList {
XCP_EVENT_MAP[e.event.num as usize] = i as u16; // New external event number is index pointer to sorted list
}
}
+ trace!("Event map: {:?}", unsafe { XCP_EVENT_MAP });
// Register all events
let r = Xcp::get().get_registry();
@@ -415,6 +463,19 @@ lazy_static::lazy_static! {
}
impl Xcp {
+
+
+ /// Absolute addressing mode of XCPlite
+ pub const XCP_ADDR_EXT_ABS: u8 = 1; // Used for DAQ objects on heap (addr is relative to module load address)
+ /// Relative addressing mode of XCPlite
+ pub const XCP_ADDR_EXT_DYN: u8 = 2; // Used for DAQ objects on stack and capture DAQ ( event in addr high word, low word relative to base given to XcpEventExt )
+ /// Segment relative addressing mode of XCPlite handled by applications read/write callbacks
+ pub const XCP_ADDR_EXT_APP: u8 = 0; // Used for CAL objects (addr = index | 0x8000 in high word (CANape does not support addr_ext in memory segments))
+
+ /// Addr of the EPK
+ pub const XCP_EPK_ADDR: u32 = 0x80000000;
+
+
// new
fn new() -> Xcp {
// @@@@ unsafe - C library call
@@ -516,11 +577,6 @@ impl Xcp {
m.get_name(index)
}
- pub const XCP_EPK_ADDR: u32 = 0x80000000;
- // pub const XCP_ADDR_EXT_ABS: u8 = 1; // Not used (addr = relative to module load address)
- pub const XCP_ADDR_EXT_DYN: u8 = 2; // Used for DAQ (addr = event in high word)
- pub const XCP_ADDR_EXT_APP: u8 = 0; // Used for CAL (addr = index | 0x8000 in high word (CANape does not support addr_ext in memory segments))
-
/// Get registry addr base for a CalSeg
pub fn get_calseg_addr_base(calseg_index: usize) -> u32 {
(((calseg_index as u32) + 1) | 0x8000) << 16 // Address format for calibration segment field is index | 0x8000 in high word, addr_ext is 0 (CANape does not support addr_ext in memory segments)
diff --git a/src/xcplite.rs b/src/xcplite.rs
index 5bc55e0..5b4148c 100644
--- a/src/xcplite.rs
+++ b/src/xcplite.rs
@@ -27,12 +27,18 @@ extern "C" {
extern "C" {
pub fn XcpInit();
}
+extern "C" {
+ pub fn XcpEvent(event: u16);
+}
extern "C" {
pub fn XcpEventExt(event: u16, base: *const u8, len: u32) -> u8;
}
extern "C" {
pub fn XcpPrint(str_: *const ::std::os::raw::c_char);
}
+extern "C" {
+ pub fn ApplXcpGetAddr(p: *const u8) -> u32;
+}
extern "C" {
pub fn XcpEthServerInit(
addr: *const u8,
diff --git a/tests/multi_task.rs b/tests/multi_task.rs
deleted file mode 100644
index 5e7ffe5..0000000
--- a/tests/multi_task.rs
+++ /dev/null
@@ -1,132 +0,0 @@
-// multi_task
-// Integration test for XCP in a application with dynamic tasks
-// Uses the test XCP client in test_executor
-
-use xcp::*;
-use xcp_type_description_derive::XcpTypeDescription;
-
-mod test_executor;
-use test_executor::test_executor;
-
-#[allow(unused_imports)]
-use log::{debug, error, info, trace, warn};
-use serde::{Deserialize, Serialize};
-use std::{fmt::Debug, thread};
-use tokio::time::Duration;
-
-//-----------------------------------------------------------------------------
-// XCP
-
-const OPTION_SERVER_ADDR: [u8; 4] = [127, 0, 0, 1]; // Localhost
-const OPTION_SERVER_PORT: u16 = 5555;
-const OPTION_TRANSPORT_LAYER: XcpTransportLayer = XcpTransportLayer::Udp; // XcpTransportLayer::TcpIp or XcpTransportLayer::UdpIp
-const OPTION_SEGMENT_SIZE: u16 = 1500 - 28; // UDP MTU
-const OPTION_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Info;
-const OPTION_XCP_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Warn;
-
-//-----------------------------------------------------------------------------
-// Calibration Segment
-
-#[derive(Debug, Clone, Copy, Serialize, Deserialize, XcpTypeDescription)]
-struct CalPage1 {
- run: bool,
- counter_max: u32,
- cycle_time_us: u32,
-}
-
-const CAL_PAR1: CalPage1 = CalPage1 {
- run: true,
- counter_max: 10,
- cycle_time_us: 1000,
-};
-
-//-----------------------------------------------------------------------------
-
-fn task1(cal_seg: CalSeg) {
- let mut event = daq_create_event!("task", 8);
-
- let mut counter: u32 = 0;
- let mut counter_max: u32 = 0;
-
- loop {
- thread::sleep(Duration::from_micros(cal_seg.cycle_time_us as u64));
-
- daq_capture!(counter_max, event);
- daq_capture!(counter, event);
- event.trigger();
-
- counter += 1;
- counter_max = cal_seg.counter_max;
- if counter > counter_max {
- break;
- }
- }
-
- debug!("Task1 terminated");
-}
-
-// Test task will be instantiated multiple times
-fn task0(cal_seg: CalSeg) {
- loop {
- thread::sleep(Duration::from_micros(100));
-
- let c = cal_seg.clone();
- let t = thread::spawn(move || {
- task1(c);
- });
- t.join().unwrap();
-
- cal_seg.sync();
-
- // Check for termination
- if !cal_seg.run {
- break;
- }
- }
-
- info!("Task0 terminated");
-}
-
-//-----------------------------------------------------------------------------
-// Integration test single threads calibration
-
-#[tokio::test]
-async fn test_multi_task() {
- env_logger::Builder::new()
- .filter_level(OPTION_LOG_LEVEL.to_log_level_filter())
- .init();
-
- // Initialize XCP driver singleton, the transport layer server and enable the A2L writer
- match XcpBuilder::new("xcp_lite")
- .set_log_level(OPTION_XCP_LOG_LEVEL)
- .enable_a2l(true)
- .set_epk("EPK_TEST")
- .start_server(
- OPTION_TRANSPORT_LAYER,
- OPTION_SERVER_ADDR,
- OPTION_SERVER_PORT,
- OPTION_SEGMENT_SIZE,
- ) {
- Err(res) => {
- error!("XCP initialization failed: {:?}", res);
- return;
- }
- Ok(xcp) => xcp,
- };
-
- // Create a calibration segment
- let cal_seg = Xcp::create_calseg("cal_seg", &CAL_PAR1, true);
-
- // Start the test task
- let t0 = thread::spawn(move || {
- task0(cal_seg);
- });
-
- // Execute the test
- test_executor(false, false, OPTION_LOG_LEVEL).await; // Start the test executor XCP client
-
- t0.join().unwrap();
-
- Xcp::stop_server();
- std::fs::remove_file("xcp_client.a2l").ok();
-}
diff --git a/tests/multi_thread.rs b/tests/multi_thread.rs
index 54d508e..8ed3c7c 100644
--- a/tests/multi_thread.rs
+++ b/tests/multi_thread.rs
@@ -22,7 +22,7 @@ const OPTION_SERVER_PORT: u16 = 5555;
const OPTION_TRANSPORT_LAYER: XcpTransportLayer = XcpTransportLayer::Udp; // XcpTransportLayer::TcpIp or XcpTransportLayer::UdpIp
const OPTION_SEGMENT_SIZE: u16 = 1500 - 28; // UDP MTU
const OPTION_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Info;
-const OPTION_XCP_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Warn;
+const OPTION_XCP_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Info;
//-----------------------------------------------------------------------------
// Calibration Segment
@@ -193,7 +193,7 @@ async fn test_multi_thread() {
v.push(t);
}
- test_executor(false, true, OPTION_LOG_LEVEL).await; // Start the test executor XCP client
+ test_executor(false, true).await; // Start the test executor XCP client
for t in v {
t.join().ok();
diff --git a/tests/single_thread.rs b/tests/single_thread.rs
index 581ad0e..842fca7 100644
--- a/tests/single_thread.rs
+++ b/tests/single_thread.rs
@@ -22,7 +22,7 @@ const OPTION_SERVER_PORT: u16 = 5555;
const OPTION_TRANSPORT_LAYER: XcpTransportLayer = XcpTransportLayer::Udp; // XcpTransportLayer::TcpIp or XcpTransportLayer::UdpIp
const OPTION_SEGMENT_SIZE: u16 = 1500 - 28; // UDP MTU
const OPTION_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Info;
-const OPTION_XCP_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Warn;
+const OPTION_XCP_LOG_LEVEL: XcpLogLevel = XcpLogLevel::Info;
//-----------------------------------------------------------------------------
// static calibration parameters
@@ -205,7 +205,7 @@ async fn test_single_thread() {
task(cal_seg);
});
- test_executor(true, false, OPTION_LOG_LEVEL).await; // Start the test executor XCP client
+ test_executor(true, false).await; // Start the test executor XCP client
t1.join().ok();
Xcp::stop_server();
diff --git a/tests/test_executor/mod.rs b/tests/test_executor/mod.rs
index 9188ec8..a11338a 100644
--- a/tests/test_executor/mod.rs
+++ b/tests/test_executor/mod.rs
@@ -192,7 +192,7 @@ impl XcpDaqDecoder for DaqDecoder {
//-----------------------------------------------------------------------
// Execute tests
-pub async fn test_executor(single_thread: bool, multi_thread: bool, log_level: XcpLogLevel) {
+pub async fn test_executor(single_thread: bool, multi_thread: bool) {
tokio::time::sleep(Duration::from_millis(500)).await;
info!("Start test executor");
@@ -291,10 +291,9 @@ pub async fn test_executor(single_thread: bool, multi_thread: bool, log_level: X
//-------------------------------------------------------------------------------------------------------------------------------------
// DAQ test single_thread or multi_thread
if single_thread || multi_thread {
- let log_level_daq_test = log_level;
+
tokio::time::sleep(Duration::from_micros(10000)).await;
info!("Start data acquisition test");
- Xcp::set_server_log_level(log_level_daq_test);
// Create a calibration object for CalPage1.counter_max
// Set counter_max to 15
@@ -429,15 +428,7 @@ pub async fn test_executor(single_thread: bool, multi_thread: bool, log_level: X
assert_eq!(d.odt_max, 0);
}
}
- //-------------------------------------------------------------------------------------------------------------------------------------
- // DAQ test multi_task
- else {
- xcp_client.create_measurement_object("counter_max").unwrap();
- xcp_client.create_measurement_object("counter").unwrap();
- xcp_client.start_measurement().await.unwrap();
- tokio::time::sleep(Duration::from_millis(1000)).await;
- xcp_client.stop_measurement().await.unwrap();
- }
+
// Wait some time to be sure the queue is emptied
// The XCP server should not respond to STOP while the queue is not empty
diff --git a/xcp_client/src/a2l/a2l_reader.rs b/xcp_client/src/a2l/a2l_reader.rs
index d946ed6..274fff6 100644
--- a/xcp_client/src/a2l/a2l_reader.rs
+++ b/xcp_client/src/a2l/a2l_reader.rs
@@ -234,7 +234,7 @@ pub fn a2l_find_measurement(a2l_file: &A2lFile, name: &str) -> Option<(A2lAddr,
pub fn a2l_printf_info(a2l_file: &A2lFile) {
// MOD_PAR
info!("MOD_PAR:");
- for mod_par in &a2l_file.project.module[0].mod_par {
+ if let Some(mod_par) = &a2l_file.project.module[0].mod_par {
if let Some(epk) = &mod_par.epk {
info!(" epk={}", epk.identifier);
}
diff --git a/xcp_client/src/xcp_client.rs b/xcp_client/src/xcp_client.rs
index 2ea9245..98d3f38 100644
--- a/xcp_client/src/xcp_client.rs
+++ b/xcp_client/src/xcp_client.rs
@@ -651,7 +651,9 @@ impl XcpClient {
}
}
None => {
- panic!("xcp_command: bug in receive_task, no data in channel")
+ // @@@@ Empty response, channel has been closed, return with XcpError Timeout
+ error!("xcp_command: receive_task channel closed");
+ Err(Box::new(XcpError::new(ERROR_CMD_TIMEOUT)) as Box)
}
}
}
diff --git a/xcp_lite.a2l b/xcp_lite.a2l
index cae52ba..43b7078 100644
--- a/xcp_lite.a2l
+++ b/xcp_lite.a2l
@@ -130,24 +130,25 @@
OPTIONAL_LEVEL1_CMD GET_VERSION
/end PROTOCOL_LAYER
/begin DAQ
- DYNAMIC 0 13 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
+ DYNAMIC 0 14 0 OPTIMISATION_TYPE_DEFAULT ADDRESS_EXTENSION_FREE IDENTIFICATION_FIELD_TYPE_RELATIVE_BYTE GRANULARITY_ODT_ENTRY_SIZE_DAQ_BYTE 0xF8 OVERLOAD_INDICATION_PID
/begin TIMESTAMP_SUPPORTED
0x1 SIZE_DWORD UNIT_1US TIMESTAMP_FIXED
/end TIMESTAMP_SUPPORTED
/begin EVENT "mainloop" "mainloop" 0 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task1" "task1" 1 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task1_points" "task1_po" 2 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_1" "task2_in" 3 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_2" "task2_in" 4 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_3" "task2_in" 5 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_4" "task2_in" 6 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_5" "task2_in" 7 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_6" "task2_in" 8 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_7" "task2_in" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_8" "task2_in" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_inst_9" "task2_in" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
-/begin EVENT "task2_static" "task2_st" 12 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "mainloop_array" "mainloop" 1 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task1" "task1" 2 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task1_points" "task1_po" 3 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_1" "task2_in" 4 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_2" "task2_in" 5 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_3" "task2_in" 6 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_4" "task2_in" 7 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_5" "task2_in" 8 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_6" "task2_in" 9 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_7" "task2_in" 10 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_8" "task2_in" 11 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_inst_9" "task2_in" 12 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
+/begin EVENT "task2_static" "task2_st" 13 DAQ 0xFF 0 0 0 CONSISTENCY EVENT /end EVENT
/end DAQ
@@ -202,35 +203,36 @@ CalPage2.ampl
CalPage2.period
/end REF_CHARACTERISTIC /end GROUP
-/begin MEASUREMENT array1 "" FLOAT64_IEEE NO_COMPU_METHOD 0 0 -1000000000000 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x1F7F4 ECU_ADDRESS_EXTENSION 2 MATRIX_DIM 256 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT array1 "" FLOAT64_IEEE NO_COMPU_METHOD 0 0 -1000000000000 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x2F71C ECU_ADDRESS_EXTENSION 2 MATRIX_DIM 256 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel "sine: f64" FLOAT64_IEEE channel.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xC0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel "sine: f64" FLOAT64_IEEE channel.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xD0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 13 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_1.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_1 "sine: f64" FLOAT64_IEEE channel_1.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x30000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 3 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_1 "sine: f64" FLOAT64_IEEE channel_1.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x40000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 4 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_2.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_2 "sine: f64" FLOAT64_IEEE channel_2.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x40000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 4 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_2 "sine: f64" FLOAT64_IEEE channel_2.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x50000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 5 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_3.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_3 "sine: f64" FLOAT64_IEEE channel_3.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x50000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 5 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_3 "sine: f64" FLOAT64_IEEE channel_3.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x60000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 6 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_4.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_4 "sine: f64" FLOAT64_IEEE channel_4.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x60000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 6 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_4 "sine: f64" FLOAT64_IEEE channel_4.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x70000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_5.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_5 "sine: f64" FLOAT64_IEEE channel_5.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x70000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 7 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_5 "sine: f64" FLOAT64_IEEE channel_5.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x80000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_6.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_6 "sine: f64" FLOAT64_IEEE channel_6.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x80000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 8 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_6 "sine: f64" FLOAT64_IEEE channel_6.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x90000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_7.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_7 "sine: f64" FLOAT64_IEEE channel_7.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0x90000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 9 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_7 "sine: f64" FLOAT64_IEEE channel_7.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xA0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_8.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_8 "sine: f64" FLOAT64_IEEE channel_8.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xA0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 10 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT channel_8 "sine: f64" FLOAT64_IEEE channel_8.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xB0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
/begin COMPU_METHOD channel_9.Conv "" LINEAR "%6.3" "Volt" COEFFS_LINEAR 1 0 /end COMPU_METHOD
-/begin MEASUREMENT channel_9 "sine: f64" FLOAT64_IEEE channel_9.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xB0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 11 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter "" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x1F7E0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u16 "wrapping counter: u16" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x1F7E6 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u32 "wrapping counter: u32" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x1F7E8 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u64 "wrapping counter: u64" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x1F7EC ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT counter_u8 "wrapping counter: u8" UBYTE NO_COMPU_METHOD 0 0 0 255 PHYS_UNIT "" ECU_ADDRESS 0x1F7E5 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT mainloop_counter "counter on stack" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0xFFF0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin MEASUREMENT mainloop_counter2 "counter on heap" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
-/begin CHARACTERISTIC point_cloud "struct serializer demo" ASCII 0x20000 U8 0 NO_COMPU_METHOD 0 255 READ_ONLY NUMBER 64 ECU_ADDRESS_EXTENSION 2
+/begin MEASUREMENT channel_9 "sine: f64" FLOAT64_IEEE channel_9.Conv 0 0 -1000000000000 1000000000000 PHYS_UNIT "Volt" ECU_ADDRESS 0xC0000 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 12 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter "" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x2000C ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u16 "wrapping counter: u16" UWORD NO_COMPU_METHOD 0 0 0 65535 PHYS_UNIT "" ECU_ADDRESS 0x20010 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u32 "wrapping counter: u32" ULONG NO_COMPU_METHOD 0 0 0 4294967295 PHYS_UNIT "" ECU_ADDRESS 0x20008 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u64 "wrapping counter: u64" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x2FFE4 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT counter_u8 "wrapping counter: u8" UBYTE NO_COMPU_METHOD 0 0 0 255 PHYS_UNIT "" ECU_ADDRESS 0x20013 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT mainloop_array "array on heap" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x10000 ECU_ADDRESS_EXTENSION 2 MATRIX_DIM 16 16 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 1 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT mainloop_counter1 "" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x18 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin MEASUREMENT mainloop_counter3 "" A_UINT64 NO_COMPU_METHOD 0 0 0 1000000000000 PHYS_UNIT "" ECU_ADDRESS 0x0 ECU_ADDRESS_EXTENSION 2 /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 0 /end DAQ_EVENT /end IF_DATA /end MEASUREMENT
+/begin CHARACTERISTIC point_cloud "struct serializer demo" ASCII 0x30000 U8 0 NO_COMPU_METHOD 0 255 READ_ONLY NUMBER 64 ECU_ADDRESS_EXTENSION 2
/begin ANNOTATION ANNOTATION_LABEL "ObjectDescription" ANNOTATION_ORIGIN "application/dds" /begin ANNOTATION_TEXT
" "
"Vector::PointCloud"
@@ -247,10 +249,13 @@ CalPage2.period
/end ANNOTATION_TEXT /end ANNOTATION
/begin ANNOTATION ANNOTATION_LABEL "IsVlsd" ANNOTATION_ORIGIN "" /begin ANNOTATION_TEXT "true" /end ANNOTATION_TEXT /end ANNOTATION
/begin ANNOTATION ANNOTATION_LABEL "MaxBufferNeeded" ANNOTATION_ORIGIN "" /begin ANNOTATION_TEXT "64" /end ANNOTATION_TEXT /end ANNOTATION
- /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 2 /end DAQ_EVENT /end IF_DATA /end CHARACTERISTIC
+ /begin IF_DATA XCP /begin DAQ_EVENT FIXED_EVENT_LIST EVENT 3 /end DAQ_EVENT /end IF_DATA /end CHARACTERISTIC
/begin GROUP mainloop "" /begin REF_MEASUREMENT
-mainloop_counter
-mainloop_counter2
+mainloop_counter1
+mainloop_counter3
+/end REF_MEASUREMENT /end GROUP
+/begin GROUP mainloop_array "" /begin REF_MEASUREMENT
+mainloop_array
/end REF_MEASUREMENT /end GROUP
/begin GROUP task1 "" /begin REF_MEASUREMENT
array1
diff --git a/xcplib/src/xcpLite.c b/xcplib/src/xcpLite.c
index 17d5121..cb16735 100644
--- a/xcplib/src/xcpLite.c
+++ b/xcplib/src/xcpLite.c
@@ -142,6 +142,7 @@ typedef struct {
uint8_t mode;
uint8_t state;
uint8_t priority;
+ uint8_t addrExt;
} tXcpDaqList;
@@ -176,6 +177,7 @@ typedef struct {
#define DaqListMode(i) gXcp.Daq.u.DaqList[i].mode
#define DaqListState(i) gXcp.Daq.u.DaqList[i].state
#define DaqListEventChannel(i) gXcp.Daq.u.DaqList[i].eventChannel
+#define DaqListAddrExt(i) gXcp.Daq.u.DaqList[i].addrExt
#define DaqListPriority(i) gXcp.Daq.u.DaqList[i].priority
#ifdef XCP_ENABLE_PACKED_MODE
#define DaqListSampleCount(i) gXcp.Daq.u.DaqList[i].sampleCount
@@ -501,6 +503,7 @@ static uint8_t XcpAllocDaq( uint16_t daqCount ) {
if (0!=(r = XcpAllocMemory())) return r;
for (daq=0;daq XCP_MAX_ODT_ENTRY_SIZE) return CRC_OUT_OF_RANGE;
if (0 == gXcp.Daq.DaqCount || 0 == gXcp.Daq.OdtCount || 0 == gXcp.Daq.OdtEntryCount) return CRC_DAQ_CONFIG;
if (gXcp.WriteDaqOdtEntry-DaqListOdtFirstEntry(gXcp.WriteDaqOdt) >= DaqListOdtEntryCount(gXcp.WriteDaqOdt)) return CRC_OUT_OF_RANGE;
+ uint8_t daq_ext = DaqListAddrExt(gXcp.WriteDaqDaq);
+ if (daq_ext != XCP_ADDR_EXT_UNDEFINED && ext != daq_ext) return CRC_DAQ_CONFIG; // Error not unique address extension
+ DaqListAddrExt(gXcp.WriteDaqDaq) = ext;
+
#ifndef XCP_ENABLE_DYN_ADDRESSING
if (ext != XCP_ADDR_EXT_ABS) return CRC_ACCESS_DENIED; // Illegal address extension for DAQ, DAQ can only handle absolute addressing
#else
@@ -622,6 +632,7 @@ static uint8_t XcpAddOdtEntry(uint32_t addr, uint8_t ext, uint8_t size) {
}
// Set DAQ list mode
+// All DAQ lists associaded with an event, must have the same event channel and address extension
static uint8_t XcpSetDaqListMode(uint16_t daq, uint16_t event, uint8_t mode, uint8_t prio ) {
#ifdef XCP_ENABLE_DAQ_EVENT_LIST
@@ -629,8 +640,21 @@ static uint8_t XcpSetDaqListMode(uint16_t daq, uint16_t event, uint8_t mode, uin
if (e == NULL) return CRC_OUT_OF_RANGE;
#endif
#ifdef XCP_ENABLE_DYN_ADDRESSING
- uint16_t e0 = DaqListEventChannel(daq);
- if (e0 != XCP_UNDEFINED_EVENT && event != e0) return CRC_OUT_OF_RANGE; // Error event channel redefinition
+
+ // Check if the DAQ list requires a specific event and it matches
+ uint16_t event0 = DaqListEventChannel(daq);
+ if (event0 != XCP_UNDEFINED_EVENT && event != event0) return CRC_DAQ_CONFIG; // Error event not unique
+
+ // Check all DAQ lists with same event have the same address extension
+ uint8_t ext = DaqListAddrExt(daq);
+ for (uint16_t daq0=0;daq0= b);
+ assert(((uint64_t)p - (uint64_t)b) <= 0xffffffff); // be sure that XCP address range is sufficient
+ return (uint32_t)(p - b);
}
#endif
@@ -257,7 +259,7 @@ uint8_t* ApplXcpGetBaseAddr() {
if (!baseAddrValid) {
//dump_so();
- baseAddr = (uint8_t*)_dyld_get_image_header(0);
+ baseAddr = (uint8_t*)_dyld_get_image_header(0); // Module addr
assert(baseAddr != NULL);
baseAddrValid = 1;
DBG_PRINTF4("baseAddr = %llX\n", (uint64_t)baseAddr);
@@ -268,8 +270,12 @@ uint8_t* ApplXcpGetBaseAddr() {
uint32_t ApplXcpGetAddr(const uint8_t* p)
{
- ApplXcpGetBaseAddr();
- return (uint32_t)(p - baseAddr);
+ uint8_t* b = ApplXcpGetBaseAddr();
+ if ( p < b || ((uint64_t)p - (uint64_t)b) > 0xffffffff) { // be sure that XCP address range is sufficient
+ DBG_PRINTF_ERROR("Address out of range! base = %llX, addr = %llX\n", (uint64_t)b, (uint64_t)p);
+ assert(0);
+ }
+ return (uint32_t)(p - b);
}
#endif
diff --git a/xcplib/xcp_cfg.h b/xcplib/xcp_cfg.h
index d96e7a6..d8482b1 100644
--- a/xcplib/xcp_cfg.h
+++ b/xcplib/xcp_cfg.h
@@ -21,7 +21,7 @@
#define XCP_PROTOCOL_LAYER_VERSION 0x0104 // PACKED_MODE, CC_START_STOP_SYNCH prepare
/*----------------------------------------------------------------------------*/
-/* Driver features */
+/* Adress, address extension coding */
#define XCP_ADDR_EXT_ABS 0x01 // Absolute address format
@@ -33,9 +33,12 @@
#define XCP_ENABLE_APP_ADDRESSING
#define XCP_ADDR_EXT_APP 0x00 // Address format handled by application
-// Use addr_ext XCP_ADDR_EXT_A2L to indicate A2L uopload memory space
+// Use addr_ext XCP_ADDR_EXT_A2L to indicate A2L upload memory space
#define XCP_ADDR_EXT_A2L 0xFF // Upload A2L address space
+// Undefined
+#define XCP_ADDR_EXT_UNDEFINED 0xFE // Undefined address extension
+
/*----------------------------------------------------------------------------*/
/* Protocol features */