unix_close (FUN) ¶ FUNCTION unix_close : INT close a file descriptor see manpage close Returnvalue: returns zero on success. On error, -1 is returned, and errno is set to indicate the error. InOut: Scope Name Type Return unix_close INT Input sockfd INT
unix_connect (FUN) ¶ FUNCTION unix_connect : INT initiate a connection on a socket see manpage connect Returnvalue: If the connection or binding succeeds, zero is returned. On error, -1 is returned, and errno is set to indicate the error. InOut: Scope Name Type Return unix_connect INT Input sockfd INT pathname STRING(108)
unix_create (FUN) ¶ FUNCTION unix_create : INT create unix domain socket (nonblocking) (flag SOCK_NONBLOCK is set, protocol is 0) see manpage socket/unix domain socket Returnvalue: On success, a file descriptor for the new socket is returned. On error, -1 is returned, and errno is set to indicate the error. InOut: Scope Name Type Return unix_create INT Input socket_type INT
unix_errno (FUN) ¶ FUNCTION unix_errno : ERRNO get last errno read last stored errno InOut: Scope Name Type Return unix_errno ERRNO
unix_listen (FUN) ¶ FUNCTION unix_listen : INT listen for connections on a socket see manpage listen Returnvalue: On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error. InOut: Scope Name Type Return unix_listen INT Input sockfd INT backlog INT
unix_recv (FUN) ¶ FUNCTION unix_recv : INT receive a message from a unix domain socket see manpage recv Returnvalue: returns the number of bytes received, or -1 if an error occurred. In the event of an error, errno is set to indicate the error. Internally, this function calls recv(), which returns of type ssize_t. This might be different to the return value of the IEC function unix_recv, which is INT. Calling with length >= INT Max can lead to invalid return values of this function. InOut: Scope Name Type Return unix_recv INT Input sockfd INT buf POINTER TO BYTE len ULINT flags INT
unix_send (FUN) ¶ FUNCTION unix_send : INT send a message on a unix domain socket see manpage send Returnvalue: On success, this call returns the number of bytes sent. On error, -1 is returned, and errno is set to indicate the error. Internally, this function calls send() which returns of type ssize_t. This might be different to the return value of the IEC function unix_send, which is INT. Calling with length >= INT Max can lead to invalid return values of this function. InOut: Scope Name Type Return unix_send INT Input sockfd INT buf POINTER TO BYTE len ULINT flags INT
unix_unlink (FUN) ¶ FUNCTION unix_unlink : INT unlink unix domain socket see manpage unlink Returnvalue: On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error. InOut: Scope Name Type Return unix_unlink INT Input pathname STRING
AnyNumber (STRUCT) ¶ TYPE AnyNumber : STRUCT AnyNumber represents a numeric value either as value or POINTER TO value with variable base type. Supported base types: SINT (8bit -128 .. 127) USINT (8bit 0 .. 255) INT (16bit -32768 .. 32767) UINT (16bit 0 .. 65535) DINT (32bit -2147483648 .. 2147483647) UDINT (32bit 0 .. 4294967295) REAL (32bit float) DOUBLE (64bit float) The base type is initialized to AnyNumberTypes.TYPE_NONE, which will be detected as invalid base type on read operations, so ensure to set the base type properly. Using the POINTER TO value representation requires the POINTER TO value <> 0 (set u.p.p* according to baseType). The POINTER TO value is initialized to 0, which will be detected as invalid on read / write operations, so ensure to set the POINTER TO value properly. There are functions to support certain operations using AnyNumber: compare base type - see |AnyNumberBaseTypeEquals| check for consistency - see AnyNumberCheck compare - see AnyNumberCompare assigment - see AnyNumberAssign arithmetic - see AnyNumberArithmetic Initialization of AnyNumber is a bit eloquent, but no matter of this simple: Example: /// AnyNumber base type REAL with value representation any1_REAL_value : DNP3.AnyNumber := ( baseType:=DNP3.AnyNumberTypes.TYPE_REAL, /// init the base type u:=(val:=(valREAL:=42)) /// init the value ); /// AnyNumber base type REAL with POINTER TO value representation /// The value to point to … any2_value : REAL; /// Now the AnyNumber pointing to any2_value any2_REAL_POINTER_TO_value : DNP3.AnyNumber := ( baseType:=DNP3.AnyNumberTypes.TYPE_REAL, /// init the base type isPtr:=TRUE, /// select POINTER TO value representation u:=(p:=(pREAL:=ADR(any2_value))) /// init the POINTER TO ); InOut: Name Type Initial Comment baseType AnyNumberTypes AnyNumberTypes.TYPE_NONE Base type isPtr BOOL FALSE isPtr = TRUE => represents a POINTER TO value u AnyNumberUnion Data holding either the value or POINTER TO value according to baseType. For value representation access u.val.val* For POINTER TO value representation access u.p.p* according to baseType.
AnyNumberPointerUnion (UNION) ¶ TYPE AnyNumberPointerUnion : UNION InOut: Name Type Initial Comment pSINT POINTER TO SINT 0 POINTER TO value represention for SINT pUSINT POINTER TO USINT 0 POINTER TO value represention for USINT pINT POINTER TO INT 0 POINTER TO value represention for INT pUINT POINTER TO UINT 0 POINTER TO value represention for UINT pDINT POINTER TO DINT 0 POINTER TO value represention for DINT pUDINT POINTER TO UDINT 0 POINTER TO value represention for UDINT pREAL POINTER TO REAL 0 POINTER TO value represention for REAL pLREAL POINTER TO LREAL 0 POINTER TO value represention for LREAL