JSONBuilder (FB) ¶ FUNCTION_BLOCK JSONBuilder The JSONBuilder is a helper FB for building JSON structures. It simplifies the setting of key-value pairs by setting the key and value in one call and using the value of type ANY. The structure is built using index fields. The root object has the index -1. All methods return the next index. The input diParentIndex is used to set the index of the parent element. Example: JSON String to create: { "Key1" : "Value1" , "Key2" : { "Key3" : 1234 } } VAR factory : JSON.JSONDataFactory ; eDataFactoryError : FBF.ERROR ; pJsonData : POINTER TO JSON.JSONData := factory.Create ( eError => eDataFactoryError ); fb_JBuilder : JSON.JSONBuilder ; wsValue : WSTRING ; diRootIndex , diObject1Index : DINT ; iValue : INT ; jsonArrayWriter : JSON.JSONByteArrayWriter ; wsJsonData : WSTRING ( 1000 ); xFirst : BOOL := TRUE ; END_VAR IF xFirst THEN fb_JBuilder ( pJsonData := pJsonData , diRootObj => diRootIndex ); wsValue := "Value1" ; fb_JBuilder.SetKeyWithValue ( "Key1" , wsValue , diParentIndex := diRootIndex ); diObject1Index := fb_JBuilder.SetKeyWithObject ( "Key2" , diParentIndex := diRootIndex ); iValue := 1234 ; fb_JBuilder.SetKeyWithValue ( "Key3" , iValue , diParentIndex := diObject1Index ); xFirst := FALSE ; END_IF jsonArrayWriter ( xExecute := TRUE , pwData := ADR ( wsJsonData ), udiSize := SIZEOF ( wsJsonData ), jsonData := pJsonData ^, xAsyncMode := FALSE ); InOut: Scope Name Type Input pJsonData POINTER TO JSONData Output diRootObj DINT Methods: Reset SetKey SetKeyWithArray SetKeyWithObject SetKeyWithValue SetKeyWithValueNull SetObject SetValue Structure: Reset (Method) SetKey (Method) SetKeyWithArray (Method) SetKeyWithObject (Method) SetKeyWithValue (Method) SetKeyWithValueNull (Method) SetObject (Method) SetValue (Method)
JSONByteArrayReader (FB) ¶ FUNCTION_BLOCK JSONByteArrayReader EXTENDS CBM.ETrig Function block for reading of JSON data arrays. InOut: Scope Name Type Initial Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrig Output xDone BOOL TRUE : Action successfully completed ETrig xBusy BOOL TRUE : Function block active ETrig xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrig Input pwData POINTER TO WORD Pointer to the data array with JSON data (WSTRING) xIgnoreValueStringLength BOOL If True, the error is ignored and the value is shortened and xValueTrunked will be TRUE xAsyncMode BOOL TRUE If true, reader runs in asynchronous mode Inout jsonData JSONData JSONData object Output eError ERROR xValueTruncated BOOL minimum one String value was > GParams.g_diMaxStringSize
JSONByteArrayWriter (FB) ¶ FUNCTION_BLOCK JSONByteArrayWriter EXTENDS CBM.ETrig Function block for writing of JSON data arrays. InOut: Scope Name Type Initial Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrig Output xDone BOOL TRUE : Action successfully completed ETrig xBusy BOOL TRUE : Function block active ETrig xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrig Input pwData POINTER TO WORD Pointer to the target array udiSize UDINT Size of the target array in bytes. xAsyncMode BOOL TRUE If true, writer runs in asynchronous mode wsLinebreak WSTRING(2) “$R$N” Line break character for the JSON writer. Use “” to disable formatting and get a compact format. Default: $R$N Inout jsonData JSONData JSONData object Output eError ERROR
JSONData (FB) ¶ FUNCTION_BLOCK JSONData EXTENDS FBF.InstanceBase implements IJSONData This function block contains the JSON data and provides methods to access and set data. Methods: Clear FindAllElementsByKey FindFirstElementByKey FindFirstValueByKey GetChildren GetElementByIndex SetArray SetBool SetEmpty SetKey SetLReal SetLRealRounded SetLint SetNull SetObject SetString Structure: Clear (Method) FindAllElementsByKey (Method) FindFirstElementByKey (Method) FindFirstValueByKey (Method) GetChildren (Method) GetElementByIndex (Method) SetArray (Method) SetBool (Method) SetEmpty (Method) SetKey (Method) SetLReal (Method) SetLRealRounded (Method) SetLint (Method) SetNull (Method) SetObject (Method) SetString (Method)
JSONDataFactory (FB) ¶ FUNCTION_BLOCK JSONDataFactory EXTENDS FBF.FactoryBase Factory with a heap based extendable memory pool. InOut: Scope Name Type Initial Comment Input Const uxiInstCount CAA.COUNT 2 Factor for the size of the initial memory pool of JSONData objects. Should be equal to the maximum number of created JSONData objects. Set to 1 and use a single instance of JSONData to reduce memory usage. Methods: Create Structure: Create (Method)
JSONFileReader (FB) ¶ FUNCTION_BLOCK JSONFileReader EXTENDS CBM.ETrig Function block for reading JSON files. InOut: Scope Name Type Initial Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrig Output xDone BOOL TRUE : Action successfully completed ETrig xBusy BOOL TRUE : Function block active ETrig xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrig Input sFileName STRING(255) Path to a JSON file xIgnoreValueStringLength BOOL If True, the error is ignored and the value is shortened and xValueTrunked will be TRUE xAsyncMode BOOL TRUE If true, reader runs in asynchronous mode Inout jsonData JSONData JSONData object Output eError ERROR xValueTruncated BOOL minimum one String value was > GParams.g_diMaxStringSize
JSONFileWriter (FB) ¶ FUNCTION_BLOCK JSONFileWriter EXTENDS CBM.ETrig Function block for writing of JSON files. InOut: Scope Name Type Initial Comment Inherited from Input xExecute BOOL Rising edge: Action starts Falling edge: Resets outputs If a falling edge occurs before the function block has completed its action, the outputs operate in the usual manner and are only reset if either the action is completed or in the event of an error. In this case, the corresponding output values ( xDone , xError ) are present at the outputs for exactly one cycle. ETrig Output xDone BOOL TRUE : Action successfully completed ETrig xBusy BOOL TRUE : Function block active ETrig xError BOOL TRUE : Error occurred, function block aborts action FALSE : No error ETrig Input sFileName STRING(255) Path to the JSON file eEncoding Encoding Encoding.UTF_8 File encoding xAsyncMode BOOL TRUE If true, writer runs in asynchronous mode wsLinebreak WSTRING(2) “$R$N” Line break character for the JSON writer. Use “” to disable formatting and get a compact format. Default: $R$N Inout jsonData JSONData JSONData object Output eError ERROR
Functions ¶ JSONElementToString (Function)
File and Project Information ¶ Scope Name Type Content FileHeader creationDateTime date 11.09.2023, 10:38:03 companyName string 3S-Smart Software Solutions GmbH libraryFile INI File Utility SL.library primaryProject True productName CODESYS productProfile CODESYS V3.5 SP16 Patch 3 contentFile INI File Utility SL.clean.json version version 2.0.0.0 ProjectInformation ActivateDongleLicensing bool False Depends on PS False Depends on RTS False OnlineHelp True Released True LastModificationDateTime date 11.09.2023, 10:38:01 FirmCode int 101597 ProductCode 8714 LibraryCategories library-category-list Application|Utils ActivationMail string support@codesys.com ActivationUrl http://license.codesys.com AlternativeFirmCodes 5000304 Author CODESYS Development GmbH Company CODESYS CompiledLibraryCompatibilityVersion CODESYS V3.5 SP15 Patch 2 DefaultNamespace INI_UTIL Description See: Description DocFormat reStructuredText DocLanguages en,de LanguageModelAttribute qualified-access-only Placeholder INI_File_Utility_SL Project INI File Utility SL Title INI File Utility SL SpecVersion version 3.0.0.0 Version 1.9.0.0
Library Reference ¶ This is a dictionary of all referenced libraries and their name spaces. 3SLicense ¶ Library Identification ¶ Placeholder: 3SLicense Default Resolution: 3SLicense, * (3S - Smart Software Solutions GmbH) Namespace: _3S_LICENSE Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: 3SLicense CAA Behaviour Model ¶ Library Identification ¶ Placeholder: CAA Behaviour Model Default Resolution: CAA Behaviour Model, * (CAA Technical Workgroup) Namespace: CBM Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: CAA Behaviour Model CAA Types Extern ¶ Library Identification ¶ Placeholder: CAA Types Default Resolution: CAA Types Extern, * (CAA Technical Workgroup) Namespace: CAA Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: True SystemLibrary: False Key: CAA Types CmpErrors2 Interfaces ¶ Library Identification ¶ Name: CmpErrors2 Interfaces Version: newest Company: System Namespace: CmpErrors Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: CmpErrors2 Interfaces, * (System) CmpLog ¶ Library Identification ¶ Placeholder: CmpLog Default Resolution: CmpLog, * (System) Namespace: CmpLog Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: CmpLog Component Manager ¶ Library Identification ¶ Placeholder: Component Manager Default Resolution: Component Manager, * (System) Namespace: Component_Manager Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: Component Manager SysFile ¶ Library Identification ¶ Placeholder: SysFile Default Resolution: SysFile, * (System) Namespace: SysFile Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysFile SysMem ¶ Library Identification ¶ Placeholder: SysMem Default Resolution: SysMem, * (System) Namespace: SysMem Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysMem SysTypes2 Interfaces ¶ Library Identification ¶ Name: SysTypes2 Interfaces Version: newest Company: System Namespace: SysTypes Library Properties ¶ LinkAllContent: False Optional: False QualifiedOnly: False SystemLibrary: False Key: SysTypes2 Interfaces, * (System)