Git Product home page Git Product logo

tcmatrix's Introduction

tcmatrix's People

Contributors

burksengineering avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tcmatrix's Issues

Publish on Twinpack

Hi! We implemented a package manager for TwinCAT, similarly to nuget.

https://github.com/zeugwerk/twinpack

It is integrated in TcXAEShell and Visual Studio and also offers a simple command line interface for downloading and uploading packages on CI environments. Ultimately we want to make DevOps more accessible in the PLC world and having an open source package manager is our first step towards this goal.

Would you upload TcMatrix (and TcTransform) to Twinpack to facility the installation of it for TwinCAT users?

Some unit tests fails for DynamicMatrix

The title is pretty self-explanatory! I have posted the error log from TwinCAT XAE. Installed from source by using using the step-by-step guide. I am a 2 day veteran with TwinCAT and PLC, so yeah it could very be my undoing ;)

Severity	Code	Description	Project	File	Line	Suppression State
Error		1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33				
Error		1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3				
Error		1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33				
Error		1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================				
Error		1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========				
Error		1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15				
Error		1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========				
Error		1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15				
Error		1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36				
Error		1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36				
Error		1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3				
Error		1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================				
Error		1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct				
Full Log
Severity	Code	Description	Project	File	Line	Suppression State
Error		1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33				
Error		1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3				
Error		1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:59 PM 359 ms | 'PlcTask' (350): | Successful tests: 33				
Error		1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================				
Error		1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========				
Error		1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15				
Error		1/30/2023 4:16:59 PM 299 ms | 'PlcTask' (350): | ==========TESTS FINISHED RUNNING==========				
Error		1/30/2023 4:16:59 PM 319 ms | 'PlcTask' (350): | Test suites: 15				
Error		1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 379 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36				
Error		1/30/2023 4:16:59 PM 339 ms | 'PlcTask' (350): | Tests: 36				
Error		1/30/2023 4:16:56 PM 299 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 16, ACT: 0, MSG: Matrix buffer size not correct				
Error		1/30/2023 4:16:59 PM 379 ms | 'PlcTask' (350): | Failed tests: 3				
Error		1/30/2023 4:16:56 PM 319 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenInitiallyResizedExpectMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:59 PM 399 ms | 'PlcTask' (350): | ======================================				
Error		1/30/2023 4:16:56 PM 399 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedSmallerExpectLessMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 359 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 1, ACT: 0, MSG: Matrix buffer count not correct				
Error		1/30/2023 4:16:56 PM 339 ms | 'PlcTask' (350): FAILED TEST 'PRG_TEST.fbDynamicMatrix@WhenResizedBiggerExpectMoreMemoryAllocated', EXP: 40, ACT: 0, MSG: Matrix buffer size not correct				
Warning		1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350):  ÒÝ�System				
Warning		1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350):  ÒÝ�System				
Warning		1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350):  ÒÝ�Ðß½3ï4Ù��				
Warning		1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350):  ÒÝ�System				
Warning		1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350):  ÒÝ�System				
Warning		1/30/2023 4:16:56 PM 290 ms | 'PlcTask' (350):  ÒÝ�Ðß½3ï4Ù��				
Message		generate boot information...	TcMatrixTest (TcMatrixTest\TcMatrixTest)	PLC.TcMatrixTest	0	
Message		Import symbol information ...			0	
Message		The application is up to date			0	
Message		Generate TMC information ...			0	
Message		Build complete -- 0 errors, 0 warnings : ready for download!			0	
Message		1/30/2023 4:16:56 PM 419 ms | 'PlcTask' (350): | Test suite ID=0 'PRG_TEST.fbDynamicMatrix'				
Message		1/30/2023 4:16:58 PM 699 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataAssignable				
Message		1/30/2023 4:16:57 PM 039 ms | 'PlcTask' (350): | Test name=MarkdownExample1				
Message		1/30/2023 4:16:58 PM 199 ms | 'PlcTask' (350): | Test name=WhenColumnsExpectError				
Message		1/30/2023 4:16:58 PM 539 ms | 'PlcTask' (350): | Test name=WhenMatchingSizeExpectResult				
Message		1/30/2023 4:16:57 PM 699 ms | 'PlcTask' (350): | ID=6 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 419 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow				
Message		1/30/2023 4:16:58 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate				
Message		1/30/2023 4:16:58 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 399 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:56 PM 419 ms | 'PlcTask' (350): | Test suite ID=0 'PRG_TEST.fbDynamicMatrix'				
Message		1/30/2023 4:16:58 PM 839 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 039 ms | 'PlcTask' (350): | Test name=MarkdownExample1				
Message		1/30/2023 4:16:56 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:56 PM 859 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:56 PM 519 ms | 'PlcTask' (350): | Test name=WhenInitiallyResizedExpectMemoryAllocated				
Message		1/30/2023 4:16:58 PM 219 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:56 PM 999 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray				
Message		1/30/2023 4:16:57 PM 519 ms | 'PlcTask' (350): | Test suite ID=5 'PRG_TEST.fbMatrixShrink'				
Message		1/30/2023 4:16:58 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose				
Message		1/30/2023 4:16:57 PM 379 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:59 PM 199 ms | 'PlcTask' (350): | Test suite ID=14 'PRG_TEST.fbCsvReadWrite'				
Message		1/30/2023 4:16:57 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray				
Message		1/30/2023 4:16:57 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:56 PM 999 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray				
Message		1/30/2023 4:16:58 PM 979 ms | 'PlcTask' (350): | Test suite ID=13 'PRG_TEST.fbMatrixInvert'				
Message		1/30/2023 4:16:58 PM 459 ms | 'PlcTask' (350): | ID=10 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 299 ms | 'PlcTask' (350): | Test suite ID=4 'PRG_TEST.fbMatrixGrow'				
Message		1/30/2023 4:16:56 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:58 PM 259 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectScalar				
Message		1/30/2023 4:16:58 PM 919 ms | 'PlcTask' (350): | Test name=WhenStaticRectangleExpectTranspose				
Message		1/30/2023 4:16:57 PM 819 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 979 ms | 'PlcTask' (350): | Test suite ID=13 'PRG_TEST.fbMatrixInvert'				
Message		1/30/2023 4:16:58 PM 759 ms | 'PlcTask' (350): | Test suite ID=12 'PRG_TEST.fbMatrixTranspose'				
Message		1/30/2023 4:16:58 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 779 ms | 'PlcTask' (350): | ID=12 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 579 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink				
Message		1/30/2023 4:16:58 PM 419 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:56 PM 879 ms | 'PlcTask' (350): | Test suite ID=1 'PRG_TEST.fbArray'				
Message		1/30/2023 4:16:58 PM 099 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult				
Message		1/30/2023 4:16:55 PM 802 ms | 'TwinCAT System' (10000): TcIo Server started: TcIo.				
Message		1/30/2023 4:16:58 PM 819 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose				
Message		1/30/2023 4:16:57 PM 359 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow				
Message		1/30/2023 4:16:58 PM 659 ms | 'PlcTask' (350): | Test suite ID=11 'PRG_TEST.fbStaticMatrix'				
Message		1/30/2023 4:16:57 PM 719 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError				
Message		1/30/2023 4:16:56 PM 659 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4				
Message		1/30/2023 4:16:58 PM 799 ms | 'PlcTask' (350): | Test name=WhenSquareExpectTranspose				
Message		1/30/2023 4:16:58 PM 599 ms | 'PlcTask' (350): | Test name=WhenBackwardsExpectOppositeResult				
Message		1/30/2023 4:16:57 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink				
Message		1/30/2023 4:16:58 PM 879 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose				
Message		1/30/2023 4:16:57 PM 119 ms | 'PlcTask' (350): | ID=2 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:56 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=5				
Message		1/30/2023 4:16:56 PM 579 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct				
Message		1/30/2023 4:16:57 PM 199 ms | 'PlcTask' (350): | Test suite ID=3 'PRG_TEST.fbMatrixSubmatrix'				
Message		1/30/2023 4:16:57 PM 779 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult				
Message		1/30/2023 4:16:57 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixSubmatrix				
Message		1/30/2023 4:16:59 PM 019 ms | 'PlcTask' (350): | Test name=WhenIdentityExpectIdentity				
Message		1/30/2023 4:16:57 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=10				
Message		1/30/2023 4:16:56 PM 759 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4				
Message		1/30/2023 4:16:57 PM 139 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectMagicProperties				
Message		1/30/2023 4:16:56 PM 799 ms | 'PlcTask' (350): | Test assert type=ULINT				
Message		1/30/2023 4:16:59 PM 219 ms | 'PlcTask' (350): | ID=14 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 759 ms | 'PlcTask' (350): | Test suite ID=12 'PRG_TEST.fbMatrixTranspose'				
Message		1/30/2023 4:16:55 PM 779 ms | 'TwinCAT System' (10000): Loading configuration of COM server TcEventLogger !				
Message		1/30/2023 4:16:58 PM 139 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:56 PM 879 ms | 'PlcTask' (350): | Test suite ID=1 'PRG_TEST.fbArray'				
Message		1/30/2023 4:16:56 PM 519 ms | 'PlcTask' (350): | Test name=WhenInitiallyResizedExpectMemoryAllocated				
Message		1/30/2023 4:16:59 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert				
Message		1/30/2023 4:16:57 PM 799 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum				
Message		1/30/2023 4:16:58 PM 819 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose				
Message		1/30/2023 4:16:57 PM 599 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:59 PM 059 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:53 PM 969 ms | 'TwinCAT System' (10000): Shutting down COM Server TcEventLogger !				
Message		1/30/2023 4:16:56 PM 919 ms | 'PlcTask' (350): | Test name=WhenDynamicInitializedExpectValuesCopied				
Message		1/30/2023 4:16:58 PM 039 ms | 'PlcTask' (350): | Test name=WhenNotSquareExpectError				
Message		1/30/2023 4:16:57 PM 859 ms | 'PlcTask' (350): | ID=7 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 279 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:58 PM 799 ms | 'PlcTask' (350): | Test name=WhenSquareExpectTranspose				
Message		1/30/2023 4:16:58 PM 399 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:57 PM 599 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 179 ms | 'PlcTask' (350): | ID=9 number of tests=4, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 959 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct				
Message		1/30/2023 4:16:59 PM 219 ms | 'PlcTask' (350): | ID=14 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:59 PM 119 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:59 PM 139 ms | 'PlcTask' (350): | Test name=WhenSolvableExpectSolution				
Message		1/30/2023 4:16:58 PM 439 ms | 'PlcTask' (350): | Test suite ID=10 'PRG_TEST.fbVectorCrossProdcut'				
Message		1/30/2023 4:16:56 PM 559 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=3				
Message		1/30/2023 4:16:58 PM 999 ms | 'PlcTask' (350): | ID=13 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 559 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectError				
Message		1/30/2023 4:16:56 PM 539 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:57 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=6				
Message		1/30/2023 4:16:57 PM 379 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 439 ms | 'PlcTask' (350): | Test suite ID=10 'PRG_TEST.fbVectorCrossProdcut'				
Message		1/30/2023 4:16:57 PM 959 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct				
Message		1/30/2023 4:16:58 PM 379 ms | 'PlcTask' (350): | Test name=WhenWithIdentityExpectSame				
Message		1/30/2023 4:16:57 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow				
Message		1/30/2023 4:16:58 PM 519 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:56 PM 699 ms | 'PlcTask' (350): | Test assert type=ULINT				
Message		1/30/2023 4:16:56 PM 619 ms | 'PlcTask' (350): | Test name=WhenResizedBiggerExpectMoreMemoryAllocated				
Message		1/30/2023 4:16:57 PM 319 ms | 'PlcTask' (350): | ID=4 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:59 PM 099 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert				
Message		1/30/2023 4:16:59 PM 239 ms | 'PlcTask' (350): | Test name=WhenWrittenThenReadExpectSame				
Message		1/30/2023 4:16:58 PM 559 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut				
Message		1/30/2023 4:16:57 PM 219 ms | 'PlcTask' (350): | ID=3 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 099 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult				
Message		1/30/2023 4:16:55 PM 802 ms | 'TwinCAT System' (10000): TcIo Server started: TcIo.				
Message		1/30/2023 4:16:59 PM 139 ms | 'PlcTask' (350): | Test name=WhenSolvableExpectSolution				
Message		1/30/2023 4:16:56 PM 619 ms | 'PlcTask' (350): | Test name=WhenResizedBiggerExpectMoreMemoryAllocated				
Message		1/30/2023 4:16:58 PM 239 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:57 PM 939 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult				
Message		1/30/2023 4:16:58 PM 279 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:59 PM 079 ms | 'PlcTask' (350): | Test name=WhenSingularExpectError				
Message		1/30/2023 4:16:56 PM 839 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:56 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:59 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 399 ms | 'PlcTask' (350): | Test name=WhenGrownExpectDataRetained				
Message		1/30/2023 4:16:57 PM 899 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct				
Message		1/30/2023 4:16:57 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:57 PM 979 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:56 PM 719 ms | 'PlcTask' (350): | Test name=WhenResizedSmallerExpectLessMemoryAllocated				
Message		1/30/2023 4:16:58 PM 139 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 939 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult				
Message		1/30/2023 4:16:57 PM 199 ms | 'PlcTask' (350): | Test suite ID=3 'PRG_TEST.fbMatrixSubmatrix'				
Message		1/30/2023 4:16:58 PM 019 ms | 'PlcTask' (350): | ID=8 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:56 PM 899 ms | 'PlcTask' (350): | ID=1 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 119 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate				
Message		1/30/2023 4:16:57 PM 759 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:59 PM 099 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert				
Message		1/30/2023 4:16:55 PM 820 ms | 'TwinCAT System' (10000): TcRtsObjects Server started: TcRtsObjects.				
Message		1/30/2023 4:16:57 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=10				
Message		1/30/2023 4:16:58 PM 039 ms | 'PlcTask' (350): | Test name=WhenNotSquareExpectError				
Message		1/30/2023 4:16:58 PM 019 ms | 'PlcTask' (350): | ID=8 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:56 PM 779 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct				
Message		1/30/2023 4:16:57 PM 539 ms | 'PlcTask' (350): | ID=5 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:56 PM 699 ms | 'PlcTask' (350): | Test assert type=ULINT				
Message		1/30/2023 4:16:57 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=6				
Message		1/30/2023 4:16:56 PM 779 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct				
Message		1/30/2023 4:16:57 PM 019 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:57 PM 119 ms | 'PlcTask' (350): | ID=2 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 799 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum				
Message		1/30/2023 4:16:56 PM 819 ms | 'PlcTask' (350): | Test name=WhenResizedToZeroExpectNoMemoryAllocated				
Message		1/30/2023 4:16:55 PM 812 ms | 'TwinCAT System' (10000): TcPlc30 Server started: TcPlc30.				
Message		1/30/2023 4:16:58 PM 219 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:53 PM 969 ms | 'TwinCAT System' (10000): Shutting down COM Server TcEventLogger !				
Message		1/30/2023 4:16:58 PM 159 ms | 'PlcTask' (350): | Test suite ID=9 'PRG_TEST.fbMatrixMatrixProduct'				
Message		1/30/2023 4:16:57 PM 839 ms | 'PlcTask' (350): | Test suite ID=7 'PRG_TEST.fbMatrixElementProduct'				
Message		1/30/2023 4:16:56 PM 559 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=3				
Message		1/30/2023 4:16:57 PM 359 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow				
Message		1/30/2023 4:16:55 PM 780 ms | 'TwinCAT System' (10000): Initializing COM Server TcEventLogger !				
Message		1/30/2023 4:16:59 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert				
Message		1/30/2023 4:16:57 PM 659 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 339 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:57 PM 679 ms | 'PlcTask' (350): | Test suite ID=6 'PRG_TEST.fbMatrixElementSum'				
Message		1/30/2023 4:16:58 PM 199 ms | 'PlcTask' (350): | Test name=WhenColumnsExpectError				
Message		1/30/2023 4:16:56 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 839 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 499 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut				
Message		1/30/2023 4:16:57 PM 879 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError				
Message		1/30/2023 4:16:57 PM 719 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError				
Message		1/30/2023 4:16:57 PM 579 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink				
Message		1/30/2023 4:16:57 PM 519 ms | 'PlcTask' (350): | Test suite ID=5 'PRG_TEST.fbMatrixShrink'				
Message		1/30/2023 4:16:56 PM 289 ms | 'TwinCAT System' (10000): Starting COM Server TcEventLogger !				
Message		1/30/2023 4:16:57 PM 919 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:56 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:56 PM 859 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:56 PM 759 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4				
Message		1/30/2023 4:16:57 PM 299 ms | 'PlcTask' (350): | Test suite ID=4 'PRG_TEST.fbMatrixGrow'				
Message		1/30/2023 4:16:59 PM 039 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert				
Message		1/30/2023 4:16:57 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:56 PM 839 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:58 PM 739 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 999 ms | 'PlcTask' (350): | ID=13 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:56 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:57 PM 619 ms | 'PlcTask' (350): | Test name=WhenShrunkExpectDataRetained				
Message		1/30/2023 4:16:57 PM 819 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:59 PM 199 ms | 'PlcTask' (350): | Test suite ID=14 'PRG_TEST.fbCsvReadWrite'				
Message		1/30/2023 4:16:59 PM 079 ms | 'PlcTask' (350): | Test name=WhenSingularExpectError				
Message		1/30/2023 4:16:57 PM 619 ms | 'PlcTask' (350): | Test name=WhenShrunkExpectDataRetained				
Message		1/30/2023 4:16:58 PM 659 ms | 'PlcTask' (350): | Test suite ID=11 'PRG_TEST.fbStaticMatrix'				
Message		1/30/2023 4:16:59 PM 039 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixInvert				
Message		1/30/2023 4:16:57 PM 459 ms | 'PlcTask' (350): | Test name=WhenGrownExpectNewDataFilled				
Message		1/30/2023 4:16:56 PM 459 ms | 'PlcTask' (350): | Test name=WhenDeclaredExpectNoMemoryAllocated				
Message		1/30/2023 4:16:57 PM 419 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow				
Message		1/30/2023 4:16:58 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate				
Message		1/30/2023 4:16:57 PM 699 ms | 'PlcTask' (350): | ID=6 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixSubmatrix				
Message		1/30/2023 4:16:57 PM 839 ms | 'PlcTask' (350): | Test suite ID=7 'PRG_TEST.fbMatrixElementProduct'				
Message		1/30/2023 4:16:59 PM 059 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 259 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectScalar				
Message		1/30/2023 4:16:57 PM 999 ms | 'PlcTask' (350): | Test suite ID=8 'PRG_TEST.fbMatrixDeterminate'				
Message		1/30/2023 4:16:58 PM 559 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut				
Message		1/30/2023 4:16:58 PM 699 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataAssignable				
Message		1/30/2023 4:16:58 PM 179 ms | 'PlcTask' (350): | ID=9 number of tests=4, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 319 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectSquare				
Message		1/30/2023 4:16:56 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:57 PM 099 ms | 'PlcTask' (350): | Test suite ID=2 'PRG_TEST.fbMatrixGetMagicSquare'				
Message		1/30/2023 4:16:57 PM 559 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectError				
Message		1/30/2023 4:16:56 PM 899 ms | 'PlcTask' (350): | ID=1 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:55 PM 828 ms | 'TwinCAT System' (10000): TcRTime Server started: TcRTime.				
Message		1/30/2023 4:16:57 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum				
Message		1/30/2023 4:16:57 PM 019 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:58 PM 719 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbStaticMatrix				
Message		1/30/2023 4:16:58 PM 899 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 319 ms | 'PlcTask' (350): | ID=4 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 879 ms | 'PlcTask' (350): | Test name=WhenDifferentExpectError				
Message		1/30/2023 4:16:58 PM 919 ms | 'PlcTask' (350): | Test name=WhenStaticRectangleExpectTranspose				
Message		1/30/2023 4:16:58 PM 779 ms | 'PlcTask' (350): | ID=12 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 639 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:56 PM 679 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct				
Message		1/30/2023 4:16:58 PM 339 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixMatrixProduct				
Message		1/30/2023 4:16:58 PM 119 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixDeterminate				
Message		1/30/2023 4:16:59 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3				
Message		1/30/2023 4:16:58 PM 379 ms | 'PlcTask' (350): | Test name=WhenWithIdentityExpectSame				
Message		1/30/2023 4:16:57 PM 439 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 779 ms | 'PlcTask' (350): | Test name=WhenMatchingExpectResult				
Message		1/30/2023 4:16:58 PM 239 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 619 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut				
Message		1/30/2023 4:16:56 PM 659 ms | 'PlcTask' (350): | Test status=FAIL, number of asserts=4				
Message		1/30/2023 4:16:59 PM 019 ms | 'PlcTask' (350): | Test name=WhenIdentityExpectIdentity				
Message		1/30/2023 4:16:56 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray				
Message		1/30/2023 4:16:58 PM 739 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 479 ms | 'PlcTask' (350): | Test name=WhenWrongSizeExpectError				
Message		1/30/2023 4:16:57 PM 139 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectMagicProperties				
Message		1/30/2023 4:16:56 PM 719 ms | 'PlcTask' (350): | Test name=WhenResizedSmallerExpectLessMemoryAllocated				
Message		1/30/2023 4:16:56 PM 979 ms | 'PlcTask' (350): | Test name=WhenStaticInitializedExpectValuesCopied				
Message		1/30/2023 4:16:56 PM 979 ms | 'PlcTask' (350): | Test name=WhenStaticInitializedExpectValuesCopied				
Message		1/30/2023 4:16:58 PM 499 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut				
Message		1/30/2023 4:16:59 PM 179 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 539 ms | 'PlcTask' (350): | ID=5 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 579 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 459 ms | 'PlcTask' (350): | ID=10 number of tests=3, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 219 ms | 'PlcTask' (350): | ID=3 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 079 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 399 ms | 'PlcTask' (350): | Test name=WhenGrownExpectDataRetained				
Message		1/30/2023 4:16:57 PM 059 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray				
Message		1/30/2023 4:16:58 PM 859 ms | 'PlcTask' (350): | Test name=WhenDynamicRectangleExpectTranspose				
Message		1/30/2023 4:16:56 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 599 ms | 'PlcTask' (350): | Test name=WhenBackwardsExpectOppositeResult				
Message		1/30/2023 4:16:58 PM 519 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:57 PM 479 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGrow				
Message		1/30/2023 4:16:57 PM 739 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementSum				
Message		1/30/2023 4:16:58 PM 899 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:59 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbCsvReadWrite				
Message		1/30/2023 4:16:53 PM 766 ms | 'TwinCAT System' (10000): Saving configuration of COM server TcEventLogger !				
Message		1/30/2023 4:16:58 PM 579 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 759 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:58 PM 619 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbVectorCrossProdcut				
Message		1/30/2023 4:16:57 PM 979 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:56 PM 439 ms | 'PlcTask' (350): | ID=0 number of tests=5, number of failed tests=3				
Message		1/30/2023 4:16:58 PM 539 ms | 'PlcTask' (350): | Test name=WhenMatchingSizeExpectResult				
Message		1/30/2023 4:16:58 PM 639 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:59 PM 239 ms | 'PlcTask' (350): | Test name=WhenWrittenThenReadExpectSame				
Message		1/30/2023 4:16:57 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGetMagicSquare				
Message		1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350): 3x3 Magic Square
[ 4.0, 3.0, 8.0 ;
  9.0, 5.0, 1.0 ;
  2.0, 7.0, 6.0 ]				
Message		1/30/2023 4:16:53 PM 648 ms | 'TwinCAT System' (10000): TwinCAT System Restart initiated from AmsNetId: 192.168.0.193.1.1 port 32856.				
Message		1/30/2023 4:16:56 PM 289 ms | 'PlcTask' (350): 3x3 Magic Square
[ 4.0, 3.0, 8.0 ;
  9.0, 5.0, 1.0 ;
  2.0, 7.0, 6.0 ]				
Message		1/30/2023 4:16:58 PM 879 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose				
Message		1/30/2023 4:16:57 PM 459 ms | 'PlcTask' (350): | Test name=WhenGrownExpectNewDataFilled				
Message		1/30/2023 4:16:58 PM 299 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3				
Message		1/30/2023 4:16:57 PM 339 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectNoError				
Message		1/30/2023 4:16:56 PM 579 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct				
Message		1/30/2023 4:16:58 PM 859 ms | 'PlcTask' (350): | Test name=WhenDynamicRectangleExpectTranspose				
Message		1/30/2023 4:16:56 PM 919 ms | 'PlcTask' (350): | Test name=WhenDynamicInitializedExpectValuesCopied				
Message		1/30/2023 4:16:58 PM 679 ms | 'PlcTask' (350): | ID=11 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:55 PM 780 ms | 'TwinCAT System' (10000): Initializing COM Server TcEventLogger !				
Message		1/30/2023 4:16:57 PM 859 ms | 'PlcTask' (350): | ID=7 number of tests=2, number of failed tests=0				
Message		1/30/2023 4:16:57 PM 999 ms | 'PlcTask' (350): | Test suite ID=8 'PRG_TEST.fbMatrixDeterminate'				
Message		1/30/2023 4:16:55 PM 940 ms | 'License Server' (30): license validation status is Valid(3)				
Message		1/30/2023 4:16:55 PM 940 ms | 'License Server' (30): license validation status is Valid(3)				
Message		1/30/2023 4:16:55 PM 820 ms | 'TwinCAT System' (10000): TcRtsObjects Server started: TcRtsObjects.				
Message		1/30/2023 4:16:58 PM 359 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3				
Message		1/30/2023 4:16:57 PM 499 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=4				
Message		1/30/2023 4:16:56 PM 799 ms | 'PlcTask' (350): | Test assert type=ULINT				
Message		1/30/2023 4:16:58 PM 359 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3				
Message		1/30/2023 4:16:58 PM 159 ms | 'PlcTask' (350): | Test suite ID=9 'PRG_TEST.fbMatrixMatrixProduct'				
Message		1/30/2023 4:16:57 PM 439 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 239 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataRetained				
Message		1/30/2023 4:16:56 PM 439 ms | 'PlcTask' (350): | ID=0 number of tests=5, number of failed tests=3				
Message		1/30/2023 4:16:53 PM 648 ms | 'TwinCAT System' (10000): TwinCAT System Restart initiated from AmsNetId: 192.168.0.193.1.1 port 32856.				
Message		1/30/2023 4:16:57 PM 639 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixShrink				
Message		1/30/2023 4:16:58 PM 419 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:58 PM 679 ms | 'PlcTask' (350): | ID=11 number of tests=1, number of failed tests=0				
Message		1/30/2023 4:16:58 PM 299 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3				
Message		1/30/2023 4:16:56 PM 599 ms | 'PlcTask' (350): | Test assert type=ULINT				
Message		1/30/2023 4:16:57 PM 659 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=2				
Message		1/30/2023 4:16:57 PM 099 ms | 'PlcTask' (350): | Test suite ID=2 'PRG_TEST.fbMatrixGetMagicSquare'				
Message		1/30/2023 4:16:57 PM 159 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixGetMagicSquare				
Message		1/30/2023 4:16:56 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbArray				
Message		1/30/2023 4:16:59 PM 119 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:56 PM 289 ms | 'TwinCAT System' (10000): Starting COM Server TcEventLogger !				
Message		1/30/2023 4:16:58 PM 719 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbStaticMatrix				
Message		1/30/2023 4:16:55 PM 828 ms | 'TwinCAT System' (10000): TcRTime Server started: TcRTime.				
Message		1/30/2023 4:16:59 PM 279 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=3				
Message		1/30/2023 4:16:57 PM 679 ms | 'PlcTask' (350): | Test suite ID=6 'PRG_TEST.fbMatrixElementSum'				
Message		1/30/2023 4:16:58 PM 479 ms | 'PlcTask' (350): | Test name=WhenWrongSizeExpectError				
Message		1/30/2023 4:16:58 PM 319 ms | 'PlcTask' (350): | Test name=WhenOppositeExpectSquare				
Message		1/30/2023 4:16:55 PM 779 ms | 'TwinCAT System' (10000): Loading configuration of COM server TcEventLogger !				
Message		1/30/2023 4:16:56 PM 599 ms | 'PlcTask' (350): | Test assert type=ULINT				
Message		1/30/2023 4:16:57 PM 919 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=1				
Message		1/30/2023 4:16:56 PM 819 ms | 'PlcTask' (350): | Test name=WhenResizedToZeroExpectNoMemoryAllocated				
Message		1/30/2023 4:16:56 PM 459 ms | 'PlcTask' (350): | Test name=WhenDeclaredExpectNoMemoryAllocated				
Message		1/30/2023 4:16:55 PM 812 ms | 'TwinCAT System' (10000): TcPlc30 Server started: TcPlc30.				
Message		1/30/2023 4:16:53 PM 766 ms | 'TwinCAT System' (10000): Saving configuration of COM server TcEventLogger !				
Message		1/30/2023 4:16:56 PM 539 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbDynamicMatrix				
Message		1/30/2023 4:16:56 PM 959 ms | 'PlcTask' (350): | Test status=PASS, number of asserts=5				
Message		1/30/2023 4:16:58 PM 939 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixTranspose				
Message		1/30/2023 4:16:56 PM 679 ms | 'PlcTask' (350): | Test assert message=Matrix buffer size not correct				
Message		1/30/2023 4:16:57 PM 339 ms | 'PlcTask' (350): | Test name=WhenEmptyExpectNoError				
Message		1/30/2023 4:16:57 PM 899 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbMatrixElementProduct				
Message		1/30/2023 4:16:57 PM 239 ms | 'PlcTask' (350): | Test name=WhenCreatedExpectDataRetained				
Message		1/30/2023 4:16:59 PM 259 ms | 'PlcTask' (350): | Test class name=PRG_TEST.fbCsvReadWrite				

image

Real-time config :
image

Compiler warnings arising from use of stack-allocated temporary FB instances

Hi,

When I build projects that use TcMatrix I often get a fair few warnings like these:
image

I've seen these in TwinCAT 3.1.4024.17, .29, and .44.

In case the image doesn't upload properly, here's a text version:

Severity	Code	Description	Project	File	Line	Suppression State
Warning		Compatibility warning: FB_Exit is now called in Vector_CrossProduct for FB instance M_Vectors which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)]		Vector_CrossProduct	0	
Warning		Compatibility warning: FB_Exit is now called in Grow for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)]		DynamicMatrix.Grow	0	
Warning		Compatibility warning: FB_Exit is now called in Shrink for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)]		DynamicMatrix.Shrink	0	
Warning		Compatibility warning: FB_Exit is now called in Transpose for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)]		DynamicMatrix.Transpose	0	
Warning		Compatibility warning: FB_Exit is now called in TransposeSquare for FB instance Temp which is located on the stack. This has not been the case for code compiled with compiler versions < 3.1.4022.0. [tcmatrix, 1.4.3 (burks engineering)]		Matrix.TransposeSquare	0	

The issue appears to arise from a new compiler warning added to CoDeSys in V3.5.9.70. (You are probably aware that the TwinCAT PLC module is based on CoDeSys. New CoDeSys features and bug fixes generally show up in a new TwinCAT release after a while....) Luckily for us, CoDeSys actually publishes release notes, unlike Beckhoff.

https://www.codesys.com/fileadmin/data/Images/System/Releaseinformation/ReleaseNote-CODESYS-V35970.pdf

FB_Exit should be called to destroy local instances CDS-383
FB_EXIT is now called for instances allocated on the stack before the owning scope returns.
A warning has been added to inform users about the change of semantics in these cases.
In order to suppress the warning, decorate the POU declaring the local instance with the warning disable
macro for the warning code C0394 ("{warning disable C0394}")

Basically, this {warning disable C0394} attribute needs to be attached to the Function or Method or Property getter/setter which allocates the temporary FB.

I have tested that the warning suppression works on my machine; it does. I can submit a PR if it would be helpful. I haven't been through the whole library yet to locate every POU which allocates an FB instance on the stack, though.

However I'm less confident in my belief that suppressing the warning is the correct thing to do in all cases. Do you think there are any situations in TcMatrix (or TcTransform) where calling FB_Exit() for temporary stack-allocated FB instances will cause problems? What's your minimum TwinCAT support version? If it's less than 4022.0, are code changes necessary to make sure that those stack-allocated FBs are cleaned up properly in the absence of a compiler-enforced call to FB_Exit()?

Matrix Initialisation Empty

Hi,

I am using this library to perform matrix functions. It's working great except when I am using the following code.
vMatrix.IsEmpty is true. vMatrix.Rows = 3. vMatrix.Cols = 0.
This looks similar to the quick start example given.

VAR
v: ARRAY[1..3, 1..1] OF LREAL;
vMatrix : Array2DStaticMatrix;
END_VAR

v[1, 1] := 1;
v[2, 1] := 2;
v[3, 1] := 3;

vMatrix(Data := v);

Add Constant keyword when input variable is not modified

Coming from a backgound of C++, so this might not be possible in PLC.

I am trying to initialize a Vector3 from the position component of an HMatrix. This fails to compile because the component is read only and the method CopyFrom and function Matrix_Copy could be written to. This could be resolved by changing the VAR_INPUT to be constant. In the mean time, I can store the component to a new vector.

// MAIN
PROGRAM MAIN
VAR
	v : Vector3;
        Hm: HMatrix;
END_VAR
...

// Initialize v with position component from Homogenous transform matrix
v.CopyFrom(M:=Hm.Vector3Component);

// Error from compilation :
//     VAR_IN_OUT parameter 'M' of 'CopyFrom' needs variable with write access as input

// Alternate
Matrix_SubMatrix(M_Super:=Hm, M_Sub:=v, RowStart:=0, RowCount:=3, ColStart:=3, ColCount:=1);

Every function/method that does not change an input should be marked as constant. For e.g. :

// Matrix.CopyFrom
METHOD PUBLIC CopyFrom : BOOL//Returns true if the prerequisites were met and the data was copied, false otherwise
VAR_INPUT CONSTANT
	M : REFERENCE TO Matrix;//Source of the copy operation
END_VAR
...

CopyFrom := Matrix_Copy(M,THIS^);

Thanks for the awesome library by the way :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.