author | Edouard Tisserant |
Thu, 18 Jun 2020 14:32:20 +0200 | |
changeset 1091 | 6f4e7a8387ae |
parent 904 | 423ea3749212 |
child 1100 | f7cc4f6ce756 |
permissions | -rwxr-xr-x |
#ifndef IEC_TYPES_H #define IEC_TYPES_H #include <limits.h> #include <float.h> #include <stdint.h> /*********************/ /* IEC Types defs */ /*********************/ typedef uint8_t IEC_BOOL; typedef int8_t IEC_SINT; typedef int16_t IEC_INT; typedef int32_t IEC_DINT; typedef int64_t IEC_LINT; typedef uint8_t IEC_USINT; typedef uint16_t IEC_UINT; typedef uint32_t IEC_UDINT; typedef uint64_t IEC_ULINT; typedef uint8_t IEC_BYTE; typedef uint16_t IEC_WORD; typedef uint32_t IEC_DWORD; typedef uint64_t IEC_LWORD; typedef float IEC_REAL; typedef double IEC_LREAL; /* WARNING: When editing the definition of IEC_TIMESPEC, take note that * if the order of the two elements 'tv_sec' and 'tv_nsec' is changed, then the macros * __time_to_timespec() and __tod_to_timespec() will need to be changed accordingly. * (these macros may be found in iec_std_lib.h) */ typedef struct { long int tv_sec; /* Seconds. */ long int tv_nsec; /* Nanoseconds. */ } /* __attribute__((packed)) */ IEC_TIMESPEC; /* packed is gcc specific! */ typedef IEC_TIMESPEC IEC_TIME; typedef IEC_TIMESPEC IEC_DATE; typedef IEC_TIMESPEC IEC_DT; typedef IEC_TIMESPEC IEC_TOD; #ifndef STR_MAX_LEN #define STR_MAX_LEN 126 #endif #ifndef STR_LEN_TYPE #define STR_LEN_TYPE int8_t #endif #define __INIT_REAL 0 #define __INIT_LREAL 0 #define __INIT_SINT 0 #define __INIT_INT 0 #define __INIT_DINT 0 #define __INIT_LINT 0 #define __INIT_USINT 0 #define __INIT_UINT 0 #define __INIT_UDINT 0 #define __INIT_ULINT 0 #define __INIT_TIME (TIME){0,0} #define __INIT_BOOL 0 #define __INIT_BYTE 0 #define __INIT_WORD 0 #define __INIT_DWORD 0 #define __INIT_LWORD 0 #define __INIT_STRING (STRING){0,""} //#define __INIT_WSTRING #define __INIT_DATE (DATE){0,0} #define __INIT_TOD (TOD){0,0} #define __INIT_DT (DT){0,0} typedef STR_LEN_TYPE __strlen_t; typedef struct { __strlen_t len; uint8_t body[STR_MAX_LEN]; } /* __attribute__((packed)) */ IEC_STRING; /* packed is gcc specific! */ #endif /*IEC_TYPES_H*/