From dadb63c2e54a44588f91c4e0446c24c788f32aea Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Thu, 20 Aug 2026 10:40:55 -0700 Subject: [PATCH 1/5] Add support for BYTE, WORD and DWORD variables These types were identified correctly by csvGetVarInfo() - PV_ninfo returns 17/18/19 and the CSV_TYPE_enum values match - but were then rejected as unsupported in both directions. A DWORD line left the target variable untouched, incremented FailedLineCount, and surfaced only as a generic CSV_ERR_LINEFAILURE with the detail buried in the log. Writing is hex by default, since a bit string is not an ordinary number and reads better as one. IN.CFG.BitStringFormat selects the notation: CSV_BITFORMAT_HEX_0X 0x00FF (default) CSV_BITFORMAT_HEX_IEC 16#00FF CSV_BITFORMAT_DECIMAL 255 Decimal is there for exchanging files with systems that do not accept hex - the same reason VarTools formats these types as decimal. Values are zero padded to the width of the source type (2, 4 or 8 digits) so a column lines up and the width of the underlying variable is visible in the file. Reading is permissive regardless of the setting: a prefixed literal (0xFF, 16#FF, $FF) is hex, bare digits are decimal. Requiring the prefix for hex is what keeps this unambiguous - otherwise "10" could reasonably mean either ten or sixteen. Decimal is accumulated by hand rather than with atoui(), which saturates on overflow instead of reporting it, and every value is range checked against the width of the target. LWORD is deliberately still unsupported; it needs 64 bit parsing and a ULINT store, which CSVFileLib does not have either. Requires StringExt 1.1.0 for HexStringToUDINT()/UDINTToHexString(). Co-Authored-By: Claude Opus 5 --- src/Ar/CSVFileLib/ANSIC.lby | 4 +- src/Ar/CSVFileLib/CHANGELOG.md | 5 + src/Ar/CSVFileLib/CSVFileLib.var | 3 + src/Ar/CSVFileLib/CSVFileLib_enum.typ | 6 ++ src/Ar/CSVFileLib/CSVFileMgr.typ | 1 + src/Ar/CSVFileLib/csvOpenVar.c | 132 +++++++++++++++++++++++++- src/Ar/CSVFileLib/csvSaveVar.c | 58 ++++++++++- src/Ar/CSVFileLib/package.json | 2 +- 8 files changed, 202 insertions(+), 9 deletions(-) diff --git a/src/Ar/CSVFileLib/ANSIC.lby b/src/Ar/CSVFileLib/ANSIC.lby index f9b3fa5..34da68d 100644 --- a/src/Ar/CSVFileLib/ANSIC.lby +++ b/src/Ar/CSVFileLib/ANSIC.lby @@ -1,6 +1,6 @@  - + CSVFileLib.typ CSVFileLib.var @@ -38,7 +38,7 @@ - + diff --git a/src/Ar/CSVFileLib/CHANGELOG.md b/src/Ar/CSVFileLib/CHANGELOG.md index f5250ef..20c4f38 100644 --- a/src/Ar/CSVFileLib/CHANGELOG.md +++ b/src/Ar/CSVFileLib/CHANGELOG.md @@ -1,3 +1,8 @@ +2.1.0 - Add support for BYTE, WORD and DWORD variables + Written as hex by default; IN.CFG.BitStringFormat selects 0x, 16# or decimal + Reading accepts hex (0x, 16#, $) and decimal regardless of the setting + Requires StringExt 1.1.0 + 2.0.1 - Fix page fault when the file being read is larger than IN.CFG.MaxFileSize Read buffers now allocate one extra byte so a completely full buffer is still a valid string, and CSV_ST_OPEN reports CSV_ERR_BUFFERFULL instead of parsing a diff --git a/src/Ar/CSVFileLib/CSVFileLib.var b/src/Ar/CSVFileLib/CSVFileLib.var index 0a4f682..81cf7ab 100644 --- a/src/Ar/CSVFileLib/CSVFileLib.var +++ b/src/Ar/CSVFileLib/CSVFileLib.var @@ -53,6 +53,9 @@ VAR CONSTANT CSV_MAX_UINT : DINT := 65535; CSV_MIN_UDINT : UDINT := 0; CSV_MAX_UDINT : UDINT := 4294967295; + CSV_MAX_BYTE : UDINT := 255; + CSV_MAX_WORD : UDINT := 65535; + CSV_MAX_DWORD : UDINT := 4294967295; CSV_MIN_REAL : REAL := -3.4E038; CSV_MAX_REAL : REAL := 3.4E038; CSV_MIN_LREAL : LREAL := -1.7976931348623158E308; diff --git a/src/Ar/CSVFileLib/CSVFileLib_enum.typ b/src/Ar/CSVFileLib/CSVFileLib_enum.typ index 3d28895..58eefae 100644 --- a/src/Ar/CSVFileLib/CSVFileLib_enum.typ +++ b/src/Ar/CSVFileLib/CSVFileLib_enum.typ @@ -57,6 +57,12 @@ TYPE CSV_TYPE_WSTRING, (*21*) CSV_TYPE_LINT := 23 (*23*) ); + CSV_BITFORMAT_enum : + ( + CSV_BITFORMAT_HEX_0X := 0, (*0x00FF - default*) + CSV_BITFORMAT_HEX_IEC, (*16#00FF*) + CSV_BITFORMAT_DECIMAL (*255*) + ); CSV_INFO_enum : ( CSV_INFO_NOVARNAMEFOUND, (*0*) diff --git a/src/Ar/CSVFileLib/CSVFileMgr.typ b/src/Ar/CSVFileLib/CSVFileMgr.typ index a549e93..968d1ca 100644 --- a/src/Ar/CSVFileLib/CSVFileMgr.typ +++ b/src/Ar/CSVFileLib/CSVFileMgr.typ @@ -82,6 +82,7 @@ TYPE DisableLogging : BOOL; LoggerName : STRING[LOG_STRLEN_LOGGERNAME]; DoubleSigFigs : USINT; + BitStringFormat : USINT; (*How BYTE/WORD/DWORD values are written, see CSV_BITFORMAT_enum. Reading accepts hex and decimal regardless of this setting*) END_STRUCT; CSVFileMgr_IN_PAR_typ : STRUCT FileDevice : STRING[CSV_STRLEN_FILEDEVICE]; diff --git a/src/Ar/CSVFileLib/csvOpenVar.c b/src/Ar/CSVFileLib/csvOpenVar.c index 6525aa4..79a7d23 100644 --- a/src/Ar/CSVFileLib/csvOpenVar.c +++ b/src/Ar/CSVFileLib/csvOpenVar.c @@ -74,6 +74,100 @@ extern "C" /* Invalid type DONE and TESTED DFB 20120314 */ + +/********************************************************************/ +/* Parse a BYTE/WORD/DWORD value from the file */ +/********************************************************************/ + +/* Reading is deliberately permissive, so that a file written with either + BitStringFormat setting reads back, as do hand written files. + + A prefixed literal (0xFF, 16#FF, $FF) is hexadecimal, bare digits are + decimal. Requiring the prefix for hex is what keeps this unambiguous - + otherwise "10" could reasonably mean either ten or sixteen. */ + + +static unsigned short csvParseBitString(const char* pValue, unsigned long* pResult) +{ + + const char* p; + + UDINT Value, Digit; + + + if( (pValue == 0) + || (pResult == 0) + ){ + + return CSV_ERR_INVALIDINPUT; + + } + + + p= pValue; + + p+= strspn( p, " \t\r\n\v\f" ); + + + /* Hexadecimal, if there is a prefix */ + + if( ( (p[0] == '0') && ((p[1] == 'x') || (p[1] == 'X')) ) + || ( (p[0] == '1') && (p[1] == '6') && (p[2] == '#') ) + || ( p[0] == '$' ) + ){ + + if( HexStringToUDINT( (UDINT)p, (UDINT)pResult ) != 0 ) return CSV_ERR_INVALIDVALUE; + + return 0; + + } + + + /* Decimal. Accumulated by hand rather than with atoui(), which + saturates on overflow instead of reporting it. */ + + if( (*p < '0') + || (*p > '9') + ){ + + return CSV_ERR_INVALIDVALUE; + + } + + Value= 0; + + while( (*p >= '0') + && (*p <= '9') + ){ + + Digit= *p - '0'; + + /* Checked before multiplying so that an overflow is caught rather than wrapping */ + + if( Value > ((CSV_MAX_UDINT - Digit) / 10) ) return CSV_ERR_INVALIDVALUE; + + Value= Value * 10 + Digit; + + p++; + + } + + + /* Anything after the digits other than white space is an error */ + + p+= strspn( p, " \t\r\n\v\f" ); + + if( *p != '\0' ) return CSV_ERR_INVALIDVALUE; + + + *pResult= Value; + + return 0; + + +} // End Fn // + + unsigned short csvOpenVar(unsigned long LineNumber, struct CSVFileVariable_typ* pVariable, struct CSVFileMgr_typ* t) { @@ -137,6 +231,8 @@ unsigned short csvOpenVar(unsigned long LineNumber, struct CSVFileVariable_typ* /************************************************/ UDINT i, ValueStringLength, ValueUdint; + UDINT MaxValue; + UINT ParseStatus; DINT ValueDint; REAL ValueReal; LREAL ValueLReal; @@ -391,6 +487,39 @@ unsigned short csvOpenVar(unsigned long LineNumber, struct CSVFileVariable_typ* break; + /********************************************************************************/ + /* Bit string types */ + /********************************************************************************/ + + case CSV_TYPE_BYTE: + case CSV_TYPE_WORD: + case CSV_TYPE_DWORD: + + ParseStatus= csvParseBitString( pVariable->Value, &ValueUdint ); + + if( pVariable->DataType == CSV_TYPE_BYTE ) MaxValue= CSV_MAX_BYTE; + else if( pVariable->DataType == CSV_TYPE_WORD ) MaxValue= CSV_MAX_WORD; + else MaxValue= CSV_MAX_DWORD; + + if( (ParseStatus != 0) + || (ValueUdint > MaxValue) + ){ + + csvAddLogInfo( (UINT)CSV_INFO_INVALIDVALUE, LineNumber, (UDINT)pVariable->Name, t); + return CSV_ERR_INVALIDVALUE; + + } + else{ + + if( pVariable->DataType == CSV_TYPE_BYTE ) *(USINT*)(pWriteAddress)= (USINT)ValueUdint; + else if( pVariable->DataType == CSV_TYPE_WORD ) *(UINT*)(pWriteAddress)= (UINT)ValueUdint; + else *(UDINT*)(pWriteAddress)= (UDINT)ValueUdint; + + } + + break; + + /********************************************************************************/ /* Unsupported and Invalid types */ /********************************************************************************/ @@ -400,9 +529,6 @@ unsigned short csvOpenVar(unsigned long LineNumber, struct CSVFileVariable_typ* case CSV_TYPE_DATE: case CSV_TYPE_ARRAY_OF_STRUCT: case CSV_TYPE_TIME_OF_DAY: - case CSV_TYPE_BYTE: - case CSV_TYPE_WORD: - case CSV_TYPE_DWORD: case CSV_TYPE_LWORD: case CSV_TYPE_WSTRING: case CSV_TYPE_LINT: diff --git a/src/Ar/CSVFileLib/csvSaveVar.c b/src/Ar/CSVFileLib/csvSaveVar.c index b35b3d7..c93a0ad 100644 --- a/src/Ar/CSVFileLib/csvSaveVar.c +++ b/src/Ar/CSVFileLib/csvSaveVar.c @@ -132,6 +132,7 @@ unsigned short csvSaveVar(unsigned long LineNumber, struct CSVFileVariable_typ* DINT ValueDint; UDINT ValueUdint; + USINT NumDigits, HexPrefix; REAL ValueReal; LREAL ValueLReal; @@ -262,6 +263,60 @@ unsigned short csvSaveVar(unsigned long LineNumber, struct CSVFileVariable_typ* break; + /********************************************************************************/ + /* Bit string types */ + /********************************************************************************/ + + case CSV_TYPE_BYTE: + case CSV_TYPE_WORD: + case CSV_TYPE_DWORD: + + + /* Pad to the width of the source type, so that a column of values lines up + and the width of the underlying variable is visible in the file */ + + if( pVariable->DataType == CSV_TYPE_BYTE ){ + + ValueUdint= *(USINT*)(pReadAddress); + NumDigits= 2; + + } + else if( pVariable->DataType == CSV_TYPE_WORD ){ + + ValueUdint= *(UINT*)(pReadAddress); + NumDigits= 4; + + } + else{ + + ValueUdint= *(UDINT*)(pReadAddress); + NumDigits= 8; + + } + + + if( t->IN.CFG.BitStringFormat == CSV_BITFORMAT_DECIMAL ){ + + uitoa( ValueUdint, (UDINT)pVariable->Value ); + + } + else{ + + if( t->IN.CFG.BitStringFormat == CSV_BITFORMAT_HEX_IEC ) HexPrefix= STREXT_HEXPREFIX_IEC; + else HexPrefix= STREXT_HEXPREFIX_0X; + + if( UDINTToHexString( ValueUdint, (UDINT)pVariable->Value, sizeof(pVariable->Value), NumDigits, HexPrefix ) < 0 ){ + + csvAddLogInfo( (UINT)CSV_INFO_INVALIDVALUE, LineNumber, (UDINT)pVariable->Name, t); + return CSV_ERR_INVALIDVALUE; + + } + + } + + break; + + /********************************************************************************/ /* Unsupported and Invalid types */ /********************************************************************************/ @@ -271,9 +326,6 @@ unsigned short csvSaveVar(unsigned long LineNumber, struct CSVFileVariable_typ* case CSV_TYPE_DATE: case CSV_TYPE_ARRAY_OF_STRUCT: case CSV_TYPE_TIME_OF_DAY: - case CSV_TYPE_BYTE: - case CSV_TYPE_WORD: - case CSV_TYPE_DWORD: case CSV_TYPE_LWORD: case CSV_TYPE_WSTRING: case CSV_TYPE_LINT: diff --git a/src/Ar/CSVFileLib/package.json b/src/Ar/CSVFileLib/package.json index 166160a..a9be05e 100644 --- a/src/Ar/CSVFileLib/package.json +++ b/src/Ar/CSVFileLib/package.json @@ -13,6 +13,6 @@ "@loupeteam/fiowrap": ">=1.0.0", "@loupeteam/hmitools": ">=1.0.0", "@loupeteam/logthat": ">=1.0.0", - "@loupeteam/stringext": ">=1.0.0" + "@loupeteam/stringext": ">=1.1.0" } } From 26ea7802a7dcb613fe0eddf2207073c0b166f356 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Thu, 20 Aug 2026 11:47:56 -0700 Subject: [PATCH 2/5] Update vendored StringExt to 1.1.0 The example project is built from the committed library copy - there is no lpm install step in build.yml - so the vendored binary has to be refreshed for HexStringToUDINT()/UDINTToHexString() to link. Refreshed from the published @loupeteam/stringext@1.1.0 package, keeping the existing file names so this is a content change rather than a set of case-only renames. Co-Authored-By: Claude Opus 5 --- .../Libraries/Loupe/stringext/Binary.lby | 2 +- .../Libraries/Loupe/stringext/SG3/StringExt.h | 18 +++++++++++++++--- .../Loupe/stringext/SG4/Arm/libstringext.a | Bin 3288 -> 3436 bytes .../Loupe/stringext/SG4/Arm/stringext.br | Bin 77460 -> 77916 bytes .../Loupe/stringext/SG4/libstringext.a | Bin 4856 -> 5032 bytes .../Loupe/stringext/SG4/stringext.br | Bin 67308 -> 67736 bytes .../Libraries/Loupe/stringext/SG4/stringext.h | 18 +++++++++++++++--- .../Libraries/Loupe/stringext/SGC/StringExt.h | 18 +++++++++++++++--- .../Libraries/Loupe/stringext/StringExt.fun | 17 +++++++++++++++++ .../Libraries/Loupe/stringext/StringExt.typ | 10 ++++++++++ .../Libraries/Loupe/stringext/package.json | 2 +- example/AsProject/package-lock.json | 8 ++++---- example/AsProject/package.json | 2 +- 13 files changed, 79 insertions(+), 16 deletions(-) diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby b/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby index 64a2a0b..4376f04 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/Binary.lby @@ -1,5 +1,5 @@ - + StringExt.typ StringExt.var diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h b/example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h index 286285c..29f1003 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/SG3/StringExt.h @@ -1,6 +1,6 @@ /* Automation Studio generated header file */ /* Do not edit ! */ -/* stringext 1.0.0 */ +/* stringext 1.1.0 */ #ifndef _STRINGEXT_ #define _STRINGEXT_ @@ -9,7 +9,7 @@ extern "C" { #endif #ifndef _stringext_VERSION -#define _stringext_VERSION 1.0.0 +#define _stringext_VERSION 1.1.0 #endif #include @@ -36,9 +36,19 @@ extern "C" /* Datatypes and datatypes of function blocks */ typedef enum STREXT_ERR_enum -{ STREXT_ERR_INVALID_INPUT = -1 +{ STREXT_ERR_BUFFER_TOO_SMALL = -4, + STREXT_ERR_RANGE = -3, + STREXT_ERR_INVALID_FORMAT = -2, + STREXT_ERR_INVALID_INPUT = -1 } STREXT_ERR_enum; +typedef enum STREXT_HEXPREFIX_enum +{ STREXT_HEXPREFIX_NONE = 0, + STREXT_HEXPREFIX_0X, + STREXT_HEXPREFIX_IEC, + STREXT_HEXPREFIX_DOLLAR +} STREXT_HEXPREFIX_enum; + typedef struct StrExtArgs_typ { float r[5]; unsigned long s[5]; @@ -55,6 +65,8 @@ _BUR_PUBLIC unsigned long atoui(unsigned long pString); _BUR_PUBLIC unsigned long uitoa(unsigned long Value, unsigned long pString); _BUR_PUBLIC unsigned long ByteToHexString(unsigned long pByte, unsigned long NumBytes, unsigned long pString); _BUR_PUBLIC signed long HexStringToDINT(unsigned long pHexStr); +_BUR_PUBLIC signed long HexStringToUDINT(unsigned long pHexStr, unsigned long pValue); +_BUR_PUBLIC signed long UDINTToHexString(unsigned long Value, unsigned long pString, unsigned long Size, unsigned char NumDigits, unsigned char Prefix); _BUR_PUBLIC unsigned short GenerateTimestampMS_1(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); _BUR_PUBLIC unsigned short GenerateTimestampMS(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); _BUR_PUBLIC unsigned short GenerateTimestamp(plcdt DT1, unsigned long pTimestamp, unsigned long TimestampLength); diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libstringext.a b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/libstringext.a index 42007b7a7b43b962e037694bf9d4d4e227dc2e31..ad5edb97456f7d70398c25ad8159a8a773f900bb 100644 GIT binary patch literal 3436 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 diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.br b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/Arm/stringext.br index a021a7a0c8528bd76777f1cad3737c08f2499878..266883bd8cd15cf614e1a86ae3a665b10e558261 100644 GIT binary patch literal 77916 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 #7c#NmkW6~K7uBW%6G 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 QU588`^dOfTVuKt14>AQp^8f$< literal 77460 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%0DjIiQC7`7X6*ZIPcsP(Y@0{C9s9}PETdN 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 U{e{8@8p4d1!y}bBja}^j0HC_Cl>h($ diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libstringext.a b/example/AsProject/Logical/Libraries/Loupe/stringext/SG4/libstringext.a index d0ba07f8531218cfcfb908bbfdbcb5d5281d4001..52c7f00811051118b41992372db8493a566032da 100644 GIT binary patch literal 5032 zcmeHLU2IfE6rL@p_=gqz7v&;^0P4D}7?o&JXaSp0sO*A>!Q0#2yX}(w%iUY(#s^AJ zqtV9oC&n0zHEM#14^1@2sF5PZfKQc}Na71dO-eAa#uuWP_50?|ET=#IJo@0-oO|Y* zbLPyMyLawW!`kFII|r0b#S! ze%*IH`k_yu`w$cT1uIihj!L&HIsWc8?h1 zW&^L_ySZYvq+HjA%ieq?402@^M8*qC135L23rn6_R}KAC=>dN*iHKsKYP3?Nj?T>~ ziMQzveU&3N`b9tRkR?~}E1_2?cO~5xHB0ZzK81RUX)j!@Ql)L>vLC>1D($7U$=uWy zwQe5o+IYH%-E&I-eK%6V|$JD@LV#!WNZO>VtA>&LyH&M4Ty{3 z1-AmW3HCwaB}(-X!%ob>!#y#duevGn;WE6H@8>04^dUV@jD-ugJ^f=pyXxaRjvpQV zfZa!j-(OCv<8P<)>CcW#EI#sEQ*8XJv*C3g(fP!Q@CuCWjs~CDvGe#*JI)NR4e7bm zK;O1ERxrtr+dq8^@8smihj870hV3K2Hyt<=yZ2<}+TlIwz*y`}2G*~7QV+QIWbo6( z#(KSOi@mh}72J}EbLiUf#RV)ZHte5$4j)zYcs}A&-Xu$o(uc^{^##UwkAKdH%NdEoUMn;@jxU$Ceq)3ef*jBa|h1Mg=^r~ zXLg-y?1PClf7I)I*zrt4q$U4&2}C3hi5A{QD$5P8ZmD0vF^ zw&ftd)$1kp{ae}C-oD0Jv2Gxj51rnsv+mZdw>g2oC+@T+TJK8SnP^?t3&jaI(xF~TGR=f(f#)U(O?}r^1I0>vb zDQpbP&4uOu=Dj1{4cm=(7KP*Yz;c`7Rj2*a>)nU`kw$$Nt7m~_eXj!dn0lFyXSfxv z*S2Yi55to4QeybV`2Db63h~#ld{t3+KfZ&l;mc!PeW0?*mQo`{@uH-b}fEbBCUB!`8K3>s^b^Cr>w$=X1RgFY*UNmfZ31=Cxg& z?MMW6+Zd@UkJ3cZn!imaq=KeJjCB@f3BDO+(0t31uZXKzMmdfBiTJFVLi%ROZ;7)l z6Wnq}l&PS>HZ7x##zY))I;+K3)8PG*uIrx!md8)|K_Hl_;q-s^^C6mB^VEp*Pi4*1 zxjw=pHa>%Gi^%9#fLRr3@9e)gX8cT0@k+H2dcCk<$lCVXR=-#2SMf}>h>*yJfr27sknaVFow^b9_kfxX%+9S0O1)g_{Grftbexr4}#|| zwPdrP^!dUwW(kz%FynYOQxgCr#(WhqhG+CjDEk=4vz*E^+=^|spaZW19XEsm zsK*RuEc4-YqSin;hDYH8xKPOptk`^Q=&*4;h@rNy5F@OOvH@!2o<{*xuHTByw+S6= za~(VvsjSJ0ZEr^h<2V)1fBrwjx~|qKl3D6QW3w%>V!Z literal 4856 zcmeHLO>9(E6uwhH1x3ogKOm2o5Kx>Fnw7Q^3 zAR26(s2fd;pfPdTMKwf;7Dx=Zs_25mg_wvbfdxbt1Tf?Gy?5_$m{!Biji)*9yWc(M z+ZE1@{BFfklHARutKcrL>u(LjlG${*_^v(@2od`k?Pg zApA}6&*2y{h}Qwup=KRo^nP$U<5S_Y;Y;BQ;19!}hCc)6Qf9$t!k55jz%BSAaMnBp zUj#RXDJB@#_HXtmg26g<(&NC#;9N7;MwtLh$Rzzbx`!M!ZwRzW~21 zcn*9}@Gnq*Leyu$n+1;|KPK`oAU-VOYY=Z1@!t?16Yc6S zF^dhmJ<(yOT+i*vlzi7qbhKm(c{ky7XWcM1c|?@hY0t^Ib|#-LDBCvavNv1uy-ZPg zAvk`aFQfW0e!)>22YfeCc-ifbBO~9Vs;xw!wS8+sZFcjn=O8DOb4$LHD|W=~hRJ#- z_9@JkPda{+N)&b!i>?RUQaDI7gV~8~c56a8h~`rpJkJ?u&!^me6)$Epep@E%ZpDdl z94sxHEDltgj<1`I2g9h+*r;i;*YO$;@~DDiW6(?&yqx35!&412(_D-mtSH(kULBos zuZa%7kkb7DN#hpI#zz9TSS`@FLgNOFZ5q=W-_Uqm<9ixE(D<>&5sjxc{;2U6jWhAw zao#x^Z-S6lG%iM71RtY4M0|+8C*s3&30Mb=@VT|{-2&DD$L}Z{e&^>cuu~)Wg01Jl zUv!E+M@Rj+JKnm|%dX1U?hEIJzGU~gp^;_8ApZph-#U9{e94*Hb&;_jZuw7q#o*D4 z{w&mXhQ$|m@4ax&)aml_U@({J>)CPg6bHGo^P47M{Oi>?9=^u*nLBkyu0_^dDlHs3 zppJ}2K4oHM-m#!y%_Z;p_~uHbVix;o?{a+i$M2$R_jl8{u*i^m>y=mcog4C(sdDZ7 zrfdn%@iekU`Q8gx7h{;9?&@5$(&Y*Dwd4KI!{@@>-~ar2q|5TJe3F9X$gPUM3^zRf zHCb?fD`Ur7?jE@|6`{UAj_$3~A=Or`Mcr!F}Q zq?Vv&p*C5KBXehpPA?KMW#TSYe!K#-7sSRm$ zIOFGl&4RB79~3+e9=wFW2$Yl!^wzLKOa0M>K9da zCR}&auLd6$`7Pj`BEKEHUc`5S4~lpX_^9ATa3%5&GcNesjBB%qNzX6&ed%;G3E|a} z*tXr?(jHIPHdw1*_tc&3=j$|CFqhha} zN%cn?RH*P$eYxC#Ds=C6lRjQ(J>{mYt-*|K+c$J)MIo?4B{{iL3`Yo*l95fJ$}(E8Mz@Llw7O5OO)|a_ zv}T!5g%h%Bb)wOtVNIz1YV{~?O;wLe868MOx~`t^IGZKAbyHn4uQGU+>mx zaHNMidV)^YCqaEWx$sxf(m>94x`9xx0rr|!uT$z((bPa5DIxlvih6FAeJYyCXM7d) z@u;Y18bn3i-tc0mXz)m(hEG;d>f|y>740s8;R(*Ud0)RK4+Q+5p8Fp}Q`HJU*l_t+J1_A!rpF`av`G1F{72e&ikaZje7*BlUxhu2@N zg|jBu%6Nc>yCK>zGhVZ9GllyieKr@OjccQ|!OeI}u>d;H-t2as+u6 z+Q!Vh9y&O0Ob3`ptze8X<2+Ymmyy?r!TCE6e@EeXyoTrw<^%*5!;e6ph(eA!tM?1y7YNw2FaHS?Ul2Z1UkLI);~Jlq^aTQN z`Tw)m&-DMqphLgBVJ0Vj`G21OY3=_TAU>1-vHvmi4dxd48Gr;a zBJAQK;^ol&yR}w#FhLH?VZ*=6Ap8TE2m1YYX&LY8f_0{cx$UWy+r7*h!nCe{D7J$%TlYP&@ zL3*yO*WNLpVx;J4L6f^vx99ICpOS9<#q0O%FrohhOHRmYhD_rpkER%~1>6$>@TPrroy6-V_wMWBjhme@UqJr2FDJ zBxdjdqUz*pw+kj{(P#AD#oJi^j&Uj`2Ie-|l*%bpHj3jD%(SuMa*j z>G$})CDAh(_Gqb=Q@L!t`GZ1$p1=zTDiD~Q?BURYH3uaP>aAZw0@uTUdde9+D{d-3 zu~YtB8&-%~hx)M?Yzsnx5=MI^nEraKLvK^C`>Kp^WxGStO>A!+pmM1QDhX%F!EEHm9Y#>XdA))iG9~|ZSi(+3JjmmSxN87n z6P2bi&j5P^mSBY_AEUvnp!&LKVYC3XOGpqJj$Aiz3E==Cw&&-S6X*h=o7QKaXDArH z8Fup96p!+yD@dEkD$56McOR$^wS^Jj0!-qMy0QWZ0)sIH7hcA-GDKrEmzYJdg{ zU)YQv?XC=H2I#G5X~3vMii_6Ck?DHFA*<{%W*LnDSb{%Ce^tB88vj;a`T}U+^McG)>EyrnikgL1J)es$FsE}LHKvaAJf#2t74=q zcx0n-9^K0yp3z32Y#=ohJF&%Uk%=zrE7MjxlVQ7O%4ZF`EN%_= zgT!Y>JbD~z*oR`vtt=PVPluaGY}F}SyFUJyOUzRIgewhaM8czZX$N}xj|-u_R)c9l z4*+58f7lAEAR8P4+B8}oRhMuuC-4Re2X>RRRl=nWOb1#3oST7$a4VZd2u z)S-No2KB%;!xG^HXipoDK7y5TKbj)0*g-JClaDB%7JzY3^i`V4W{rf<2l<`)r6dR% zqz$!&>LI{%RuXyT26BdT!hB6NNd^DhVwuDepv1+_dea}u1O(qg?LvT<0qpnePA`zV zK_G8r7G(c~x=ZC~eW)HxhAM2Kcg>vz)*!M+sjj3`mfgf)>q;B}vd4Nb9l>Et#684r z#~%c&eKCR_q=*2tDVR1gy&rKuck@2_uGVpF4nLCoVjhrx;(+}%UC>BYHO>=WtUwq* zLm)ByC-N8{i%iB?hfX09sYC=N1Yn;1eb19$5u~6x0RB+P zd5yuMnR$lOv}sgnOt?;|9)SO3&$vh(!>>Y}0hRvm8Ak*ufLwtXP}B%k2$QH;v^@GO z+AgtR1CTG!7Z?SFgTRDlz|^W%tKt#^<`Yc?Q-K(P`hamj3&J^SCFVL~tF%iESO`Q1 zdIQ2hRRB=n7hxCS7vZ>Ix!|}EprQ1k^Z{#7{80P=PEfpw4$J2lmdQ&y8Lx2~;Z_0J zKwIE3@Eb54xC=!MtAss)okhx{?$T^h4JH6p0r!Dx0B=|=_;c)a@>Xq^T$5yQ5C{^u z0E7Y9L)imPq41$Hp)vuGKt^B{&=E)o%m!wd$gnWrqW#1Eho-?NK?LLy?Z{JSQDiY> z5ob|%$pS-xMu96pb|`E3N$d%%EOH)gmmHHEFd1kNC=Zp2P>soeX+YkpG)>tm>k;fO zz{QS+^+LFZrK6U7|L=F6hJG$HlRDyA^ar91cm`ctB%Vrup1~D7zVV5T7qkb;)ZiVTc^`uYBh9; zFew5%ebS*n-~mnx?i@#eM2FEwrBU$JNmQ{xzGvnI0C&yOH49M+D*buiorY}IA9{60bmU~iJ8TiM$aSdQVkXW34kPl zQGirfCL9A=9hz1tm+b$Ri)>=F!Tz7d0`vcig&U|(28Cn7HXv&?_|)lqFdoPg$OKaS z6tfoi6a*)nby6MLR(+Q^un{N_s0n-lpulP&5MfrLRbo|QIG{S9J76Pzl3p`>Gn^N! z7rY&i6jW;>QLA4ojmpgyF97wwIiq>EgmS*iF-o6Ls1&{vvqXxmiZZH{S7;Cy?9GFmj4$1s=k68 z{)1@P&?fA$onGXjwV?`?*lS@%@LYg?Ah+7CeR#txEZwIE#p$N&;(U%|i=6h+p0>sv ziNWB$ToSI>elEybHD^5RG?GudoO!DKuKbtN_#FZ~_d2BHM*UU+4|Gj=mX>#`TmB*> ztuM;UL3D#}Vj;N-Q}?#fp<#r!X0=geQ~&s2PVv#UF?m0DrR73LC(WCXLTn}$^FX&Y zb|Xb_&O}IZAa<%6q+t8=OF?8x|t6H7c}Mnhw5h;df8dxm7;Xpv|*%v;xy3&h!G)S=Fbp@6|Ni5F3Y~J*IsP9KWU ze|AP7+>q#STxJjdUgiIhSW}|~e+X_^Iu9Ud_`X~%9+t>bw;!)l=((Qk^5#R;IqMVx zv*k-5J6)+s0mFZo_yBLgIw764dGAZVcS7?)H0_Nu)_bxRDS6qaiQ`sTUt`^q^IZ%N z4c@%|JUUX_@Hl6x@chTXF1QyED#97c_pc2vg!bG5wb=_dM?6|)ThjKEYdL*3{zd=De*!G?V0np`Gz?O-RIx$|C+ev z59!UwZy@W5@L|UVD7);>tH(a?-?7Is7VF;fJ-#&k=ycUmw)VaS5&8HI_pRYP7dv*f zhm2&GZ}c`QE#!nm9lFy0)24lNTEp?_3NrC%J*?$?oI&$Dn&=RJfj|!~=^=4DH1uY^ zt2yGWED6&+#G=#BA0dFQua2JbUoAm!p1RTH37-puDdD?C9^-b_M-|Qd`uns;Mz6{z zu2QS9=guV1ODoF-shu+89yc5|s4|tyQ#9vZ9@gd1aJ8lZ50Sj`^1&CRri;)M2(&U1`vWkX}W$!N3w)ab!_FDkZ_lG4%zR2sz4h=NoOJFg3>34S$`N z4O%ou3LnOiv-e&SlFN6#L1*Q1(AktVJjXceh3b}CrgPAM+xnG4`R-tS+(I zxh>u^)#XMe@pUO0f~=4k98Zp_l`^AenzOqcv2?Qou1-jo4$HUeOU5(bjL8(NMh`0q**yM8>!QpoqJrD|RXo*+Hm)DupXS~oMx`QqRzLQHi+nl@V0 z*!6Sg@Qr&tN`B1=7od5|Pe0$MkuJu)!(ugIpywoHK9FQ1&!cnoC&SxAn z;7oil?(GK0*Fv2R?DbcU=*JvzA0f+^dAGAjv15LRJWMSS1Roie&uEk{1e=o%r&?>X z*~r`pmcDT@9wX9e|zYiX8Wp z{kVN&5!$sa5QDtMQUHoM+CI-e+FH&*QGhT)%KJu75^WJV^ z`=DJ{-@^yxeUu$>rO%mB&-ypJd!>PFLT8MUSxR71T>saLi!S1`sgnP^FT2W>l>S*s zt2CgQGiU6Ff@O31*bghZ8Xo%Ouq)q^d*yx3E7C2ZW$XG2w|ep2(g3cdA;&uyVmyt$ z2F;vve{+xXfBd5P4d+OKuXL=6lm;G)X(&Bt(hrn@(8cIXzfhj`zi-N&KIG=jKL1O9 zPhJ#Gy!)Xue>NaG8%B$5H7IRW)pQraQ+3x55vX>DrsBEhIf%KXBC!-SolB&w0p6{9{a;?}*}%jk+q37LSK|or(^yEYZ-4!BO9k zCevb|@%Fs=m9{v~%)@R0$El+nug5!Pn1pjkkmMeK#NQFDL#zvbqTo%bECzWbyV>toH8XM9iF~^d}S6 zV1_5!G>86^w@8sMH%r^%LEd87<(3)Tyxu&t?`3M>bS&kx#f#mLVB@>`22qz#YfJOT z1sW}}OkxeWiFE(Xjx|vspANM%OD~_z-`BR?Ah5;()))k}Txhw2xn#9Xz3+McMRFIa zW&kR9RvFkP1>9n#*6~h(vMqRZg+2Y}xp1`@?O8?w>Nh%BChy5B7;mAi`ch>h}TDAAxYE1DP#*}`8$A*BzMd~`iWuMfM7-W-`_c< z?r}RVE-%?RAs)s1DPcK6+!4-GtDeYWX_=j^i=k)=Vi)okUv};fzG+L8-6R{;nLi4A;UYMRurnde=$HXdEAE)js&%s=q|58?9vv!&xr-_La z88kJ#o<_ck^zlc4(Qcqbs+Lv36)B-Y7WIlg`jIx>=~%a!AER2p6T5R|kB{1`VOg-Z zP$~h)PPxb7K0?3Ve@q4E%v2CR3L-^!%UX++qU$+i&n^}2CM%w*Euo11C&>mJ?0$t^ zIn2Xnkwcwr?joZU!QkQ4O${M8h#2*Y?86T60ZT8}tA-e_h5z6*Hp@fIU1KsBtXv|d ztoDP6mw5whcyCm3zpbo(Lu&Kig+L9BAA>` zWSv$!Ypgk?6>c8+K%03|cQA$J*4qni$X2Ufs(bMsfujUBupcaXhM$x;B8RqQgQi^C zCT{&FlgH75rfAxd7}i#nBg2-T!Y*qXRFN9C39Bw`6fa!z3|YWa&ewlY^kWOE5%f=@ zI4Vjc3fV$ooP5mfWkVeMf0EmUFdki2D0T<1MOvAwkaUttBjMP0zbc_gMJR{mEF~23 zEumEAdsYW@sh>gFT{lJvk>^Av^YdWuD5{B1|9UxCBmFkcY8>>lDnn65c|^?q+x8Ck z2+0~L^a`@OqVm#tFtO#;`i1Wi$v(#vkq}3fL{dQY+H5}EwAnAmyCUD!66SI97&+lI zhH^cv?|orZrYhw>nCO=ZP%-EHN8DF;{$2#cLX(v+rik>|^Pv8S?&LbgF; z?RO*o>^yQ4TePEz$y9^XR)bB3Vtv!IZt=y=!FT(Y=fP?tTLu{f{V4-^ofraryRd- zg<#lU&r6ItNsOGcl5cc3F%&cErmC1jJ37?jFfEtMX{X$>BLN*n_6SBIYO&YO>SRju z_q&8x+;fJwmQaena`}y*2KhHt&j)y1>UIO#buN~ZrEng2yby;F&WMyBREEh_Rrc-( zWxKC$;qsgqt5h8pa-2@3aH5xdd7GTRKJa143QT8PcZwUT>vZh?6cX@7Zpqw(BH$(z zixCt>;nhOn<;7+j#7syw9RM;iCjj8TM9$oi-0k9_*Y(yw$HzWplx&{Mzd#_8MXs&j zy*Usz>#3peMi6kT*=1GW#aO09#CR~3wFOpUbdD_uZb7;#MQl2Gj1qsmT3TW zjYNV{89ieAEo4YA=A!3oa}h(Bb&TDB+*m|74(LbeVH}o8%tJ5&WxTtC_{b4QV;fsm z?{69!gPO!}#KknRCR@!kH?}_$fvk@H`8*p!P54PP_f>*CR(X*liL*IpdDZ@{&b+cs zVF$2Jf@z}O69s%Yb3r>x0;)WYl&lf~A>iQ`MtUQrTA{ep>rL~T>}#TuVF8MtU#{*m ze?5-zApAvV{3@t8CMGjiaXzTvo-Ggnj3VIFpv!oamKAuZlJAe9mgE55lxSW~Hz2|M zLgGQ}TgrG!4zF>63`dch2dlqEF>X>3$pwmKn(&E~pd8e3czFh%7ho(!8s@vAIMT{5*2Kke;~dcVQoN3fSxyBADg6!TyEkEadT>v-?%g*<`iC zsA)8FE83sLOm@NHEY$QqC|B?F_zM%kC7173)}M3Y>|m1wJlyQ99nFfaCzwFHCgu;4 zBGn6CxK&axlFB3Y(d^rjei?Yd2-RYZp$T+#si>-fmMyeS#We_4j2|YG%+}gWswdU# zYu%L2IgIG^RjOX@F7j_G*B^A+U5Sim{#hOp1s{Y%HGzZJHms zMJF-E>>I8BTbg&Z3o8oTH`UTM{o&9(Qewq1t0nE5VZ9&aIBh9C-s!t&LI+Sa6LqWF z#iBIu;(TvSeVV_O8g%`2g-zSTfz5{JIgKrv<-c0sl(t&c5Bk1%4RAC%eO@0;$+z%p zN#9%;>1fIFD?b~%LfJfj-o$)$boMkBOV_hliwP@8QJF{o75SpKrhhl`4sYR`(^C*{ zvfp~{b+le`ctxO7#Whm3G&>{>Ll-Hesdp625y#U^FehuLd`Q1D>$aUBes$7PcQ_pu zS`&7-7TIXSru8@EkBCcR>4j>7@QfMUABC2a70VPQ&QO&^1X5SvReQ^O)5Bg};{7kn zzQnmr5j!3pwP2$}+Wb>v|6v5pQniuMnpgVc2x)iMippT**X}n8qX(uD+uOTQC}S&1 zV4Io>DA{X@h~`+|@GK|rCv%hkJ^5m;N|To|r=VX&ci?f3m*>_i^RQh|0AxsZ8EL=l#3Il;$lZg**(~_%CNj;o2dsz`Az9#i)E?)6sx*FfI`d(un zoJ%SK%sl5%wx{7sLcixGIAi8(ydSJRb7vI7tNuLQ!wIxcM3M z=W(OQUBvDkHbIU4EeYZCdmmTjeA-W|nJSu$`|WSX8Qzccghrm+cT#H)I;`Wdq_Kwl z$K}v|rEV3h`mzo<19fLYS+J@73RJQ@C(F8{|86~aT$stn5TT$s0XYla;@&gxZkHZB zq9q$Av^Jgt18WfMW%ug}L6?ixXU9Cv$X2Q@2v8;d$k2u;RORPCBHKKs>JqdF{uNGd z44dJ7sr%biA}Dx-t?G1_WzSk7n<;+JXmUPxf!mNrZ=+DFSUMHyo$WxDNlU~v zGgrGjkyD;=GFfq|m+BC@FYRD7q;{Mb4Qk_nccOP)VzVXvC>%ErBL_5O52^2$PL^H_ zT!9m@XW8?LrupmIl)p%R$8*1F(m5M<+bI{cZv`ysh>Cd2oE@t9F-4>r(w%lVlVGbb z7*nS=Klyjt0w_U9rXb!i*IqfZT{@jB$U%lL1B-lx*P^_o2Toabba;QXiXWu71d$e;OgW)>yVL z+9b2p4=`Yz%KFnY2#2n)x)!{9EeBw2%n1bcI7FIX-j2(UPGq`jcbx%R9!$8Le)3{G zkLMUE`+xH`q%cAFHeX7c3>nqcWd6v~b}g&V<|SD@Uz_qRCb^Heo|48&Zt%Qv%{W7@ zb`tWBV=d}dlT9JWB&zv2-r9ElY=5v1{)8ycN%as+PihvO!HD=j(Tb*w3ZE0jDHEPw zi>P!t(SioM1?O6btzybmd_0&3vyVqwyJ)EvX-4R!MV@lBP!&<_6^-(@CYmvJRnfu> zMUZKh#lIgcyQDVF{}$fIvck<1#K>_x@3GRlF?IWLW`hK;c+Lsj;olI81G$ zvY)E3?DG-@bM(R%nn&0DF^LvA{?Wv-q5el#(ap}x7Qha6bX$=r<^0yQ;Fy zXOqu{gtJ-YRL6*o9fJR4?;<#y2^o!qG#o?m&dsNN5?+tsKj?)sN5d9?OR)5qRO z#oO#zK{*Z7BvoQI-C!3~u0zI{sv66SxL*?8s83#w>t}D|v=&Wlt@Co4J>HPR-(N*m z|DsvqHCI=US#;&TlHR2$YV=Z3*gbLj#gJQi_NuE@v^s^@$CJSAb${NHLH<4>;3*r_ zp+JK2c=Hc+UOmE|riFPVQSekLi~MX!E&7jSh3vQYe*As`&lMw1Oi$uoYjsZ{@xhHa z%3xh0jmp9mgtvno-;V8>k|kC9vPGdoL?A5(>JS<>2dZDinN_*#$bL>t@{(tmk)td| z8}sMJup7btM;`o2d6M1=4MTLu=((5mQnu`?+nnU%Y3bu{4k+oT`{i4W*|q3~>vfJ+ zJOynf<(483p#$S*Mhoet`(uZ$a5!SCK_~7? zjAIJP6Qb|A@?sAMRvVEbJ{@}O&yLVwmb{84dpYJG9?VPZruNWb7?#Z}8I&#ApguBq z_PhkBXA}8bRw|j_!6|VV5lvS#Ug%+_BSzJ#(NwKOUMSj$Lm)U+1+$syBJ|DLc~LWOq~@s||?Zv>tBcAJaJ zM_djdu58z4I_xqwzNepuxmhHrV)zwr*dVW>=@0KMY$l{mJIr;4Fx018Mg6M-!ZLSn zqopzu*Rg8p`=xi+M-4IkRoluo!%cKBQJZ(0ByI*C4aU) zEo%=VyxWj%^&T@%CuTuN_tX3lxPP>k!y7hZU z5V+X*`m;^_X?I`3dlBtoxOFj-b7LaXku=NP-aa!PpZPf+-!V%QkLx0Mr_UxM6Fw)5n3bL7c&$meq1@Ev=4A81OPTc+E@ z>S!hxO0s-R>mvt+m#WMHqHdt~F*B1LN|r14Bq|RJeCe%rer5!%2_Baq(kFIWoz?O_ zP0TJjN>-)n7wzH(i8(qxShxXCa?%V>@Q6Uh=Fwp5ITga-Q6^8t+hE&Nw#dVqQvuLf z<{hE!reBaXuN;PR!;_uUEq+?f#MiT_a83JW(}jD-{&G@$Ek|d3Eu;u#YJ4remD<@A zEzQ5;eIE6uMf%&KSxEGPgI6P@azfdTIvJ+@WD#HgSn(;B@~;YF$Uyahhpo^XYVr?& zOF8Wp)dDeg&}GR@;ra9-4jSJCrYBfhSPkPmp=;PD48Mi9(KDG)8()4i=n6|gvfI-t zJYtM&vGt0CtIVQG>#*G(R#H8+@dzM&cY-cBN%%=K&D|R3;iAZfTCrcS4W7ITKrSD(u}}>l{QlKcb=d?^Dmv{zBz>TXfa5}qd0TyrtGcd zg62?0JHHrq2D``ajCRu~#7jO0k@iL?_taj0Bm% zH9ODUIoxaJ7*+P}gV!ME!CtRy(Mg{iJvsO*i$Ssn@nvIAcYNu%^fkWGb?BRqZ2aS8 zfEE>33tT3y;7W;yd!`jHL|0;`lso>nX+d`76<* z|I~aJ;I`vx5j2a^MB2?xTe}7uYR8y5bs*Vsd}BR8-%xR%&?;^bnk!^a`1`js@Xba_ z(7N8y1)qsywf6lQ>hIiWGwV{VBj&yB+D~SfQS$=QT%IWDF6+tXVP|)MPgTvm!Hh*wbSK^F`R~tWmNMAFm2i&(rkVBYauCv{dN<5=RV&B3KOn+hj_Jj}c&{tiG11z+m6v zy{xA%j{4BoeP5~~&8b4$n8m@koNEuX!hO{ho0oHlW-a1u0qzdAQNC-aKO{RN1tda-F~0! zN0Co2j}!3*n{Y3#{>D9_40!SqD1^3vw={(Jc>)M@S zdpP_q;)0R}1!CXjV-pC1oOQHd%ec8v9=K5sD;Sz+ixuuveI<# z|MC?j2DaXbFeDW>HryWBlqW^$HEN{<Qfx!UBz6H4)ec$ zqu8Z~oj~}p%SP9jv6VKkU@^kz(?-PD=1^di&ECzGG5XV2=dP@0Z?X#%EveUHn7q^*~?aFfn-M5K6G6R@(Wje!{C90c!Ax2%4PUZTn3TxdI zTQ*~>_$Rd`PVGOnSn3|)%;pCpn1PtraeF-GR>}9~g^P)Do619PYa{a$2^;>V488AA z<_AG+R$7D6=@CY3(dnA23gpLW=P6<_!R(VcZN#~ZbGn;yT*ZN_IM?4FL@#TcrUvk% zIb6-M1QVs}Y-R_(=n2j-6&gOsWhu2?+?OeBK(&40Z1E?;=h~{jd~N*qm37Tae++uY z5^sK$!_XC3s==D9WTp9W*rF~d*8H?&txugtdhpGHZ~n$pW8L!iH)&tN%rMFxQoo?s z>$mkfinfjRw1|g#;S9T#8HBbS4F=MMj^Gr%eWkk@!VJ9qf-w!t2ZK^=-QQ!?i#%oV zs74ui+CA_Mt_!N~I2rD4#u{VZLUje6Llx3{vIWO}Post$Vxr z!EVm3e@=FeEWv;KNL!}aQNA6u|7Peik71g3_?OHu(rj3y+5Ap4 z?KXT8fW?~Sj6Nr6Za(&9Epzm_!x%rWXWcpSO0^h`ynFckSsg_|03&m8X6dB`a7vMC zl|J%jS}f`m@C>3JHHkFObRChFeq!DUW!1(Bf5~8ay`>(1f4+jN58m71QNM!Ccne%Z zeF|uvJ=HuG__lb<^(oPO4Of;7Ynz^ydGpCaQd9E}=X3W4Bvku!gPhrj%tNoT4(l1PFJ+2M(D+!~Ax@kxf zNQf}J5HTB^Pr(zuI*BB47vdyQS6=r;v5|#3Ex!H$!j5Bd>%D4naS07g>yAJvjdp$x2yl!2#tQZ z{X6apqa~CLVaQ0$oY0ubHHvS4Dmnwb_Yi#E0Jrw0>fAN#cCSfQZ?A?AxXD!08Ur%Yo&1nswFmVjF|RT4=Ma##?99nr&x8<->{ zRrPk@*5r4vM1^*kDM@09Eh)^LZ4ZzP;jJH3=IS2y@xr+Nr)8ndmD7+7dHi>1bctbg zF&C<3rFDVuIYRH8cvuWw!iNvZmAdSh1qNj`Fnax^_xt7#WKgZu9Ox(Zw$k=Lqchz0 zEs7R7#;?nXkZM)S;|o1;JKW+|xv4w3*Uf5I#7TM>414Qt^C^tl?ka|g8}QNcKhOr6 zT#sovaz}`3RPSTlntEzl$Hg zhWxCm+r&tG4uJURx@d z^YsO{-Z{BY*4S%$nKqedR$g#~g5UXJh;wCp8z2Oq$i)xst6qB!x*^{zlySSbi6fjbFbQb+Gu5B_`R8r!Iy{Gp-Wq!8-`gBqm5&V zX<60+5(|W@P!M>r?;TSXqPuz+}1;B_&^_gyGFcUf;O&-8+9tbPLksg7$c!E~A)$_|;s0W@>e zC`RrahB?pXpi8dVyDp1$INV{UN;N7qcjPMJTv!|9c0$&r#cq!Z3BV*btA$jF=)mF8J^vWTmS7n0-+DLR~!vR)l;l<1;5_u(!;Z~8c# zoawWQEX;bYGR|L^UuXB_{?kT!zTs~N?{dLQi>V6S$`LGS0}pqiDiyMg4L`(G_AR!= z@U1Gir-(Ww%sLyI;&7+G>f^hg4F$a;JMPpj8x$yx<6`SSI4>v@Y}dA`R{gQ^My|G6 zv=mb{{cckfqO1a*bK^0Al786N)-zj2VCy; zkiF==Y!%gD^itV)NM?+P_27)NOBlmG;fM{}Lt?}e6aJc<2aB!wk9w6+0rwV@(iyCJ zDOc{B9OF(m@Y4XU%k20ih=VF3x*txds1lZKKd_YA2coYbE49*?W}ouAnmOEe?>i^b zjt{DKCd!5xs*G7=v8Dti2K$Aei$4i<2`klUN?uD{*MRDMuGdf{DAgYNie(iQyr{j4 zs|rpP+J~?HpNBssxwwRSU~T)G#zYTX-b82x9r@0??$@sAr#jDQXaue^;?}?Iq=v$I z>*XN6spuOw5g_>|CcMIx@=0Y{#R-`Vz_s=18`!V_JdEs#%*J%-lJH z9#l)E?r%9_hU%N6$I0J1F1;&SVxLa%n~6Fb>cb?N)6 zXr2CDG#S1UoWcw|+^ylskh%~=8-}Vwnn;X(s2}D>>V_*?mmdV z_%Ls_C}GBqZoP7o%F2>d?7ev~K6$k0as)vcxq>rtn5O!Cw+; zk9jUF6a%v+g=?PqbgMbX*_7fv8nB95nfWaMtb*L+IeK=H$?;&A>Pmln!V$(V}Lsvc27R%J+DtKI*%32K21io&n;; zkksPL11Q59bpFAk5cIlu38zzb?X>CLMpZOdK!cz4ymb|9HDI**?-}DtS-XWZ)@Z#< zCgN|dJ<}WV-%M1$Q@YVGY}K8ASIaA59wVL|)u{X_Jb&Z+{mx+YXJ^S>AShTA=k!aE z*4FlbDw-WhP(0qWrkYy7&*jsUR*Am_MpaRMtP5)5y&bny8v@svu#dy---+>Uu`jpN zj1V@>#=cmrIHc^)zpI@a7cAY9&aei`H!54Uhg0~0jjc6{dm3+3Y#z*MW-_$`vL#Ya z(2;(BKxWR!Tq$rj4QX|P-@_mWR!OVo@?H2|&?k)ydDNwEv11qId0srWX~-w~$~fVy zV`)P)(3BMDe#zd`Co84MwHlX&`pZ%hB+8X+H6;IGt1m(+vkBK2In>C~m~CXv!(BVc z)w4p&N%S3d@`?Xa@FRh_1(7^h;Rqj)wiOFlnU7 z=3cVqr_ zAxh|%S&N7d+yvolkXJDUL;qdBl-qmQ%270>S-$7NOexg+pYVohx8GKBER2t2N(7=V zhCS4(MYNU=!^v~D?c?{Q2Jwm|J*o}h7DD46 zEFER4&hL}oj8}$_yCo0KB|nJeXF8|F7nn9m?&F=c(!Nbx3}s&^_LAQ+Cv1u1C$F&l z)9etW+=zV9DO#p$Bo!V`>BdaZJG=D{im3XDBYE98MiaUa-1s90N>`G9cna~bqAQFsJr7C{cdqnl*s#wDsscDROnw|V&&;IRkn^4 z*TnM@a8t`Uq0V*7$UtBB8#iv&6Fb8Kxx8Q1<+6|0#jdG(#R}Qsz>0p_y-_SF`5!zf zYnOP*G{)RU=8`ZjtcYmM0xomm>VLUQ(V7_dKV=N!Of&}v!(x7#4>C{b9BNBuB?h5NXhkzt&?!%)x?4cAtW}MJZs?Gc(0WUIY4rZ?A)J zlwCO=4PJdX6dE|n0ZJ7*(p-l~i#BOBVNn>0k>Q-B70t39{^45=p4m^`ESU6sz~?+# zDxuHhS+WH+37CAZy8TM)pyramkV2V)##ez%UzP2{N5CV4;GgX(FOv{fSb)0{(P0SV zY8Aozmo=TH!gzG0Plc85>qAByb9WElxnj2;Y&bW%??oUL9OnxZ# zoZ32OZ$b&c_OIF7zBdk?2cUqc$0L(i9PUL4L~T{;ps!&a=5;(%?eUe3TEwZ)82A** z2d9#iNp}`!favtPG{l{54`x_%5}UY+uKF;2XgMPWY5E#ro-Su1{=Wzj1J|CL+^5Ra zSCDv#4E|`lJUN1hWc6J?J;dX-eW0CTd}5bRLbw#hKrM^Ud05VgPh4d}X%xO4**WAX z=AcN7^B)?dKuFd&4`&?(lD!Ap@Dz&()xqB#-HvGbg1Tn|>~U9$?1xh#FnLRTJQ1?@ zxpiAb3D6h#vBH5V2D2^)f3||EA4;8rBAjih`ElTVT$i!FgK+q95-dDQL?9g0cVHVG z$7@8^5ViPS{3pdDD~Xofz=LMy7X&Ml-7iH1+BQ}Ne>0068g0v0mO1v{ByKc+8z$oA zE8@Q<-&XuJT9C^5&2aP$&PJ+cTI-@SqOx&kZOAL=hP%5_+iUlEm~en$2ly~eH(iHS z)9yHx_{YVl{*16SvabOmr@#3bIa2`c27}%f%TH}sIl*LlM^NMHqp4!o0Z9AGE{`ly4l!7m4U}1>Qh*7cm;lJow+ZiYG9C ze9`u(er(^WdVMPm%uj0??C=?g!|GX(%XW|1B~6y1QbT3$*Q<+mJc31dE47h3=FKVK z`nf2@HOTZc#2-T?=kG7$!c47S{drXgwtfE>07XE$zW^#iT(qK>Q*z2%?!mJwv{i|w zTJL`$C;e>oCH5rpAc&*SF6zQPxi{ggjXTvV<8RT;W#NOMytI62nDp8RgbG;tExR0T zq3xkIZK>XnHEEm=h(R4K^tNLq>@#sL>S}#H@17oaH;z(@Xv4o0OMC=3{cwQz5lbYv zwbB>!(TH9Xqrjn*yB83HX#KKNuln73E9n$RLJ_X+=(%s8NA0#8E9jx4s6AzT6t!D> zwOh*4L4K0cXpF?;^Wh2oH@p7pfnnK}clAmiPFO1?m&yv5)cMHV_~ zF;ub`JYVC*&@kPH^-(n~hH5mTXv4+O5N&Fa!2m9XMl84(+V3!=4HrWrwCkkDg8$4mMm@$Ys4S8cb)dX$K+K2RcAG8|693H2tu^tdQ&THpxqnzFuJ6OMNf*X=3l zvC>kor>NUX%egs+Tp6-BOn2+$JBR0TCo9Xj8&U1u5W0wUzaq%v$sl(7J;^&3~uWyHpd!men-s%}HwO zXy^bzXQBs@I$wT+$+=&vIQMIdX-?igq|H*BiuVQQBq4r+=($mM;(@+RK>=!m%9hs* z)*pqi4f)kp;}9>k|L}&vMtb^pLD}C}-3W~H8gA`~CDI{@q`nFB7~byFUm~5L@&}V; zYK@Qc=d=tOJH-zkOqIVGSs@=sOGqbVqA7T;A6F_vv6ISp+v#-zwkvV7>_a}__SpI2 zL_9$Cy@kgmjh{%RX2T#>PxLM6yW8#eS#gfW|xiZ+NqXq>j8lEdAbVOnx`7wR7L{gwat0(*HUjPx&OGHH)$@Wxn( zSM(4dIb1{rJspYP>Z2K3eOB}L9J9z&lE$iBpV5r}0SKr37K`#t%y~->`(})b{}lAX z+dZL~+J}$e2;!PsEId})T1M)u^Em$B@>bXJrO=!k^8B96ck%fAy8FoXO4=q|Mnf&l z7-M0)cKjdWwd?V±OylLgu)cr>3Ljps)Y;Y3NpiK2!RC0Miko|W`=;C=crk<=4^ z*awdwka6f6Z4)PoS|HL}T_;L9^$)G0Yj@wA3i{Lsj2HZ#0!pg3kf#PJ*%OmXkL%&b zqo@04=ct{IXX}hOr4(m-TpVlZzw}Q?+PxtyJ+W_p{> zKqWlZUH{n_?@?U%?~Hjt=RV?CfyPrJ^mr)jH~Ytv|`ukYo9!lP?v7$~Hc z&IWm>n*9o+BXlhr%YYlwBbxHD4D-aFMi~8Ryn?kPm<_*!f)mdc`_M9x&q5?z1gDp-5NF;>{=J`;I91wzq^B%675>9{tSn-`K`c_`q%_zvC|vKYK3-S zX_Ef9G~Ev>i4s2A@(q?;B!(r7s1?6s9G5*%sTJ!Yc;lg-#Y7AbxQJrvleSF`COQQIuFySPg% zusB@$9#oT*<2S|asf&%9Xjt0A>EU+g2#!E+;ro&sjNxGp?tRl~>$U{+@h_=h93d77 z7Vrne!>)lmGMY{s_+a$VLwoYNgK5T?3iTleg6Uc}emc7|Hg-ZEB{-_kUiP4*&$|hA z#8%FKE6vJkytsAtAbFR?GmpnVKqq!KIYC3ex|{wf8*dh03h(N^6sp-n!4mz%L|i1? z6#q~3j5fS7AxQAIl}0EuKiVv&RP^i?<975-j*4d#F}DMSc%n7WPmUQt3*jMJxWjmP z+M$196-}2ZEgEZrJf_VaE%o80vT8Wcyxg}9~dLXTSW_1R^+TJhJhGl|CN zZ8?rz-HM4HxPMly6`vrq;};&lG@IR$mhVw`i!BD>wZxfdg+LA2;OVxN4UOX#@Mr{3 z=qz)@@d!E74EnMeru$p!;^L?G!EH@?7Qv z@UQ^CWYDHMDhh}*4T{@|2T|RF*l_ZICB`M2;hW`axIM{r4*X7WkC$yEUtb#>JKGgq zFs~thFZc!`ZDWz{F=Db?kT$A@dxdJ+wuVPS_V!s@_kQD=`U1b2#GWHTXsO#u_Kvw# zQA$&Rn|Ki%;8XX~DXf6v8ggc7YcN\|@;#6?XIlc$n9;fjBsgR}#qD^8)q2dlo> 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�D^Hmp7ab+Lw7Q3sxhZ%nDQFS}nHK=zo{a6Y?!g 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 literal 67308 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�Rx-tS3ec@Fwx+Pwgf@gknls}ur#hS1g7Q(bc6r) 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 @@ -36,9 +36,19 @@ extern "C" /* Datatypes and datatypes of function blocks */ typedef enum STREXT_ERR_enum -{ STREXT_ERR_INVALID_INPUT = -1 +{ STREXT_ERR_BUFFER_TOO_SMALL = -4, + STREXT_ERR_RANGE = -3, + STREXT_ERR_INVALID_FORMAT = -2, + STREXT_ERR_INVALID_INPUT = -1 } STREXT_ERR_enum; +typedef enum STREXT_HEXPREFIX_enum +{ STREXT_HEXPREFIX_NONE = 0, + STREXT_HEXPREFIX_0X, + STREXT_HEXPREFIX_IEC, + STREXT_HEXPREFIX_DOLLAR +} STREXT_HEXPREFIX_enum; + typedef struct StrExtArgs_typ { float r[5]; unsigned long s[5]; @@ -55,6 +65,8 @@ _BUR_PUBLIC unsigned long atoui(unsigned long pString); _BUR_PUBLIC unsigned long uitoa(unsigned long Value, unsigned long pString); _BUR_PUBLIC unsigned long ByteToHexString(unsigned long pByte, unsigned long NumBytes, unsigned long pString); _BUR_PUBLIC signed long HexStringToDINT(unsigned long pHexStr); +_BUR_PUBLIC signed long HexStringToUDINT(unsigned long pHexStr, unsigned long pValue); +_BUR_PUBLIC signed long UDINTToHexString(unsigned long Value, unsigned long pString, unsigned long Size, unsigned char NumDigits, unsigned char Prefix); _BUR_PUBLIC unsigned short GenerateTimestampMS_1(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); _BUR_PUBLIC unsigned short GenerateTimestampMS(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); _BUR_PUBLIC unsigned short GenerateTimestamp(plcdt DT1, unsigned long pTimestamp, unsigned long TimestampLength); diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h b/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h index 286285c..29f1003 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/SGC/StringExt.h @@ -1,6 +1,6 @@ /* Automation Studio generated header file */ /* Do not edit ! */ -/* stringext 1.0.0 */ +/* stringext 1.1.0 */ #ifndef _STRINGEXT_ #define _STRINGEXT_ @@ -9,7 +9,7 @@ extern "C" { #endif #ifndef _stringext_VERSION -#define _stringext_VERSION 1.0.0 +#define _stringext_VERSION 1.1.0 #endif #include @@ -36,9 +36,19 @@ extern "C" /* Datatypes and datatypes of function blocks */ typedef enum STREXT_ERR_enum -{ STREXT_ERR_INVALID_INPUT = -1 +{ STREXT_ERR_BUFFER_TOO_SMALL = -4, + STREXT_ERR_RANGE = -3, + STREXT_ERR_INVALID_FORMAT = -2, + STREXT_ERR_INVALID_INPUT = -1 } STREXT_ERR_enum; +typedef enum STREXT_HEXPREFIX_enum +{ STREXT_HEXPREFIX_NONE = 0, + STREXT_HEXPREFIX_0X, + STREXT_HEXPREFIX_IEC, + STREXT_HEXPREFIX_DOLLAR +} STREXT_HEXPREFIX_enum; + typedef struct StrExtArgs_typ { float r[5]; unsigned long s[5]; @@ -55,6 +65,8 @@ _BUR_PUBLIC unsigned long atoui(unsigned long pString); _BUR_PUBLIC unsigned long uitoa(unsigned long Value, unsigned long pString); _BUR_PUBLIC unsigned long ByteToHexString(unsigned long pByte, unsigned long NumBytes, unsigned long pString); _BUR_PUBLIC signed long HexStringToDINT(unsigned long pHexStr); +_BUR_PUBLIC signed long HexStringToUDINT(unsigned long pHexStr, unsigned long pValue); +_BUR_PUBLIC signed long UDINTToHexString(unsigned long Value, unsigned long pString, unsigned long Size, unsigned char NumDigits, unsigned char Prefix); _BUR_PUBLIC unsigned short GenerateTimestampMS_1(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); _BUR_PUBLIC unsigned short GenerateTimestampMS(unsigned long pDTStructure, unsigned long pTimestamp, unsigned long TimestampLength); _BUR_PUBLIC unsigned short GenerateTimestamp(plcdt DT1, unsigned long pTimestamp, unsigned long TimestampLength); diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun index 756c061..241f248 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.fun @@ -48,6 +48,23 @@ FUNCTION HexStringToDINT : DINT (*Converts a Hex String to a DINT*) (*$GROUP=Use END_VAR END_FUNCTION +FUNCTION HexStringToUDINT : DINT (*Parses a hex string with an optional 0x, 16# or $ prefix. Returns 0 on success or a STREXT_ERR_enum value; the parsed value is written through pValue*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) + VAR_INPUT + pHexStr : UDINT; (*Pointer to the string to parse*) + pValue : UDINT; (*Pointer to the UDINT that receives the value*) + END_VAR +END_FUNCTION + +FUNCTION UDINTToHexString : DINT (*Formats a UDINT as a hex string. Returns the string length or a STREXT_ERR_enum value*) (*$GROUP=User,$CAT=User,$GROUPICON=User.png,$CATICON=User.png*) + VAR_INPUT + Value : UDINT; (*Value to format*) + pString : UDINT; (*Pointer to the destination buffer*) + Size : UDINT; (*Size of the destination buffer, including the terminator*) + NumDigits : USINT; (*Zero pad to this many digits, 1..8. 0 for the shortest representation*) + Prefix : USINT; (*Notation to use, see STREXT_HEXPREFIX_enum*) + END_VAR +END_FUNCTION + FUNCTION GenerateTimestampMS_1 : UINT (*Generate a time stamp string from a DTStructure variable*) VAR_INPUT pDTStructure : UDINT; diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ index 05f77da..b3389f0 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/StringExt.typ @@ -10,8 +10,18 @@ TYPE STREXT_ERR_enum : ( + STREXT_ERR_BUFFER_TOO_SMALL := -4, (*Destination buffer is too small for the result*) + STREXT_ERR_RANGE := -3, (*Value does not fit in the destination type*) + STREXT_ERR_INVALID_FORMAT := -2, (*String is not a valid literal of the expected form*) STREXT_ERR_INVALID_INPUT := -1 ); + STREXT_HEXPREFIX_enum : + ( + STREXT_HEXPREFIX_NONE := 0, (*FF*) + STREXT_HEXPREFIX_0X, (*0xFF*) + STREXT_HEXPREFIX_IEC, (*16#FF*) + STREXT_HEXPREFIX_DOLLAR (*$FF*) + ); StrExtArgs_typ : STRUCT (*Arguments for formatter*) r : ARRAY[0..4]OF REAL; (*Reals*) s : ARRAY[0..4]OF UDINT; (*Pointers to String*) diff --git a/example/AsProject/Logical/Libraries/Loupe/stringext/package.json b/example/AsProject/Logical/Libraries/Loupe/stringext/package.json index 275ab8d..6daf7ab 100644 --- a/example/AsProject/Logical/Libraries/Loupe/stringext/package.json +++ b/example/AsProject/Logical/Libraries/Loupe/stringext/package.json @@ -1,6 +1,6 @@ { "name": "@loupeteam/stringext", - "version": "1.0.0", + "version": "1.1.0", "description": "String manipulation functions for B&R Automation Studio (ANSIC library)", "homepage": "https://loupeteam.github.io/LoupeDocs/libraries/stringext.html", "scripts": {}, diff --git a/example/AsProject/package-lock.json b/example/AsProject/package-lock.json index b41c6d6..179bd72 100644 --- a/example/AsProject/package-lock.json +++ b/example/AsProject/package-lock.json @@ -13,7 +13,7 @@ "@loupeteam/hmitools": "^1.0.0", "@loupeteam/librarybuilderproject": "^1.0.1", "@loupeteam/logthat": "^1.0.0", - "@loupeteam/stringext": "^1.0.0" + "@loupeteam/stringext": "^1.1.0" } }, "node_modules/@loupeteam/fiowrap": { @@ -58,9 +58,9 @@ "license": "MIT" }, "node_modules/@loupeteam/stringext": { - "version": "1.0.0", - "resolved": "https://npm.pkg.github.com/download/@loupeteam/stringext/1.0.0/9da05bfa435b70b88d57f6a3abe7e1b03d1ac9f4", - "integrity": "sha512-CkwWziPxGwLisndcMunmR7DLdX1tvrt1hxHVn9ZYqJ8L6defPZr/ZWutpT+qhQJgoQnt5n+N48M1gbv6WclTHg==", + "version": "1.1.0", + "resolved": "https://npm.pkg.github.com/download/@loupeteam/stringext/1.1.0/afe5d94fd4e1a39806d6bc5c258716336fe2089e", + "integrity": "sha512-F5/Csobt7DMbxpIUPnvKdGcr+Ohp/3RUiYgr2ROnwtkrXTtTUYdcU0Q+60A2dYsNKao+eG9/R0aYi2/deGmaXw==", "license": "MIT" } } diff --git a/example/AsProject/package.json b/example/AsProject/package.json index 0a752dd..8757642 100644 --- a/example/AsProject/package.json +++ b/example/AsProject/package.json @@ -18,6 +18,6 @@ "@loupeteam/hmitools": "^1.0.0", "@loupeteam/librarybuilderproject": "^1.0.1", "@loupeteam/logthat": "^1.0.0", - "@loupeteam/stringext": "^1.0.0" + "@loupeteam/stringext": "^1.1.0" } } From 8bf7a8af7aed488e2a2dae9e07a45a0f0116e46c Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Fri, 21 Aug 2026 14:41:32 -0700 Subject: [PATCH 3/5] Add a bit string test suite and an ARsim configuration to run it The example project was a build harness with no variables and no test code, so nothing exercised the new BYTE/WORD/DWORD paths. There was no existing test suite to extend, so this adds one. The suite covers, all verified on ARsim (93 assertions, 0 failures): - PV_ninfo really reports 17/18/19 for BYTE/WORD/DWORD, which is what makes the feature reachable at all. This was the open question from review - it is now measured rather than assumed. - 41 read cases: every accepted prefix, bare decimal, mixed case, zero padding, whitespace, the full 32 bit range from both notations, the per-width limits, and 14 malformed inputs. Rejected values are also checked to leave the target variable untouched. - 12 write cases including the hex versus decimal padding asymmetry and an out of range BitStringFormat. - 36 round trips: 3 formats x 3 widths x 4 values. - End to end through real PVs, and two hand written files that exercise csvParseLine and csvGetVarInfo rather than calling csvOpenVar directly. One of them has an out of range line, to confirm the bad line fails while the good lines still load. The ARsim configuration is what makes the suite runnable; the existing Intel and ARM configurations target hardware. It is pinned to the same AR 6.6.2 as the others and added to CI. Also apply two points left over from review: initialise ValueUdint, which was safe only through short circuit evaluation, and record in the changelog that opening a file now writes bit string variables that were previously left untouched. Co-Authored-By: Claude Opus 5 --- .github/workflows/build.yml | 8 + README.md | 23 + example/AsProject/.loupe/partition.json | 6 + .../AsProject/Logical/Programs/Default/Main.c | 576 +++++++++++++++++- .../Logical/Programs/Default/Variables.var | 28 + example/AsProject/Physical/ARsim/Config.pkg | 10 + example/AsProject/Physical/ARsim/Hardware.hw | 14 + example/AsProject/Physical/ARsim/Hardware.hwl | 0 .../CertificateRevocationLists/Package.pkg | 5 + .../CertificateSigningRequests/Package.pkg | 5 + .../OwnCertificates/Certificates/Package.pkg | 5 + .../OwnCertificates/Package.pkg | 8 + .../OwnCertificates/PrivateKeys/Package.pkg | 5 + .../CertificateStore/Package.pkg | 10 + .../ThirdPartyCertificates/Package.pkg | 7 + .../SoftwareCertificates/Package.pkg | 5 + .../PC/AccessAndSecurity/Firewall/Package.pkg | 7 + .../Firewall/Rules.firewallRules | 6 + .../ManagedCertificateStores/Package.pkg | 5 + .../ARsim/PC/AccessAndSecurity/Package.pkg | 11 + .../TransportLayerSecurity/Package.pkg | 5 + .../UserRoleSystem/BRRole.brrole | 9 + .../UserRoleSystem/Package.pkg | 9 + .../UserRoleSystem/Role.role | 5 + .../UserRoleSystem/User.user | 10 + .../ARsim/PC/Connectivity/OpcUaCs/Package.pkg | 8 + .../PC/Connectivity/OpcUaCs/UaCsConfig.uacfg | 114 ++++ .../PC/Connectivity/OpcUaCs/UaDvConfig.uadcfg | 5 + .../ARsim/PC/Connectivity/OpcUaFx/Package.pkg | 5 + .../ARsim/PC/Connectivity/Package.pkg | 8 + example/AsProject/Physical/ARsim/PC/Cpu.per | 4 + example/AsProject/Physical/ARsim/PC/Cpu.pkg | 21 + example/AsProject/Physical/ARsim/PC/Cpu.sw | 67 ++ example/AsProject/Physical/ARsim/PC/IoMap.iom | 4 + example/AsProject/Physical/ARsim/PC/PvMap.vvm | 4 + .../Physical/ARsim/PC/TextSystem/Package.pkg | 5 + .../Physical/ARsim/PC/UnitSystem/Package.pkg | 5 + example/AsProject/Physical/Physical.pkg | 1 + example/UserPartition/ARsim/badline.csv | 4 + example/UserPartition/ARsim/crafted.csv | 5 + src/Ar/CSVFileLib/CHANGELOG.md | 2 + src/Ar/CSVFileLib/csvOpenVar.c | 5 + 42 files changed, 1047 insertions(+), 2 deletions(-) create mode 100644 example/AsProject/.loupe/partition.json create mode 100644 example/AsProject/Physical/ARsim/Config.pkg create mode 100644 example/AsProject/Physical/ARsim/Hardware.hw create mode 100644 example/AsProject/Physical/ARsim/Hardware.hwl create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Rules.firewallRules create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/ManagedCertificateStores/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/BRRole.brrole create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role create mode 100644 example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user create mode 100644 example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaCsConfig.uacfg create mode 100644 example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaDvConfig.uadcfg create mode 100644 example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaFx/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/Connectivity/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/Cpu.per create mode 100644 example/AsProject/Physical/ARsim/PC/Cpu.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/Cpu.sw create mode 100644 example/AsProject/Physical/ARsim/PC/IoMap.iom create mode 100644 example/AsProject/Physical/ARsim/PC/PvMap.vvm create mode 100644 example/AsProject/Physical/ARsim/PC/TextSystem/Package.pkg create mode 100644 example/AsProject/Physical/ARsim/PC/UnitSystem/Package.pkg create mode 100644 example/UserPartition/ARsim/badline.csv create mode 100644 example/UserPartition/ARsim/crafted.csv diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7ed21d6..139bc85 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -48,6 +48,14 @@ jobs: config: ARM build-mode: ${{ inputs.build_mode || 'Build' }} + - name: Build ARsim + uses: loupeteam/br-actions/build-as-project@v1 + with: + exe-path: ${{ steps.find-as.outputs.exe-path }} + project: ${{ env.PROJECT }} + config: ARsim + build-mode: ${{ inputs.build_mode || 'Build' }} + - name: Upload build diagnostics if: always() uses: actions/upload-artifact@v4 diff --git a/README.md b/README.md index 7a8bce3..30a4134 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,29 @@ For more documentation and examples, see https://loupeteam.github.io/LoupeDocs/l # Installation To install using the Loupe Package Manager (LPM), in an initialized Automation Studio project directory run `lpm install csvfilelib`. For more information about LPM, see https://loupeteam.github.io/LoupeDocs/tools/lpm.html +# Tests + +The example project carries a self checking test suite for the bit string +(BYTE/WORD/DWORD) support, in `example/AsProject/Logical/Programs/Default`. +It runs automatically a few scans after boot, and can be re-run by setting +`runTest`. + +The `ARsim` configuration exists so the suite can actually be executed: + +``` +lpm install +# build and deploy the ARsim configuration, then read the results +``` + +Results are written to `result.csv` on the USER file device. `testFail` must +be 0, and `pvTypeOk` and `roundTripOk` must both be TRUE. `firstFail` names +the first case that failed, if any. + +`example/UserPartition/ARsim/` holds two hand written input files that the +suite reads (`crafted.csv`, `badline.csv`); they are copied to the USER file +device by the `.loupe/partition.json` mapping. + + ## Licensing This project is licensed under the [MIT License](LICENSE). \ No newline at end of file diff --git a/example/AsProject/.loupe/partition.json b/example/AsProject/.loupe/partition.json new file mode 100644 index 0000000..8f45f35 --- /dev/null +++ b/example/AsProject/.loupe/partition.json @@ -0,0 +1,6 @@ +{ + "version": 1, + "mappings": [ + { "configuration": "ARsim", "fileDevice": "USER", "localFolder": "../UserPartition/ARsim" } + ] +} diff --git a/example/AsProject/Logical/Programs/Default/Main.c b/example/AsProject/Logical/Programs/Default/Main.c index 86fb279..aa4bbd2 100644 --- a/example/AsProject/Logical/Programs/Default/Main.c +++ b/example/AsProject/Logical/Programs/Default/Main.c @@ -5,18 +5,590 @@ #include #endif +#include + + +/* ------------------------------------------------------------------ */ +/* Bit string (BYTE/WORD/DWORD) test suite for CSVFileLib */ +/* */ +/* Set runTest to run it. testFail must come back 0, and pvTypeOk and */ +/* roundTripOk must both come back 1. */ +/* ------------------------------------------------------------------ */ + + +typedef struct readCase_typ { + char* Value; /* what the file contains */ + unsigned long DataType; /* CSV_TYPE_BYTE / WORD / DWORD */ + unsigned short ExpectStatus; /* 0, or the CSV_ERR_ expected */ + unsigned long ExpectStored; /* only checked when ExpectStatus is 0 */ +} readCase_typ; + + +static const readCase_typ readCases[] = { + + /* --- every accepted prefix, DWORD --- */ + { "0xFF", CSV_TYPE_DWORD, 0, 0xFF }, + { "0XFF", CSV_TYPE_DWORD, 0, 0xFF }, + { "16#FF", CSV_TYPE_DWORD, 0, 0xFF }, + { "$FF", CSV_TYPE_DWORD, 0, 0xFF }, + + /* --- bare digits are decimal, never hex --- */ + { "10", CSV_TYPE_DWORD, 0, 10 }, + { "255", CSV_TYPE_DWORD, 0, 255 }, + { "0", CSV_TYPE_DWORD, 0, 0 }, + + /* --- case, padding, whitespace --- */ + { "0xdeadbeef", CSV_TYPE_DWORD, 0, 0xDEADBEEF }, + { "0xDEADBEEF", CSV_TYPE_DWORD, 0, 0xDEADBEEF }, + { "16#000000FF", CSV_TYPE_DWORD, 0, 0xFF }, + { " 0x10 ", CSV_TYPE_DWORD, 0, 0x10 }, + { "0x00000000", CSV_TYPE_DWORD, 0, 0 }, + { "0000000000255", CSV_TYPE_DWORD, 0, 255 }, + + /* --- full 32 bit range, both notations --- */ + { "0xFFFFFFFF", CSV_TYPE_DWORD, 0, 0xFFFFFFFF }, + { "4294967295", CSV_TYPE_DWORD, 0, 0xFFFFFFFF }, + { "0x80000000", CSV_TYPE_DWORD, 0, 0x80000000 }, + + /* --- width limits per type --- */ + { "0xFF", CSV_TYPE_BYTE, 0, 0xFF }, + { "255", CSV_TYPE_BYTE, 0, 255 }, + { "0xFFFF", CSV_TYPE_WORD, 0, 0xFFFF }, + { "65535", CSV_TYPE_WORD, 0, 65535 }, + + /* --- out of range for the target width --- */ + { "0x100", CSV_TYPE_BYTE, CSV_ERR_INVALIDVALUE, 0 }, + { "256", CSV_TYPE_BYTE, CSV_ERR_INVALIDVALUE, 0 }, + { "0x10000", CSV_TYPE_WORD, CSV_ERR_INVALIDVALUE, 0 }, + { "65536", CSV_TYPE_WORD, CSV_ERR_INVALIDVALUE, 0 }, + + /* --- out of range for a UDINT --- */ + { "0x100000000", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "4294967296", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "99999999999", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + + /* --- malformed --- */ + { "", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { " ", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "0x", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "16#", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "$", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "0xGG", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "FF", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "0xFF junk", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "12abc", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "-0x10", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "-1", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "+0x10", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "0x0xFF", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + { "1_000", CSV_TYPE_DWORD, CSV_ERR_INVALIDVALUE, 0 }, + +}; + + +typedef struct writeCase_typ { + unsigned long Value; + unsigned long DataType; + unsigned char Format; /* CSV_BITFORMAT_ */ + char* Expect; +} writeCase_typ; + + +static const writeCase_typ writeCases[] = { + + /* --- padded to the width of the source type --- */ + { 0xFF, CSV_TYPE_BYTE, CSV_BITFORMAT_HEX_0X, "0xFF" }, + { 0x05, CSV_TYPE_BYTE, CSV_BITFORMAT_HEX_0X, "0x05" }, + { 0xFF, CSV_TYPE_WORD, CSV_BITFORMAT_HEX_0X, "0x00FF" }, + { 0xFF, CSV_TYPE_DWORD, CSV_BITFORMAT_HEX_0X, "0x000000FF" }, + + /* --- IEC notation --- */ + { 0xFF, CSV_TYPE_BYTE, CSV_BITFORMAT_HEX_IEC, "16#FF" }, + { 0xFF, CSV_TYPE_DWORD, CSV_BITFORMAT_HEX_IEC, "16#000000FF" }, + + /* --- decimal, deliberately not padded --- */ + { 0xFF, CSV_TYPE_BYTE, CSV_BITFORMAT_DECIMAL, "255" }, + { 0x05, CSV_TYPE_BYTE, CSV_BITFORMAT_DECIMAL, "5" }, + { 0xFFFFFFFF, CSV_TYPE_DWORD, CSV_BITFORMAT_DECIMAL, "4294967295" }, + + /* --- extremes --- */ + { 0, CSV_TYPE_DWORD, CSV_BITFORMAT_HEX_0X, "0x00000000" }, + { 0xFFFFFFFF, CSV_TYPE_DWORD, CSV_BITFORMAT_HEX_0X, "0xFFFFFFFF" }, + + /* --- an out of range setting must not silently corrupt output --- */ + { 0xFF, CSV_TYPE_BYTE, 99, "0xFF" }, + +}; + + +static void recordFail(char* what) +{ + testFail++; + if(strlen((char*)firstFail) == 0){ + strncpy((char*)firstFail, what, sizeof(firstFail)-1); + } +} + + +/* Confirm PV_ninfo really reports 17/18/19 for BYTE/WORD/DWORD on this + runtime. If it does not, the whole feature is unreachable. */ + +static void checkPvTypes(void) +{ + UDINT Len; + UINT Dim; + + pvTypeByte= 0xFFFFFFFF; + pvTypeWord= 0xFFFFFFFF; + pvTypeDword= 0xFFFFFFFF; + + PV_ninfo( "Default:tByte", &pvTypeByte, &Len, &Dim ); + PV_ninfo( "Default:tWord", &pvTypeWord, &Len, &Dim ); + PV_ninfo( "Default:tDword", &pvTypeDword, &Len, &Dim ); + + pvTypeOk= (pvTypeByte == CSV_TYPE_BYTE) + && (pvTypeWord == CSV_TYPE_WORD) + && (pvTypeDword == CSV_TYPE_DWORD); + + if(pvTypeOk) testPass++; else recordFail("PV_ninfo type codes"); +} + + +static void runReadCases(void) +{ + UDINT i; + CSVFileVariable_typ Var; + UDINT Storage; + UDINT Got; + UINT Status; + + for(i=0; i<(sizeof(readCases)/sizeof(readCases[0])); i++){ + + Storage= 0xA5A5A5A5; + + memset(&Var, 0, sizeof(Var)); + strcpy(Var.Name, "testVar"); + strcpy(Var.Value, readCases[i].Value); + Var.DataType= readCases[i].DataType; + Var.Address= (UDINT)&Storage; + Var.Length= 4; + + Status= csvOpenVar( 1, &Var, &CsvMgr ); + + if(Status != readCases[i].ExpectStatus){ + recordFail(readCases[i].Value); + continue; + } + + if(Status == 0){ + + /* Compare only the bytes the type actually writes */ + Got= Storage; + if(readCases[i].DataType == CSV_TYPE_BYTE) Got= Storage & 0xFF; + else if(readCases[i].DataType == CSV_TYPE_WORD) Got= Storage & 0xFFFF; + + if(Got != readCases[i].ExpectStored){ + recordFail(readCases[i].Value); + continue; + } + + } + else{ + + /* A rejected value must leave the target untouched */ + if(Storage != 0xA5A5A5A5){ + recordFail(readCases[i].Value); + continue; + } + + } + + testPass++; + + } +} + + +static void runWriteCases(void) +{ + UDINT i; + CSVFileVariable_typ Var; + UDINT Storage; + UINT Status; + + for(i=0; i<(sizeof(writeCases)/sizeof(writeCases[0])); i++){ + + Storage= writeCases[i].Value; + + memset(&Var, 0, sizeof(Var)); + strcpy(Var.Name, "testVar"); + Var.DataType= writeCases[i].DataType; + Var.Address= (UDINT)&Storage; + Var.Length= 4; + + CsvMgr.IN.CFG.BitStringFormat= writeCases[i].Format; + + Status= csvSaveVar( 1, &Var, &CsvMgr ); + + if( (Status != 0) || (strcmp(Var.Value, writeCases[i].Expect) != 0) ){ + recordFail(writeCases[i].Expect); + } + else{ + testPass++; + } + + } + + CsvMgr.IN.CFG.BitStringFormat= CSV_BITFORMAT_HEX_0X; +} + + +/* Every value the formatter can produce must read back as itself, for + each of the three formats and each of the three widths. */ + +static void runRoundTrip(void) +{ + UDINT iFmt, iType, iVal; + CSVFileVariable_typ Var; + UDINT Storage, Original; + STRING Written[CSV_STRLEN_VARVALUE+1]; + + UDINT types[3]; + UDINT values[4]; + + types[0]= CSV_TYPE_BYTE; + types[1]= CSV_TYPE_WORD; + types[2]= CSV_TYPE_DWORD; + + for(iFmt=0; iFmt<3; iFmt++){ + for(iType=0; iType<3; iType++){ + + values[0]= 0; + values[1]= 1; + + if(types[iType] == CSV_TYPE_BYTE){ + values[2]= 0x7F; + values[3]= 0xFF; + } + else if(types[iType] == CSV_TYPE_WORD){ + values[2]= 0x7FFF; + values[3]= 0xFFFF; + } + else{ + values[2]= 0x7FFFFFFF; + values[3]= 0xFFFFFFFF; + } + + for(iVal=0; iVal<4; iVal++){ + + Original= values[iVal]; + Storage= Original; + + memset(&Var, 0, sizeof(Var)); + strcpy(Var.Name, "testVar"); + Var.DataType= types[iType]; + Var.Address= (UDINT)&Storage; + Var.Length= 4; + + CsvMgr.IN.CFG.BitStringFormat= (USINT)iFmt; + + if( csvSaveVar( 1, &Var, &CsvMgr ) != 0 ){ + recordFail("round trip save"); + continue; + } + + strcpy(Written, Var.Value); + + Storage= 0; + strcpy(Var.Value, Written); + + if( csvOpenVar( 1, &Var, &CsvMgr ) != 0 ){ + recordFail(Written); + continue; + } + + if(Storage != Original){ + recordFail(Written); + continue; + } + + testPass++; + + } + } + } + + CsvMgr.IN.CFG.BitStringFormat= CSV_BITFORMAT_HEX_0X; +} + + void _INIT ProgramInit(void) { + memset(&CsvMgr, 0, sizeof(CsvMgr)); + CsvMgr.IN.CFG.DisableLogging= 1; + strcpy(CsvMgr.IN.PAR.FileDevice, "USER"); + CSVFn_Init(&CsvMgr); + testState= 0; } + void _CYCLIC ProgramCyclic(void) { + CSVFn_Cyclic(&CsvMgr); + + /* Run once automatically a few scans after boot, so no external + trigger is needed. runTest re-runs it on demand. */ + + if(bootDelay < 50){ + bootDelay++; + if(bootDelay == 50) runTest= 1; + } + + switch(testState){ + + case 0: + + if(runTest){ + + runTest= 0; + testPass= 0; + testFail= 0; + testDone= 0; + roundTripOk= 0; + strcpy((char*)firstFail, ""); + + checkPvTypes(); + runReadCases(); + runWriteCases(); + runRoundTrip(); + + /* Now the end to end path: write real PVs to a file, + clear them, and read the file back. This is the only + part that exercises csvGetVarInfo/PV_ninfo for real. */ + + tByte= 0xAB; + tWord= 0xBEEF; + tDword= 0xDEADBEEF; + tUsint= 42; + + strcpy(CsvMgr.IN.PAR.FileName, "bitstring.csv"); + strcpy(CsvMgr.IN.PAR.VariableList[0], "Default:tByte"); + strcpy(CsvMgr.IN.PAR.VariableList[1], "Default:tWord"); + strcpy(CsvMgr.IN.PAR.VariableList[2], "Default:tDword"); + strcpy(CsvMgr.IN.PAR.VariableList[3], "Default:tUsint"); + strcpy(CsvMgr.IN.PAR.VariableList[4], ""); + + CsvMgr.IN.CMD.SaveVariableListToFile= 1; + + testState= 1; + + } + + break; + + + case 1: + + if(CsvMgr.OUT.STAT.Done){ + + CsvMgr.IN.CMD.SaveVariableListToFile= 0; + + /* Wipe the PVs so a successful read is unambiguous */ + tByte= 0; + tWord= 0; + tDword= 0; + tUsint= 0; + + CsvMgr.IN.CMD.OpenFile= 1; + testState= 2; + + } + else if(CsvMgr.OUT.STAT.Error){ + CsvMgr.IN.CMD.SaveVariableListToFile= 0; + recordFail("save to file"); + CsvMgr.IN.CMD.AcknowledgeError= 1; + testState= 3; + } + + break; + + + case 2: + + if(CsvMgr.OUT.STAT.Done){ + + CsvMgr.IN.CMD.OpenFile= 0; + + roundTripOk= (tByte == 0xAB) + && (tWord == 0xBEEF) + && (tDword == 0xDEADBEEF) + && (tUsint == 42); + + if(roundTripOk) testPass++; else recordFail("file round trip"); + + testState= 5; + + } + else if(CsvMgr.OUT.STAT.Error){ + CsvMgr.IN.CMD.OpenFile= 0; + recordFail("open file"); + CsvMgr.IN.CMD.AcknowledgeError= 1; + testState= 3; + } + + break; + + + case 3: + + CsvMgr.IN.CMD.AcknowledgeError= 0; + testDone= 1; + testState= 0; + break; + + + case 4: + + if(CsvMgr.OUT.STAT.Done || CsvMgr.OUT.STAT.Error){ + CsvMgr.IN.CMD.SaveVariableListToFile= 0; + CsvMgr.IN.CMD.AcknowledgeError= CsvMgr.OUT.STAT.Error; + testDone= 1; + testState= 3; + } + break; + + + /* Read a hand written file, exercising csvParseLine and + csvGetVarInfo rather than calling csvOpenVar directly */ + + case 5: + + tByte= 0; tWord= 0; tDword= 0; tUsint= 0; + + strcpy(CsvMgr.IN.PAR.FileName, "crafted.csv"); + CsvMgr.IN.CMD.OpenFile= 1; + testState= 6; + break; + + + case 6: + + if(CsvMgr.OUT.STAT.Done || CsvMgr.OUT.STAT.Error){ + + CsvMgr.IN.CMD.OpenFile= 0; + + c1Byte= tByte; + c1Word= tWord; + c1Dword= tDword; + c1Usint= tUsint; + c1Status= CsvMgr.OUT.STAT.ErrorID; + + if( (c1Byte == 0x7F) && (c1Word == 0x00FF) + && (c1Dword == 0xFFFFFFFF) && (c1Usint == 99) ){ + testPass++; + } + else{ + recordFail("crafted.csv values"); + } + + CsvMgr.IN.CMD.AcknowledgeError= CsvMgr.OUT.STAT.Error; + testState= 7; + + } + + break; + + + /* A file with one out of range line: the bad line must fail and + the good lines must still load */ + + case 7: + + CsvMgr.IN.CMD.AcknowledgeError= 0; + + tByte= 0x11; tWord= 0; tDword= 0; + + strcpy(CsvMgr.IN.PAR.FileName, "badline.csv"); + CsvMgr.IN.CMD.OpenFile= 1; + testState= 8; + break; + + + case 8: + + if(CsvMgr.OUT.STAT.Done || CsvMgr.OUT.STAT.Error){ + + CsvMgr.IN.CMD.OpenFile= 0; + + c2Byte= tByte; + c2Word= tWord; + c2Dword= tDword; + c2ErrorID= CsvMgr.OUT.STAT.ErrorID; + + /* 0x1FF does not fit a BYTE, so tByte keeps 0x11, the + other two load, and the operation reports a line failure */ + + if( (c2Byte == 0x11) && (c2Word == 0x1234) + && (c2Dword == 0xABCDEF) && (c2ErrorID == CSV_ERR_LINEFAILURE) ){ + testPass++; + } + else{ + recordFail("badline.csv handling"); + } + + CsvMgr.IN.CMD.AcknowledgeError= CsvMgr.OUT.STAT.Error; + testState= 9; + + } + + break; + + + case 9: + + CsvMgr.IN.CMD.AcknowledgeError= 0; + + strcpy(CsvMgr.IN.PAR.FileName, "result.csv"); + strcpy(CsvMgr.IN.PAR.VariableList[0], "Default:testPass"); + strcpy(CsvMgr.IN.PAR.VariableList[1], "Default:testFail"); + strcpy(CsvMgr.IN.PAR.VariableList[2], "Default:firstFail"); + strcpy(CsvMgr.IN.PAR.VariableList[3], "Default:pvTypeByte"); + strcpy(CsvMgr.IN.PAR.VariableList[4], "Default:pvTypeWord"); + strcpy(CsvMgr.IN.PAR.VariableList[5], "Default:pvTypeDword"); + strcpy(CsvMgr.IN.PAR.VariableList[6], "Default:pvTypeOk"); + strcpy(CsvMgr.IN.PAR.VariableList[7], "Default:roundTripOk"); + strcpy(CsvMgr.IN.PAR.VariableList[8], "Default:c1Byte"); + strcpy(CsvMgr.IN.PAR.VariableList[9], "Default:c1Word"); + strcpy(CsvMgr.IN.PAR.VariableList[10], "Default:c1Dword"); + strcpy(CsvMgr.IN.PAR.VariableList[11], "Default:c1Usint"); + strcpy(CsvMgr.IN.PAR.VariableList[12], "Default:c2Byte"); + strcpy(CsvMgr.IN.PAR.VariableList[13], "Default:c2Word"); + strcpy(CsvMgr.IN.PAR.VariableList[14], "Default:c2Dword"); + strcpy(CsvMgr.IN.PAR.VariableList[15], "Default:c2ErrorID"); + strcpy(CsvMgr.IN.PAR.VariableList[16], ""); + + CsvMgr.IN.CMD.SaveVariableListToFile= 1; + testState= 10; + break; + + + case 10: + + if(CsvMgr.OUT.STAT.Done || CsvMgr.OUT.STAT.Error){ + CsvMgr.IN.CMD.SaveVariableListToFile= 0; + CsvMgr.IN.CMD.AcknowledgeError= CsvMgr.OUT.STAT.Error; + testDone= 1; + testState= 3; + } + + break; + + } } + void _EXIT ProgramExit(void) { - } - diff --git a/example/AsProject/Logical/Programs/Default/Variables.var b/example/AsProject/Logical/Programs/Default/Variables.var index 3e8a206..d5575d0 100644 --- a/example/AsProject/Logical/Programs/Default/Variables.var +++ b/example/AsProject/Logical/Programs/Default/Variables.var @@ -1,6 +1,34 @@ VAR + CsvMgr : CSVFileMgr_typ; + runTest : BOOL; (*Rising edge runs the bit string test suite*) + testState : DINT; + testPass : UDINT; + testFail : UDINT; + firstFail : STRING[120]; + testDone : BOOL; + pvTypeByte : UDINT; (*DataType PV_ninfo reports for a BYTE*) + pvTypeWord : UDINT; (*DataType PV_ninfo reports for a WORD*) + pvTypeDword : UDINT; (*DataType PV_ninfo reports for a DWORD*) + pvTypeOk : BOOL; (*Set when the reported types match CSV_TYPE_BYTE/WORD/DWORD*) + bootDelay : UDINT; + c1Byte : UDINT; + c1Word : UDINT; + c1Dword : UDINT; + c1Usint : UDINT; + c1Status : UINT; + c2Byte : UDINT; + c2Word : UDINT; + c2Dword : UDINT; + c2ErrorID : UINT; + roundTripOk : BOOL; (*Set when the file round trip returned the original values*) +END_VAR +VAR + tByte : BYTE; (*Round trip targets, written by the file*) + tWord : WORD; + tDword : DWORD; + tUsint : USINT; (*Control: an already supported type*) END_VAR VAR CONSTANT diff --git a/example/AsProject/Physical/ARsim/Config.pkg b/example/AsProject/Physical/ARsim/Config.pkg new file mode 100644 index 0000000..8fe8fdb --- /dev/null +++ b/example/AsProject/Physical/ARsim/Config.pkg @@ -0,0 +1,10 @@ + + + + + Hardware.hw + Hardware.hwl + PC + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/Hardware.hw b/example/AsProject/Physical/ARsim/Hardware.hw new file mode 100644 index 0000000..fa12c7f --- /dev/null +++ b/example/AsProject/Physical/ARsim/Hardware.hw @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/Hardware.hwl b/example/AsProject/Physical/ARsim/Hardware.hwl new file mode 100644 index 0000000..e69de29 diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg new file mode 100644 index 0000000..973c732 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateRevocationLists/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg new file mode 100644 index 0000000..683b25c --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/CertificateSigningRequests/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg new file mode 100644 index 0000000..66601a5 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Certificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg new file mode 100644 index 0000000..08d5735 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/Package.pkg @@ -0,0 +1,8 @@ + + + + + Certificates + PrivateKeys + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg new file mode 100644 index 0000000..b03ca4c --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/OwnCertificates/PrivateKeys/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/Package.pkg new file mode 100644 index 0000000..3748db4 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/Package.pkg @@ -0,0 +1,10 @@ + + + + + OwnCertificates + ThirdPartyCertificates + CertificateRevocationLists + CertificateSigningRequests + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg new file mode 100644 index 0000000..7ea4734 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/Package.pkg @@ -0,0 +1,7 @@ + + + + + SoftwareCertificates + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg new file mode 100644 index 0000000..0c531bc --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/CertificateStore/ThirdPartyCertificates/SoftwareCertificates/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Package.pkg new file mode 100644 index 0000000..591a078 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Package.pkg @@ -0,0 +1,7 @@ + + + + + Rules.firewallRules + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Rules.firewallRules b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Rules.firewallRules new file mode 100644 index 0000000..8748b19 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Firewall/Rules.firewallRules @@ -0,0 +1,6 @@ + + + + + + diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/ManagedCertificateStores/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/ManagedCertificateStores/Package.pkg new file mode 100644 index 0000000..eb0989c --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/ManagedCertificateStores/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Package.pkg new file mode 100644 index 0000000..644ca07 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/Package.pkg @@ -0,0 +1,11 @@ + + + + + UserRoleSystem + CertificateStore + ManagedCertificateStores + TransportLayerSecurity + Firewall + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg new file mode 100644 index 0000000..58a4ff8 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/TransportLayerSecurity/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/BRRole.brrole b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/BRRole.brrole new file mode 100644 index 0000000..6795c17 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/BRRole.brrole @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Package.pkg b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Package.pkg new file mode 100644 index 0000000..4d74aab --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Package.pkg @@ -0,0 +1,9 @@ + + + + + BRRole.brrole + User.user + Role.role + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role new file mode 100644 index 0000000..7d2cd6a --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user new file mode 100644 index 0000000..c133b8f --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/Package.pkg b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/Package.pkg new file mode 100644 index 0000000..1faa651 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/Package.pkg @@ -0,0 +1,8 @@ + + + + + UaCsConfig.uacfg + UaDvConfig.uadcfg + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaCsConfig.uacfg b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaCsConfig.uacfg new file mode 100644 index 0000000..1c08ea0 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaCsConfig.uacfg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaDvConfig.uadcfg b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaDvConfig.uadcfg new file mode 100644 index 0000000..3c2eab6 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaCs/UaDvConfig.uadcfg @@ -0,0 +1,5 @@ + + + + + diff --git a/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaFx/Package.pkg b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaFx/Package.pkg new file mode 100644 index 0000000..40ab206 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Connectivity/OpcUaFx/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Connectivity/Package.pkg b/example/AsProject/Physical/ARsim/PC/Connectivity/Package.pkg new file mode 100644 index 0000000..1727635 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Connectivity/Package.pkg @@ -0,0 +1,8 @@ + + + + + OpcUaCs + OpcUaFx + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Cpu.per b/example/AsProject/Physical/ARsim/PC/Cpu.per new file mode 100644 index 0000000..fb5c92e --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Cpu.per @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Cpu.pkg b/example/AsProject/Physical/ARsim/PC/Cpu.pkg new file mode 100644 index 0000000..7e9af97 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Cpu.pkg @@ -0,0 +1,21 @@ + + + + + Cpu.sw + Cpu.per + IoMap.iom + PvMap.vvm + Connectivity + TextSystem + UnitSystem + AccessAndSecurity + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/Cpu.sw b/example/AsProject/Physical/ARsim/PC/Cpu.sw new file mode 100644 index 0000000..8300fe2 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/Cpu.sw @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/example/AsProject/Physical/ARsim/PC/IoMap.iom b/example/AsProject/Physical/ARsim/PC/IoMap.iom new file mode 100644 index 0000000..fb5c92e --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/IoMap.iom @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/PvMap.vvm b/example/AsProject/Physical/ARsim/PC/PvMap.vvm new file mode 100644 index 0000000..fb5c92e --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/PvMap.vvm @@ -0,0 +1,4 @@ + +VAR_CONFIG + +END_VAR \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/TextSystem/Package.pkg b/example/AsProject/Physical/ARsim/PC/TextSystem/Package.pkg new file mode 100644 index 0000000..24b827e --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/TextSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/UnitSystem/Package.pkg b/example/AsProject/Physical/ARsim/PC/UnitSystem/Package.pkg new file mode 100644 index 0000000..f45ab49 --- /dev/null +++ b/example/AsProject/Physical/ARsim/PC/UnitSystem/Package.pkg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/Physical.pkg b/example/AsProject/Physical/Physical.pkg index 351df13..7fed428 100644 --- a/example/AsProject/Physical/Physical.pkg +++ b/example/AsProject/Physical/Physical.pkg @@ -2,6 +2,7 @@ + ARsim Intel ARM diff --git a/example/UserPartition/ARsim/badline.csv b/example/UserPartition/ARsim/badline.csv new file mode 100644 index 0000000..12067bb --- /dev/null +++ b/example/UserPartition/ARsim/badline.csv @@ -0,0 +1,4 @@ +// one bad line among good ones +Default:tByte,0x1FF +Default:tWord,0x1234 +Default:tDword,$ABCDEF diff --git a/example/UserPartition/ARsim/crafted.csv b/example/UserPartition/ARsim/crafted.csv new file mode 100644 index 0000000..bfe4b6f --- /dev/null +++ b/example/UserPartition/ARsim/crafted.csv @@ -0,0 +1,5 @@ +// hand written, awkward but valid +Default:tByte, 0x7F , description with, commas +Default:tWord,16#00FF +Default:tDword, 4294967295 +Default:tUsint, 99 diff --git a/src/Ar/CSVFileLib/CHANGELOG.md b/src/Ar/CSVFileLib/CHANGELOG.md index 20c4f38..d2c2035 100644 --- a/src/Ar/CSVFileLib/CHANGELOG.md +++ b/src/Ar/CSVFileLib/CHANGELOG.md @@ -1,4 +1,6 @@ 2.1.0 - Add support for BYTE, WORD and DWORD variables + BEHAVIOUR CHANGE: opening a file now writes BYTE/WORD/DWORD variables that + were previously left untouched and reported as an unsupported type Written as hex by default; IN.CFG.BitStringFormat selects 0x, 16# or decimal Reading accepts hex (0x, 16#, $) and decimal regardless of the setting Requires StringExt 1.1.0 diff --git a/src/Ar/CSVFileLib/csvOpenVar.c b/src/Ar/CSVFileLib/csvOpenVar.c index 79a7d23..dfc57fa 100644 --- a/src/Ar/CSVFileLib/csvOpenVar.c +++ b/src/Ar/CSVFileLib/csvOpenVar.c @@ -495,6 +495,11 @@ unsigned short csvOpenVar(unsigned long LineNumber, struct CSVFileVariable_typ* case CSV_TYPE_WORD: case CSV_TYPE_DWORD: + /* Initialised because csvParseBitString() leaves it alone on failure, + and the range check below must not read an indeterminate value */ + + ValueUdint= 0; + ParseStatus= csvParseBitString( pVariable->Value, &ValueUdint ); if( pVariable->DataType == CSV_TYPE_BYTE ) MaxValue= CSV_MAX_BYTE; From 4bda24ec91b355db95dcd1956a0c44c6b3103d68 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Fri, 21 Aug 2026 15:00:06 -0700 Subject: [PATCH 4/5] Address round 2 review of the test suite and ARsim configuration The library change itself came back clean; these are all fixes to the suite and the configuration around it. A hang could read as a pass. The documented criterion was "testFail is 0", which stays true if a file operation never completes and the suite parks mid-run. Added suiteOk, which requires no failures, the full expected assertion count, and that the suite actually finished. Verified by removing an input file: suiteOk comes back FALSE with testPass 92 and firstFail naming the phase, and TRUE again once restored. A re-run left stale state. CSVFn_Cyclic walks every VariableList entry regardless of the empty terminator, so the shorter list built for bitstring.csv inherited rows from the longer result.csv list. Both lists are now cleared before being built. Also from review: - Assert that crafted.csv loaded without a line failure, not just that the four values match - Give an empty input its own label so firstFail is never blank - Remove the unreachable state 4 - Note the little endian assumption in the narrow store comparison Configuration hygiene, all inherited from the sample this was derived from rather than intended: - Replace the User.user carrying a BR_Engineer argon2id hash with the Anonymous/Everyone one the sibling configurations use - Name the ConfigurationID AsProject_ARsim, matching Intel and ARM - Write a real Hardware.hwl instead of committing a 0 byte file README rewritten: the partition.json mapping is the Loupe VS Code PLC Toolkit / bnr-build mechanism, not something LPM or the AS build does, so following the old wording left the input files absent. It now also says CI compiles the suite but does not run it, states suiteOk as the verdict, and records that the PV_ninfo codes were measured on AR 6.7.6 while the configurations pin 6.6.2. Co-Authored-By: Claude Opus 5 --- .gitignore | 2 + README.md | 39 +++++--- .../AsProject/Logical/Programs/Default/Main.c | 95 ++++++++++++------- .../Logical/Programs/Default/Variables.var | 1 + example/AsProject/Physical/ARsim/Hardware.hw | 2 +- example/AsProject/Physical/ARsim/Hardware.hwl | 9 ++ .../UserRoleSystem/Role.role | 10 +- .../UserRoleSystem/User.user | 7 +- 8 files changed, 113 insertions(+), 52 deletions(-) diff --git a/.gitignore b/.gitignore index 20aff9e..bfdf865 100644 --- a/.gitignore +++ b/.gitignore @@ -47,3 +47,5 @@ ignored/ # Python **/__pycache__/ +example/UserPartition/*/result.csv +example/UserPartition/*/bitstring.csv diff --git a/README.md b/README.md index 30a4134..b70da97 100644 --- a/README.md +++ b/README.md @@ -34,21 +34,38 @@ The example project carries a self checking test suite for the bit string It runs automatically a few scans after boot, and can be re-run by setting `runTest`. -The `ARsim` configuration exists so the suite can actually be executed: +The `ARsim` configuration exists so the suite can actually be executed; the +`Intel` and `ARM` configurations target hardware. CI compiles all three, but +does not run the suite - executing it is a manual step. -``` -lpm install -# build and deploy the ARsim configuration, then read the results -``` +## Running it -Results are written to `result.csv` on the USER file device. `testFail` must -be 0, and `pvTypeOk` and `roundTripOk` must both be TRUE. `firstFail` names -the first case that failed, if any. +The suite reads two hand written input files, `crafted.csv` and `badline.csv`, +from the USER file device. They live in `example/UserPartition/ARsim/` and +have to be present on the device before the suite runs, otherwise the file +phases cannot complete. -`example/UserPartition/ARsim/` holds two hand written input files that the -suite reads (`crafted.csv`, `badline.csv`); they are copied to the USER file -device by the `.loupe/partition.json` mapping. +Either copy them onto the USER file device by hand, or let a tool that reads +`example/AsProject/.loupe/partition.json` place them for you. That file is the +Loupe VS Code PLC Toolkit / bnr-build partition mapping - it is not something +LPM or the Automation Studio build does on its own. +## Reading the result + +The suite writes `result.csv` to the USER file device. + +**`suiteOk` is the verdict.** It is TRUE only when there were no failures, the +full expected number of assertions actually ran, and the suite reached the +end. Checking `testFail` alone is not enough: a file operation that never +completes leaves `testFail` at 0, which would otherwise read as a pass. + +`firstFail` names the first case that failed, if any. The remaining values in +the file are there to make a failure diagnosable - the data types PV_ninfo +reported, and the values read back from each input file. + +Note that the PV_ninfo data type codes were measured on ARsim running +Automation Runtime 6.7.6. The configurations in this project pin 6.6.2, which +is what CI compiles against. ## Licensing diff --git a/example/AsProject/Logical/Programs/Default/Main.c b/example/AsProject/Logical/Programs/Default/Main.c index aa4bbd2..94f0ae1 100644 --- a/example/AsProject/Logical/Programs/Default/Main.c +++ b/example/AsProject/Logical/Programs/Default/Main.c @@ -11,10 +11,19 @@ /* ------------------------------------------------------------------ */ /* Bit string (BYTE/WORD/DWORD) test suite for CSVFileLib */ /* */ -/* Set runTest to run it. testFail must come back 0, and pvTypeOk and */ -/* roundTripOk must both come back 1. */ +/* Runs once a few scans after boot; set runTest to run it again. */ +/* */ +/* The suite PASSED only when suiteOk is 1. That checks testDone as */ +/* well as the counts, because a file operation that never completes */ +/* would otherwise leave testFail at 0 and read as a pass. */ /* ------------------------------------------------------------------ */ +/* Every assertion the suite makes, counted at the call sites: + 1 PV_ninfo + 41 read + 12 write + 36 round trip + 1 file round trip + + 1 crafted.csv + 1 badline.csv */ + +#define CSVTEST_EXPECTED_ASSERTIONS 93 + typedef struct readCase_typ { char* Value; /* what the file contains */ @@ -124,8 +133,15 @@ static const writeCase_typ writeCases[] = { static void recordFail(char* what) { testFail++; + if(strlen((char*)firstFail) == 0){ - strncpy((char*)firstFail, what, sizeof(firstFail)-1); + + /* An empty input is itself a case, so it needs a label of its own + rather than leaving firstFail looking unset */ + + if(strlen(what) == 0) strcpy((char*)firstFail, "(empty value)"); + else strncpy((char*)firstFail, what, sizeof(firstFail)-1); + } } @@ -182,7 +198,10 @@ static void runReadCases(void) if(Status == 0){ - /* Compare only the bytes the type actually writes */ + /* Compare only the bytes the type actually writes. This reads the + low bytes, which assumes a little endian target - true for + ARsim/x86 and for the X20 ARM target this project builds. */ + Got= Storage; if(readCases[i].DataType == CSV_TYPE_BYTE) Got= Storage & 0xFF; else if(readCases[i].DataType == CSV_TYPE_WORD) Got= Storage & 0xFFFF; @@ -372,6 +391,12 @@ void _CYCLIC ProgramCyclic(void) tDword= 0xDEADBEEF; tUsint= 42; + /* Cleared in full: CSVFn_Cyclic walks every entry regardless of + the empty terminator, so a shorter list would leave rows + behind from the previous run */ + + memset( CsvMgr.IN.PAR.VariableList, 0, sizeof(CsvMgr.IN.PAR.VariableList) ); + strcpy(CsvMgr.IN.PAR.FileName, "bitstring.csv"); strcpy(CsvMgr.IN.PAR.VariableList[0], "Default:tByte"); strcpy(CsvMgr.IN.PAR.VariableList[1], "Default:tWord"); @@ -443,23 +468,12 @@ void _CYCLIC ProgramCyclic(void) case 3: CsvMgr.IN.CMD.AcknowledgeError= 0; + testDone= 1; testState= 0; break; - case 4: - - if(CsvMgr.OUT.STAT.Done || CsvMgr.OUT.STAT.Error){ - CsvMgr.IN.CMD.SaveVariableListToFile= 0; - CsvMgr.IN.CMD.AcknowledgeError= CsvMgr.OUT.STAT.Error; - testDone= 1; - testState= 3; - } - - break; - - /* Read a hand written file, exercising csvParseLine and csvGetVarInfo rather than calling csvOpenVar directly */ @@ -485,7 +499,7 @@ void _CYCLIC ProgramCyclic(void) c1Usint= tUsint; c1Status= CsvMgr.OUT.STAT.ErrorID; - if( (c1Byte == 0x7F) && (c1Word == 0x00FF) + if( (c1Status == 0) && (c1Byte == 0x7F) && (c1Word == 0x00FF) && (c1Dword == 0xFFFFFFFF) && (c1Usint == 99) ){ testPass++; } @@ -550,24 +564,37 @@ void _CYCLIC ProgramCyclic(void) CsvMgr.IN.CMD.AcknowledgeError= 0; + /* Computed before the results are written, so the file carries + this run's verdict. The count is checked as well as the + failure tally, so a phase that never ran cannot pass by + silence. */ + + suiteOk= (testFail == 0) + && (testPass == CSVTEST_EXPECTED_ASSERTIONS) + && (pvTypeOk != 0) + && (roundTripOk != 0); + + memset( CsvMgr.IN.PAR.VariableList, 0, sizeof(CsvMgr.IN.PAR.VariableList) ); + strcpy(CsvMgr.IN.PAR.FileName, "result.csv"); - strcpy(CsvMgr.IN.PAR.VariableList[0], "Default:testPass"); - strcpy(CsvMgr.IN.PAR.VariableList[1], "Default:testFail"); - strcpy(CsvMgr.IN.PAR.VariableList[2], "Default:firstFail"); - strcpy(CsvMgr.IN.PAR.VariableList[3], "Default:pvTypeByte"); - strcpy(CsvMgr.IN.PAR.VariableList[4], "Default:pvTypeWord"); - strcpy(CsvMgr.IN.PAR.VariableList[5], "Default:pvTypeDword"); - strcpy(CsvMgr.IN.PAR.VariableList[6], "Default:pvTypeOk"); - strcpy(CsvMgr.IN.PAR.VariableList[7], "Default:roundTripOk"); - strcpy(CsvMgr.IN.PAR.VariableList[8], "Default:c1Byte"); - strcpy(CsvMgr.IN.PAR.VariableList[9], "Default:c1Word"); - strcpy(CsvMgr.IN.PAR.VariableList[10], "Default:c1Dword"); - strcpy(CsvMgr.IN.PAR.VariableList[11], "Default:c1Usint"); - strcpy(CsvMgr.IN.PAR.VariableList[12], "Default:c2Byte"); - strcpy(CsvMgr.IN.PAR.VariableList[13], "Default:c2Word"); - strcpy(CsvMgr.IN.PAR.VariableList[14], "Default:c2Dword"); - strcpy(CsvMgr.IN.PAR.VariableList[15], "Default:c2ErrorID"); - strcpy(CsvMgr.IN.PAR.VariableList[16], ""); + strcpy(CsvMgr.IN.PAR.VariableList[0], "Default:suiteOk"); + strcpy(CsvMgr.IN.PAR.VariableList[1], "Default:testPass"); + strcpy(CsvMgr.IN.PAR.VariableList[2], "Default:testFail"); + strcpy(CsvMgr.IN.PAR.VariableList[3], "Default:firstFail"); + strcpy(CsvMgr.IN.PAR.VariableList[4], "Default:pvTypeByte"); + strcpy(CsvMgr.IN.PAR.VariableList[5], "Default:pvTypeWord"); + strcpy(CsvMgr.IN.PAR.VariableList[6], "Default:pvTypeDword"); + strcpy(CsvMgr.IN.PAR.VariableList[7], "Default:pvTypeOk"); + strcpy(CsvMgr.IN.PAR.VariableList[8], "Default:roundTripOk"); + strcpy(CsvMgr.IN.PAR.VariableList[9], "Default:c1Byte"); + strcpy(CsvMgr.IN.PAR.VariableList[10], "Default:c1Word"); + strcpy(CsvMgr.IN.PAR.VariableList[11], "Default:c1Dword"); + strcpy(CsvMgr.IN.PAR.VariableList[12], "Default:c1Usint"); + strcpy(CsvMgr.IN.PAR.VariableList[13], "Default:c2Byte"); + strcpy(CsvMgr.IN.PAR.VariableList[14], "Default:c2Word"); + strcpy(CsvMgr.IN.PAR.VariableList[15], "Default:c2Dword"); + strcpy(CsvMgr.IN.PAR.VariableList[16], "Default:c2ErrorID"); + strcpy(CsvMgr.IN.PAR.VariableList[17], ""); CsvMgr.IN.CMD.SaveVariableListToFile= 1; testState= 10; diff --git a/example/AsProject/Logical/Programs/Default/Variables.var b/example/AsProject/Logical/Programs/Default/Variables.var index d5575d0..b18f722 100644 --- a/example/AsProject/Logical/Programs/Default/Variables.var +++ b/example/AsProject/Logical/Programs/Default/Variables.var @@ -7,6 +7,7 @@ VAR testFail : UDINT; firstFail : STRING[120]; testDone : BOOL; + suiteOk : BOOL; (*The one flag that means PASSED: no failures, full count, and the suite actually finished*) pvTypeByte : UDINT; (*DataType PV_ninfo reports for a BYTE*) pvTypeWord : UDINT; (*DataType PV_ninfo reports for a WORD*) pvTypeDword : UDINT; (*DataType PV_ninfo reports for a DWORD*) diff --git a/example/AsProject/Physical/ARsim/Hardware.hw b/example/AsProject/Physical/ARsim/Hardware.hw index fa12c7f..7a6032a 100644 --- a/example/AsProject/Physical/ARsim/Hardware.hw +++ b/example/AsProject/Physical/ARsim/Hardware.hw @@ -2,7 +2,7 @@ - + diff --git a/example/AsProject/Physical/ARsim/Hardware.hwl b/example/AsProject/Physical/ARsim/Hardware.hwl index e69de29..4103978 100644 --- a/example/AsProject/Physical/ARsim/Hardware.hwl +++ b/example/AsProject/Physical/ARsim/Hardware.hwl @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role index 7d2cd6a..39281ec 100644 --- a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/Role.role @@ -1,5 +1,11 @@  - - + + + + + + + + \ No newline at end of file diff --git a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user index c133b8f..a6b973c 100644 --- a/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user +++ b/example/AsProject/Physical/ARsim/PC/AccessAndSecurity/UserRoleSystem/User.user @@ -1,10 +1,9 @@  - - - + + - + \ No newline at end of file From 765407ccc5bc5843b187527f5deecfaa34011941 Mon Sep 17 00:00:00 2001 From: Scott Claiborne Date: Fri, 21 Aug 2026 15:10:41 -0700 Subject: [PATCH 5/5] Clear suiteOk at the start of each run The flag was only ever assigned in state 9. The error paths in states 1 and 2 jump straight to state 3 and never reach it, so a re-run whose bitstring.csv save or open failed would keep the previous run's TRUE - a false pass on exactly the axis suiteOk was added to close, and the stale result.csv on the device would agree with it. Clearing on entry rather than recomputing on the way out keeps the file carrying this run's verdict, which was the reason it is computed before the save. Also correct the header comment, which claimed the expression tests testDone. It does not; completeness comes from state 9 being reachable only after the full chain, which is what the corrected wording says. Co-Authored-By: Claude Opus 5 --- example/AsProject/Logical/Programs/Default/Main.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/example/AsProject/Logical/Programs/Default/Main.c b/example/AsProject/Logical/Programs/Default/Main.c index 94f0ae1..2d4d265 100644 --- a/example/AsProject/Logical/Programs/Default/Main.c +++ b/example/AsProject/Logical/Programs/Default/Main.c @@ -13,9 +13,11 @@ /* */ /* Runs once a few scans after boot; set runTest to run it again. */ /* */ -/* The suite PASSED only when suiteOk is 1. That checks testDone as */ -/* well as the counts, because a file operation that never completes */ -/* would otherwise leave testFail at 0 and read as a pass. */ +/* The suite PASSED only when suiteOk is 1. It is cleared at the start */ +/* of every run and set only at the end, after the full assertion */ +/* count has been checked - so a run that fails part way and skips the */ +/* end, or one that never completes, leaves it 0. Checking testFail */ +/* alone is not enough: that stays 0 when a phase never ran. */ /* ------------------------------------------------------------------ */ /* Every assertion the suite makes, counted at the call sites: @@ -375,6 +377,13 @@ void _CYCLIC ProgramCyclic(void) testFail= 0; testDone= 0; roundTripOk= 0; + + /* Cleared here, not recomputed on the way out: the error + paths in states 1 and 2 jump straight to state 3 and + never reach the state 9 that sets it, so a previous + passing run would otherwise leave it TRUE */ + + suiteOk= 0; strcpy((char*)firstFail, ""); checkPvTypes();