Skip to content

Commit c2e644c

Browse files
committed
Updated links in documentation.
Updated code in examples to reflect better naming conventions. Ran the documentation through a markdown linter.
1 parent 59024c7 commit c2e644c

File tree

21 files changed

+115
-120
lines changed

21 files changed

+115
-120
lines changed

AdvancedExampleProject/README.md

+12-16
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
# IOLink - A TwinCAT library for demonstrating TcUnit
22

33
This library project is used primarily for the demonstration purposes of the
4-
[TwinCAT unit testing framework **TcUnit**](https://github.com/tcunit/TcUnit).
4+
[TwinCAT unit testing framework **TcUnit**](https://github.com/TcUnit/TcUnit).
55

66
It implements certain parts of the IO-Link functionality.
7-
IO-Link is a serial communication protocol for end devices such as various types
8-
of sensors (temperature, pressure, etc) and actuators.
9-
The functionality implemented in this library is related to the "diagnosis" part
10-
of IO-Link, which in EtherCAT masters is implemented using the diagnosis history
11-
object defined in the ETG1020 specification.
7+
IO-Link is a serial communication protocol for end devices such as various types of sensors (temperature, pressure, etc) and actuators.
8+
The functionality implemented in this library is related to the "diagnosis" part of IO-Link, which in EtherCAT masters is implemented using the diagnosis history object defined in the ETG1020 specification.
129

13-
This library is explained in full detail in seven chapters on the website for the
14-
TcUnit framework.
15-
- [Introduction](https://tcunit.org/programming-example-introduction/)
16-
- [The function blocks](https://tcunit.org/programming-example-the-function-blocks/)
17-
- [Test cases - part one](https://tcunit.org/programming-example-test-cases-part-one/)
18-
- [Test cases - part two](https://tcunit.org/programming-example-test-cases-part-two/)
19-
- [Implementation - part one](https://tcunit.org/programming-example-implementation-part-one/)
20-
- [Implementation - part two](https://tcunit.org/programming-example-implementation-part-two/)
21-
- [Final words](https://tcunit.org/programming-example-final-words/)
10+
This library is explained in full detail in seven chapters on the website for the TcUnit framework.
2211

12+
- [Introduction](https://tcunit.org/#/programming-example-introduction)
13+
- [The function blocks](https://tcunit.org/#/programming-example-the-function-blocks)
14+
- [Test cases - part one](https://tcunit.org/#/programming-example-test-cases-part-one)
15+
- [Test cases - part two](https://tcunit.org/#/programming-example-test-cases-part-two)
16+
- [Implementation - part one](https://tcunit.org/#/programming-example-implementation-part-one)
17+
- [Implementation - part two](https://tcunit.org/#/programming-example-implementation-part-two)
18+
- [Final words](https://tcunit.org/#/programming-example-final-words)
2319

24-
Documentation and examples for TcUnit is available at [www.tcunit.org](https://www.tcunit.org)
20+
Documentation and examples for TcUnit is available at [www.tcunit.org](https://www.tcunit.org).

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# Example projects for TcUnit
2+
23
This repository holds example projects for TcUnit. For more information see:
4+
35
- [Simple example project](https://github.com/tcunit/ExampleProjects/tree/master/SimpleExampleProject)
46
- [Advanced example project](https://github.com/tcunit/ExampleProjects/tree/master/AdvancedExampleProject)
5-
- [Sequentially running tests example projects](https://github.com/tcunit/ExampleProjects/tree/master/RunTestsInSequenceExampleProjects)
7+
- [Sequentially running tests example projects](https://github.com/tcunit/ExampleProjects/tree/master/RunTestsInSequenceExampleProjects)

RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests.tsproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2-
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4022.32">
1+
<?xml version="1.0"?>
2+
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.53">
33
<Project ProjectGUID="{14DA46EF-4993-4DD3-8B4D-2DB7F8043969}" Target64Bit="true" ShowHideConfigurations="#x3c7">
44
<System>
55
<Tasks>

RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/GVLs/GVL.TcGVL

+6-5
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22
<TcPlcObject Version="1.1.0.1">
33
<GVL Name="GVL" Id="{f215fd48-1cb0-4b73-9578-03c6a30e1dbf}">
44
<Declaration><![CDATA[{attribute 'qualified_only'}
5+
// These variables only exist to test the TcUnit framework. You can ignore them.
56
VAR_GLOBAL
6-
timedfb_testshortTime : ULINT;
7-
timedfb_testLongTime : ULINT;
8-
statemachinefb_testvariant100 : ULINT;
9-
statemachinefb_testvariant50 : ULINT;
10-
statemachinefb_testvariant20 : ULINT;
7+
nTimedFunctionBlockTestShortTime : ULINT;
8+
nTimedFunctionBlockTestLongTime : ULINT;
9+
nStateMachineFunctionBlockTestVariant100 : ULINT;
10+
nStateMachineFunctionBlockTestVariant50 : ULINT;
11+
nStateMachineFunctionBlockTestVariant20 : ULINT;
1112
END_VAR]]></Declaration>
1213
</GVL>
1314
</TcPlcObject>

RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests.plcproj

+9-10
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
</Compile>
4444
</ItemGroup>
4545
<ItemGroup>
46-
<Folder Include="DUTs" />
4746
<Folder Include="GVLs" />
4847
<Folder Include="Test" />
4948
<Folder Include="POUs" />
@@ -79,8 +78,8 @@
7978
<ProjectExtensions>
8079
<PlcProjectOptions>
8180
<XmlArchive>
82-
<Data>
83-
<o xml:space="preserve" t="OptionKey">
81+
<Data>
82+
<o xml:space="preserve" t="OptionKey">
8483
<v n="Name">"&lt;ProjectRoot&gt;"</v>
8584
<d n="SubKeys" t="Hashtable" ckt="String" cvt="OptionKey">
8685
<v>{192FAD59-8248-4824-A8DE-9177C94C195A}</v>
@@ -107,13 +106,13 @@
107106
</d>
108107
<d n="Values" t="Hashtable" />
109108
</o>
110-
</Data>
111-
<TypeList>
112-
<Type n="Hashtable">System.Collections.Hashtable</Type>
113-
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
114-
<Type n="String">System.String</Type>
115-
</TypeList>
116-
</XmlArchive>
109+
</Data>
110+
<TypeList>
111+
<Type n="Hashtable">System.Collections.Hashtable</Type>
112+
<Type n="OptionKey">{54dd0eac-a6d8-46f2-8c27-2f43c7e49861}</Type>
113+
<Type n="String">System.String</Type>
114+
</TypeList>
115+
</XmlArchive>
117116
</PlcProjectOptions>
118117
</ProjectExtensions>
119118
</Project>

RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/POUs/FB_StateMachineFunctionBlock.TcPOU

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ VAR_OUTPUT
1313
END_VAR
1414
VAR
1515
nState : INT;
16-
bTrigger : Tc2_Standard.R_TRIG();
16+
bTrigger : R_TRIG();
1717
END_VAR]]></Declaration>
1818
<Implementation>
1919
<ST><![CDATA[CASE nState OF
@@ -26,15 +26,15 @@ END_VAR]]></Declaration>
2626
1 :
2727
nValue := 0; // Reset output value
2828
nState := 2;
29-
29+
3030
2 :
3131
IF nVariant = 50 THEN
3232
nState := 20;
3333
ELSE
3434
nState := 10;
3535
END_IF
3636
37-
10 :
37+
10 :
3838
nValue := 100;
3939
nState := 0;
4040

RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/POUs/FB_TimedFunctionBlock.TcPOU

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ VAR_OUTPUT
1010
nValue : INT;
1111
END_VAR
1212
VAR
13-
fbTimer : Tc2_Standard.TON := (PT := T#5S);
13+
fbTimer : TON := (PT := T#5S);
1414
END_VAR]]></Declaration>
1515
<Implementation>
1616
<ST><![CDATA[fbTimer(IN := bExecute); // Start timer on high trigger, reset timer on low

RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/MixedSequentialAndParallelTests/Test/FB_StateMachineAndTimedFunctionBlock_Test.TcPOU

+10-10
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,15 @@ TestVariant20(); // This test will fail]]></ST>
1717
VAR_INST
1818
// Function block under test
1919
fbTimedFunctionBlock : FB_TimedFunctionBlock;
20-
fbTon : Tc2_Standard.TON := (PT := T#10S); // The maximum time we will run the test
20+
fbTon : TON := (PT := T#10S); // The maximum time we will run the test
2121
END_VAR
2222
VAR CONSTANT
2323
EXPECTED_RESULT : INT := 100;
2424
END_VAR]]></Declaration>
2525
<Implementation>
2626
<ST><![CDATA[(* Make sure to only run test logic if it's time for this test to execute *)
2727
IF TEST_ORDERED('TestLongTime') THEN
28-
GVL.timedfb_testLongTime := GVL.timedfb_testLongTime + 1; // Only for testing the framework. Ignore this.
28+
GVL.nTimedFunctionBlockTestLongTime := GVL.nTimedFunctionBlockTestLongTime + 1; // Only for testing the framework. Ignore this.
2929
fbTon(IN := TRUE); // Maximum time we will run the test
3030
fbTimedFunctionBlock(bExecute := TRUE);
3131
(* Check if we get a timeout or if we get the result we want *)
@@ -45,7 +45,7 @@ END_IF]]></ST>
4545
VAR_INST
4646
// Function block under test
4747
fbTimedFunctionBlock : FB_TimedFunctionBlock;
48-
fbTon : Tc2_Standard.TON := (PT := T#2S); // The maximum time we will run the test
48+
fbTon : TON := (PT := T#2S); // The maximum time we will run the test
4949
END_VAR
5050
VAR CONSTANT
5151
EXPECTED_RESULT : INT := 100;
@@ -54,7 +54,7 @@ END_VAR]]></Declaration>
5454
<ST><![CDATA[(* Make sure to only run test logic if it's time for this test to execute
5555
Note that this test will fail, as we will not run it long enough to get the correct result! *)
5656
IF TEST_ORDERED('TestShortTime') THEN
57-
GVL.timedfb_testshortTime := GVL.timedfb_testshortTime + 1; // Only for testing the framework. Ignore this.
57+
GVL.nTimedFunctionBlockTestShortTime := GVL.nTimedFunctionBlockTestShortTime + 1; // Only for testing the framework. Ignore this.
5858
fbTon(IN := TRUE); // Maximum time we will run the test
5959
fbTimedFunctionBlock(bExecute := TRUE);
6060
(* Check if we get a timeout or if we get the result we want *)
@@ -74,15 +74,15 @@ END_IF]]></ST>
7474
VAR_INST
7575
// Function block under test
7676
fbStateMachineFunctionBlock : FB_StateMachineFunctionBlock;
77-
fbTon : Tc2_Standard.TON := (PT := T#5S); // The maximum time we will run the test
77+
fbTon : TON := (PT := T#5S); // The maximum time we will run the test
7878
END_VAR
7979
VAR CONSTANT
8080
EXPECTED_RESULT : INT := 100;
8181
END_VAR]]></Declaration>
8282
<Implementation>
8383
<ST><![CDATA[// Make sure to only run test logic if it's time for this test to execute
8484
IF TEST_ORDERED('TestVariant100') THEN
85-
GVL.statemachinefb_testvariant100 := GVL.statemachinefb_testvariant100 + 1; // Only for testing the framework. Ignore this.
85+
GVL.nStateMachineFunctionBlockTestVariant100 := GVL.nStateMachineFunctionBlockTestVariant100 + 1; // Only for testing the framework. Ignore this.
8686
fbTon(IN := TRUE); // Maximum time we will run the test
8787
fbStateMachineFunctionBlock(bStart := TRUE, nVariant := 100);
8888
(* Check if we get a timeout or if we get the result we want *)
@@ -102,7 +102,7 @@ END_IF]]></ST>
102102
VAR_INST
103103
// Function block under test
104104
fbStateMachineFunctionBlock : FB_StateMachineFunctionBlock;
105-
fbTon : Tc2_Standard.TON := (PT := T#1MS); // The maximum time we will run the test
105+
fbTon : TON := (PT := T#1MS); // The maximum time we will run the test
106106
END_VAR
107107
VAR CONSTANT
108108
EXPECTED_RESULT : INT := 100;
@@ -111,7 +111,7 @@ END_VAR]]></Declaration>
111111
<ST><![CDATA[(* Make sure to only run test logic if it's time for this test to execute
112112
Note that this test will fail, as we will not run it long enough to get the correct result! *)
113113
IF TEST_ORDERED('TestVariant20') THEN
114-
GVL.statemachinefb_testvariant20 := GVL.statemachinefb_testvariant20 + 1; // Only for testing the framework. Ignore this.
114+
GVL.nStateMachineFunctionBlockTestVariant20 := GVL.nStateMachineFunctionBlockTestVariant20 + 1; // Only for testing the framework. Ignore this.
115115
fbTon(IN := TRUE); // Maximum time we will run the test
116116
fbStateMachineFunctionBlock(bStart := TRUE, nVariant := 20);
117117
(* Check if we get a timeout or if we get the result we want *)
@@ -131,14 +131,14 @@ END_IF]]></ST>
131131
VAR_INST
132132
// Function block under test
133133
fbStateMachineFunctionBlock : FB_StateMachineFunctionBlock;
134-
fbTon : Tc2_Standard.TON := (PT := T#5S); // The maximum time we will run the test
134+
fbTon : TON := (PT := T#5S); // The maximum time we will run the test
135135
END_VAR
136136
VAR CONSTANT
137137
EXPECTED_RESULT : INT := 200;
138138
END_VAR]]></Declaration>
139139
<Implementation>
140140
<ST><![CDATA[TEST('TestVariant50');
141-
GVL.statemachinefb_testvariant50 := GVL.statemachinefb_testvariant50 + 1; // Only for testing the framework. Ignore this.
141+
GVL.nStateMachineFunctionBlockTestVariant50 := GVL.nStateMachineFunctionBlockTestVariant50 + 1; // Only for testing the framework. Ignore this.
142142
fbTon(IN := TRUE); // Maximum time we will run the test
143143
fbStateMachineFunctionBlock(bStart := TRUE, nVariant := 50);
144144
(* Check if we get a timeout or if we get the result we want *)
+9-7
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
# RunTestsInSequenceExampleProjects
2+
23
This folder holds several example projects of how to run TcUnit tests in a sequence.
34

45
The following example projects are available:
6+
57
- [**SequentialTestSuitesAndTests**](https://github.com/tcunit/ExampleProjects/tree/master/RunTestsInSequenceExampleProjects/SequentialTestSuitesAndTests)
6-
This example shows how to run both:
7-
- Test suites in a sequence
8-
- Individual tests in a certain order
9-
8+
This example shows how to run both:
9+
10+
- Test suites in a sequence
11+
- Individual tests in a certain order
12+
1013
The program executes the test suites one after the other, with a delay of `T#0MS` between each other (that is, as soon as one test suite has finished executing, the next one starts to execute immediately after). This delay is defined in the call to `RUN_IN_SEQUENCE(T#0MS)`. Within each test suite, the program also executes each test one after the other, which is achieved by calling the `TEST_ORDERED()` for every test. The test-order is defined by the order of which the tests are being called.
1114

1215
- [**SequentialTestsWithStateMachines**](https://github.com/tcunit/ExampleProjects/tree/master/RunTestsInSequenceExampleProjects/SequentialTestsWithStateMachines)
@@ -15,6 +18,5 @@ The following example projects are available:
1518
- [**MixedSequentialAndParallelTests**](https://github.com/tcunit/ExampleProjects/tree/master/RunTestsInSequenceExampleProjects/MixedSequentialAndParallelTests)
1619
This example executes four tests in a sequence, and on top of this there is also one test that runs in parallel with the other four tests. The execution of tests in a sequence is achieved by calling the `TEST_ORDERED()` for the four tests, and `TEST()` for the test that runs in parallel with the other. The test-order of the sequential tests is defined by the order of which the tests are being called. The tests include tests for function blocks which need several cycles to complete, as the function blocks under tests use both state machines and times to complete and to reach their correct output state.
1720

18-
19-
For more information see the [following FAQ](https://tcunit.org/frequently-asked-questions/?Display_FAQ=970) on the TcUnit FAQ.
20-
**Note that version 1.2** (or later) of TcUnit is required to run test suites and tests in a sequence.
21+
For more information see the [following FAQ](https://tcunit.org/#/faq?id=_7-is-it-possible-to-run-test-suites-andor-tests-in-a-sequence) on the TcUnit FAQ.
22+
**Note that version 1.2** (or later) of TcUnit is required to run test suites and tests in a sequence.

RunTestsInSequenceExampleProjects/SequentialTestSuitesAndTests/SequentialTestSuitesAndTests/SequentialTestSuitesAndTests.tsproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2-
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4022.32">
1+
<?xml version="1.0"?>
2+
<TcSmProject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.beckhoff.com/schemas/2012/07/TcSmProject" TcSmVersion="1.0" TcVersion="3.1.4024.53">
33
<Project ProjectGUID="{48483441-7A2D-4FCD-BAA3-5958D797241D}" Target64Bit="true" ShowHideConfigurations="#x3c7">
44
<System>
55
<Tasks>

RunTestsInSequenceExampleProjects/SequentialTestSuitesAndTests/SequentialTestSuitesAndTests/SequentialTestSuitesAndTests/GVLs/GVL.TcGVL

+18-17
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22
<TcPlcObject Version="1.1.0.1">
33
<GVL Name="GVL" Id="{2ee23b30-e6fe-4c1b-b0ea-d35d6a0d8c22}">
44
<Declaration><![CDATA[{attribute 'qualified_only'}
5+
// These variables only exist to test the TcUnit framework. You can ignore them.
56
VAR_GLOBAL
6-
fbDiagnosticMessageDiagnosticCodeParser_Test_WhenEmergencyErrorCodeExpectEmergencyErrorCode : ULINT;
7-
fbDiagnosticMessageDiagnosticCodeParser_Test_WhenManufacturerSpecificExpectManufacturerSpecific : ULINT;
8-
fbDiagnosticMessageDiagnosticCodeParser_Test_WhenProfileSpecificExpectProfileSpecific : ULINT;
9-
fbDiagnosticMessageDiagnosticCodeParser_Test_WhenReservedForFutureUseExpectReservedForFutureUse : ULINT;
7+
nDiagnosticMessageDiagnosticCodeParserTest_WhenEmergencyErrorCodeExpectEmergencyErrorCode : ULINT;
8+
nDiagnosticMessageDiagnosticCodeParserTest_WhenManufacturerSpecificExpectManufacturerSpecific : ULINT;
9+
nDiagnosticMessageDiagnosticCodeParserTest_WhenProfileSpecificExpectProfileSpecific : ULINT;
10+
nDiagnosticMessageDiagnosticCodeParserTest_WhenReservedForFutureUseExpectReservedForFutureUse : ULINT;
1011
11-
fbDiagnosticMessageFlagsParser_Test_WhenInfoMessageExpectInfoMessageGlobalTimestampAndZeroParameters : ULINT;
12-
fbDiagnosticMessageFlagsParser_Test_WhenWarningMessageExpectWarningMessageLocalTimestampAndTwoParameters : ULINT;
13-
fbDiagnosticMessageFlagsParser_Test_WhenErrorMessageExpectErrorMessageLocalTimestampAndFourParameters : ULINT;
14-
fbDiagnosticMessageFlagsParser_Test_WhenReservedForFutureUseMessageExpectReservedForFutureUseMessageLocalTimestampAnd33Parameters : ULINT;
12+
nDiagnosticMessageFlagsParserTest_WhenInfoMessageExpectInfoMessageGlobalTimestampAndZeroParameters : ULINT;
13+
nDiagnosticMessageFlagsParserTest_WhenWarningMessageExpectWarningMessageLocalTimestampAndTwoParameters : ULINT;
14+
nDiagnosticMessageFlagsParserTest_WhenErrorMessageExpectErrorMessageLocalTimestampAndFourParameters : ULINT;
15+
nDiagnosticMessageFlagsParserTest_WhenReservedForFutureUseMessageExpectReservedForFutureUseMessageLocalTimestampAnd33Parameters : ULINT;
1516
16-
fbDiagnosticMessageParser_Test_TestWithEmergencyMessage : ULINT;
17-
fbDiagnosticMessageParser_Test_TestWithManufacturerSpecificMessage : ULINT;
18-
fbDiagnosticMessageParser_Test_TestWithUnspecifiedMessageMessage : ULINT;
19-
fbDiagnosticMessageParser_Test_TestWithUnspecifiedMessageMessage_ParameterVariant : ULINT;
17+
nDiagnosticMessageParserTest_TestWithEmergencyMessage : ULINT;
18+
nDiagnosticMessageParserTest_TestWithManufacturerSpecificMessage : ULINT;
19+
nDiagnosticMessageParserTest_TestWithUnspecifiedMessageMessage : ULINT;
20+
nDiagnosticMessageParserTest_TestWithUnspecifiedMessageMessage_ParameterVariant : ULINT;
2021
21-
fbDiagnosticMessageTextIdentityParser_Test_WhenTextIdentityLowExpectTextIdentity0 : ULINT;
22-
fbDiagnosticMessageTextIdentityParser_Test_WhenTextIdentityHighExpectTextIdentity65535 : ULINT;
23-
fbDiagnosticMessageTextIdentityParser_Test_WhenTextIdentityMedExpectTextIdentity34500 : ULINT;
22+
nDiagnosticMessageTextIdentityParserTest_WhenTextIdentityLowExpectTextIdentity0 : ULINT;
23+
nDiagnosticMessageTextIdentityParserTest_WhenTextIdentityHighExpectTextIdentity65535 : ULINT;
24+
nDiagnosticMessageTextIdentityParserTest_WhenTextIdentityMedExpectTextIdentity34500 : ULINT;
2425
25-
fbDiagnosticMessageTimeStampParser_Test_TestWithTimestampZeroTimeExpectCurrentTime : ULINT;
26-
fbDiagnosticMessageTimeStampParser_Test_TestWithValidTimestampExpectSameTimestamp : ULINT;
26+
nDiagnosticMessageTimeStampParserTest_TestWithTimestampZeroTimeExpectCurrentTime : ULINT;
27+
nDiagnosticMessageTimeStampParserTest_TestWithValidTimestampExpectSameTimestamp : ULINT;
2728
END_VAR]]></Declaration>
2829
</GVL>
2930
</TcPlcObject>

0 commit comments

Comments
 (0)