INOS
inosdefault.h File Reference

The default definition file. More...

Go to the source code of this file.

Macros

#define DF_INOS_EVENTLOGGER_ENTRIES   8192
 
#define DF_INOS_EVENTLOGGER_OVERRIDDEN_OFF   {0,0,0,0}
 
#define DF_INOS_EVENTLOGGER_OVERRIDDEN_ON   {0,0,0,0}
 
#define DF_INOS_PROCESSIMAGE_DIGITAL_INPUTS_NUMBER   16384
 
#define DF_INOS_PROCESSIMAGE_DIGITAL_OUTPUTS_NUMBER   16384
 
#define DF_INOS_PROCESSIMAGE_ANALOG_INPUTS_NUMBER   16384
 
#define DF_INOS_PROCESSIMAGE_ANALOG_OUTPUTS_NUMBER   16384
 
#define DF_INOS_PROCESSIMAGE_POSITION_NUMBER   16384
 
#define DF_INOS_PROCESSIMAGE_FIND_FIRST   0
 
#define DF_INOS_CORE_IS_GINSLAVE   0
 
#define DF_INOS_CORE_MASK_TABLES   0x01
 
#define DF_INOS_LOCALBUS_SHARED_MEMORY_SIZE   256
 
#define DF_INOS_GINDEVICEHND_PRIO   5
 
#define DF_INOS_MOVEPATH_MAX_AXES   4
 
#define DF_INOS_MOVEPATH_MAX_POINTS   512
 
#define DF_INOS_MOVEPATH_MAX_HELPERS   4
 
#define DF_INOS_MOVEPATH_CMD_QUEUE_SIZE   32
 
#define DF_INOS_MOVEPATH_MAX_STRING_LENGTH   63
 
#define DF_INOS_NURBSCURVE_MAX_DEGREE   5
 
#define DF_INOS_NURBSCURVE_INTERPOLATION_POINTS   8
 
#define DF_INOS_IMAGE_MAX_SIZE   (1024*1024)
 
#define DF_INOS_IMAGE_MIN_SIZE   (1024)
 
#define DF_INOS_MCDATA_MAX_SIZE   256
 
#define DF_INOS_MCTARGET_PARAM   "Flags=Msg Qsz=1024"
 
#define DF_INOS_TIMING_CHECKS_CORELOCK_MAX_TIME_US   15
 
#define DF_INOS_TIMINIG_CHECKS_DISABLEINTERRUPTS_MAX_TIME_US   15
 
#define DF_INOS_TIMINIG_CHECKS_SUSPEND_MAX_TIME_US   1000
 
#define DF_INOS_ETHERNET_FRAME_CAPTURE_BUFFER_SIZE   (2048*1024)
 
#define DF_INOS_ETHERNET_FRAME_CAPTURE_SNAP_LENGTH   1522
 
#define DF_INOS_ETHERNET_FRAME_CAPTURE_OPTIONS   0x00000001
 
#define DF_INOS_ETHERNET_FRAME_CAPTURE_FILTER_PORT_TCP   0
 
#define DF_INOS_ETHERNET_FRAME_CAPTURE_FILTER_PORT_UDP   0
 
#define DF_INOS_CAN_FRAME_CAPTURE_BUFFER_SIZE   (2048*1024)
 
#define DF_INOS_CAN_FRAME_CAPTURE_SNAP_LENGTH   16
 
#define DF_INOS_CAN_FRAME_CAPTURE_OPTIONS   0x00000001
 
#define DF_INOS_IRQ_PRIO_HIGHEST   0
 
#define DF_INOS_FIQ_PRIO_LOWEST   0
 
#define DF_INOS_IRQ_LEGACY_MODE_DEFAULT   false
 
#define DF_INOS_JSON_MAX_TOKENS   1024
 
#define DF_INOS_BUS_MAX_SUB_CYCLES   8
 
#define DF_DATA_LOGGER_MAX_CHANNELS   128
 
#define DF_INOS_TASKEXMSGPARAM_MAX_SIZE   1024
 
#define DF_INOS_STRINGPARAM_MAX_SIZE   512
 
#define DF_INOS_BOOT_STACK_SIZE   65536
 
#define DF_INOS_BOOT_MEMORY_SIZE   65536
 
#define DF_INOS_MAX_TASKS   256
 
#define DF_INOS_MAX_HANDLERS_1MS   256
 
#define DF_INOS_MAX_BUS_HOOKS   1024
 
#define DF_INOS_MAX_BUS_HOOK_CATEGORIES   4
 
#define DF_INOS_BASE_AXIS_LIMIT_CHECK_V_TOLERANCE   REAL64(1.0001)
 
#define DF_INOS_BASE_AXIS_LIMIT_CHECK_A_TOLERANCE   REAL64(1.01)
 
#define DF_INOS_BASE_AXIS_LIMIT_CHECK_J_TOLERANCE   REAL64(2.0)
 
#define DF_INOS_SDRAM_SIZE_CORE0   (128*1024*1024)
 
#define INOS_BASE_ADDRESS   0
 
#define DF_INOS_IMAGE_LOAD_MAX_SIZE   (32*1024*1024)
 
#define DF_INOS_BUS_INFO_MAX_HOOKS   128
 
#define DF_INOS_DESKTOP_RAM_SIZE   256
 
#define DF_INCO_MAX_FRAMES_DYN   1024
 
#define DF_INCO_FEATURES_DIS   0x00000000
 
#define DF_INCO_DEFAULT_RETRIES   3
 
#define DF_INCO_DEFAULT_TIMEOUT   400
 
#define DF_INCO_FRAMEPOOL_BACKTRACE   0
 
#define DF_INCO_FRAMEPOOL_BACKTRACE_LIMIT   32
 
#define DF_INOS_DESKTOP_CUSTOM_MAIN   0
 
#define DF_INCOV_DISPATCHER_PRIO   DF_INOS_TASK_PRIO_COMMUNICATION_LOWEST
 

Detailed Description

The default definition file.

Author
Ch. Hirzel
Remarks
project         : INOS
language        : Gnu C++
system          : Indel targets

This file contains all global default user INOS definitions

Macro Definition Documentation

◆ DF_DATA_LOGGER_MAX_CHANNELS

#define DF_DATA_LOGGER_MAX_CHANNELS   128

Defines the max. allowed channels per logger instance

◆ DF_INCO_DEFAULT_RETRIES

#define DF_INCO_DEFAULT_RETRIES   3

Defines the default for the maximum number of retries when transmitting primary INCO frames. This sets the default, it can be alerted for each INCO source, also at runtime.

◆ DF_INCO_DEFAULT_TIMEOUT

#define DF_INCO_DEFAULT_TIMEOUT   400

Defines the default for the timeout in ms when transmitting primary INCO frames. This sets the default, it can be alerted for each INCO source, also at runtime.

◆ DF_INCO_FEATURES_DIS

#define DF_INCO_FEATURES_DIS   0x00000000

Defines a bitmask of INCO features to be disabled. Used for backwards compatibility testing.

For a description of the features, see inco_com.h, DF_INCO_FEATURE_EXTFRAME and following.

◆ DF_INCO_FRAMEPOOL_BACKTRACE

#define DF_INCO_FRAMEPOOL_BACKTRACE   0

Enables/disables backtraces for INCO framepool operations. Intended for debugging purposes only.

◆ DF_INCO_FRAMEPOOL_BACKTRACE_LIMIT

#define DF_INCO_FRAMEPOOL_BACKTRACE_LIMIT   32

Defines the maximum number of backtrace frames for INCO framepool operations. Must be enabled first by setting DF_INCO_FRAMEPOOL_BACKTRACE to 1. Intended for debugging purposes only.

◆ DF_INCO_MAX_FRAMES_DYN

#define DF_INCO_MAX_FRAMES_DYN   1024

Defines the maximum number of dynamically allocated INCO frames.

◆ DF_INCOV_DISPATCHER_PRIO

#define DF_INCOV_DISPATCHER_PRIO   DF_INOS_TASK_PRIO_COMMUNICATION_LOWEST

Defines the priority for tasks involved in dispatching and processing INCOV frames.

Default: DF_INOS_TASK_PRIO_COMMUNICATION_LOWEST

This prevents user tasks from interrupting our task during getting the value of an INCO item. This is especially important for customer code having own INCO item subclasses that access pointers in the Get() method that are modified by a module task. On the other hand, the INCO4 dispatcher task still has higher priority (20), which should ensure that INCO V can always be debugged over INCO4. Note that the INCOV.sender and INCOV.receiver tasks need to have (at least) the same priority, to avoid priority inversion. One observed case is where this task needs to wait on the sender's tasks queue, which is full because the sender task did not get enough time for sending. Reproducible with the 'Path lengths exceed payload, expect single successful result' incov-js unit test.

Alternative: DF_INOS_TASK_PRIO_BACKGROUND

This can be used for heavy loaded systems to avoid communication interferences with production tasks. In this case it is important to check application code for INCO items that implement their own Get() method where data is accessed that is shared with a module task. If so, the access has to be locked explicitly, e.g. by a mutex, because the Get() method can now be interrupted at any time by tasks of the same priority.

◆ DF_INOS_BASE_AXIS_LIMIT_CHECK_A_TOLERANCE

#define DF_INOS_BASE_AXIS_LIMIT_CHECK_A_TOLERANCE   REAL64(1.01)

Defines the (de-)acceleration tolerance of the base axis limit checker

◆ DF_INOS_BASE_AXIS_LIMIT_CHECK_J_TOLERANCE

#define DF_INOS_BASE_AXIS_LIMIT_CHECK_J_TOLERANCE   REAL64(2.0)

Defines the jerk tolerance of the base axis limit checker

◆ DF_INOS_BASE_AXIS_LIMIT_CHECK_V_TOLERANCE

#define DF_INOS_BASE_AXIS_LIMIT_CHECK_V_TOLERANCE   REAL64(1.0001)

Defines the velocity tolerance of the base axis limit checker

◆ DF_INOS_BOOT_MEMORY_SIZE

#define DF_INOS_BOOT_MEMORY_SIZE   65536

Defines the boot 'dynamic' memory size (used before heap is set up)

◆ DF_INOS_BOOT_STACK_SIZE

#define DF_INOS_BOOT_STACK_SIZE   65536

Defines the boot stack size per core

◆ DF_INOS_BUS_INFO_MAX_HOOKS

#define DF_INOS_BUS_INFO_MAX_HOOKS   128

Defines the max. number of saved hooks in bus info

◆ DF_INOS_BUS_MAX_SUB_CYCLES

#define DF_INOS_BUS_MAX_SUB_CYCLES   8

Defines the max. number of subcycles (e.g. 4 for INFOLink or 8 for INFOLink with splitti)

◆ DF_INOS_CAN_FRAME_CAPTURE_BUFFER_SIZE

#define DF_INOS_CAN_FRAME_CAPTURE_BUFFER_SIZE   (2048*1024)

Default capture buffer size

◆ DF_INOS_CAN_FRAME_CAPTURE_OPTIONS

#define DF_INOS_CAN_FRAME_CAPTURE_OPTIONS   0x00000001

Default capture options, allowed values are

0x00000000 : none 0x00000001 : endless

◆ DF_INOS_CAN_FRAME_CAPTURE_SNAP_LENGTH

#define DF_INOS_CAN_FRAME_CAPTURE_SNAP_LENGTH   16

Default capture snap length. Maximum number of bytes captured from each packet. The portion of each packet that exceeds this value will not be stored.

◆ DF_INOS_CORE_IS_GINSLAVE

#define DF_INOS_CORE_IS_GINSLAVE   0

Defines which core has to be the ginlink slave

◆ DF_INOS_CORE_MASK_TABLES

#define DF_INOS_CORE_MASK_TABLES   0x01

Defines a mask which cores should create database tables at startup (0x01 - only core 0, 0x03 - core 0 and 1, ...)

◆ DF_INOS_DESKTOP_CUSTOM_MAIN

#define DF_INOS_DESKTOP_CUSTOM_MAIN   0

Disables the default main function for INOS Desktop (both Linux and Windows) Hence, instead a custom main function can and must be provided as starting point for INOS Desktop. This custom main should most likely call InitInos(int argc, char* argv[]) as last step. (And might return its result.) This is entended especially for running unit tests on INOS Desktop using unit test, e.g. it allows accepting parameters for Google Test on the command line when starting INOS desktop.

◆ DF_INOS_DESKTOP_RAM_SIZE

#define DF_INOS_DESKTOP_RAM_SIZE   256

Defines the available RAM size [MB] if running on INOS desktop (max. is 2GB = 2*1024MB)

◆ DF_INOS_ETHERNET_FRAME_CAPTURE_BUFFER_SIZE

#define DF_INOS_ETHERNET_FRAME_CAPTURE_BUFFER_SIZE   (2048*1024)

Default capture buffer size

◆ DF_INOS_ETHERNET_FRAME_CAPTURE_FILTER_PORT_TCP

#define DF_INOS_ETHERNET_FRAME_CAPTURE_FILTER_PORT_TCP   0

Default capture filter properties

port == 0 -> capture all frames (no filter) port != 0 -> only capture frames with given src/dst port

◆ DF_INOS_ETHERNET_FRAME_CAPTURE_OPTIONS

#define DF_INOS_ETHERNET_FRAME_CAPTURE_OPTIONS   0x00000001

Default capture options, allowed values are

0x00000000 : none 0x00000001 : endless

◆ DF_INOS_ETHERNET_FRAME_CAPTURE_SNAP_LENGTH

#define DF_INOS_ETHERNET_FRAME_CAPTURE_SNAP_LENGTH   1522

Default capture snap length. Maximum number of bytes captured from each packet. The portion of each packet that exceeds this value will not be stored.

We use a value so that we can accommodate a complete Ethernet frame:

payload : 1500 header : 14 FCS : 4

802.1Q tag : 4

total : 1522

◆ DF_INOS_EVENTLOGGER_ENTRIES

#define DF_INOS_EVENTLOGGER_ENTRIES   8192

Default number of entries

◆ DF_INOS_EVENTLOGGER_OVERRIDDEN_OFF

#define DF_INOS_EVENTLOGGER_OVERRIDDEN_OFF   {0,0,0,0}

Overridden "off" levels: These levels can't be set to '1' by code (using CINOSEvenLogger::ActivateLevels)

◆ DF_INOS_EVENTLOGGER_OVERRIDDEN_ON

#define DF_INOS_EVENTLOGGER_OVERRIDDEN_ON   {0,0,0,0}

Overridden "on" levels: These levels can't be set to '0' by code (using CINOSEvenLogger::ActivateLevels)

◆ DF_INOS_FIQ_PRIO_LOWEST

#define DF_INOS_FIQ_PRIO_LOWEST   0

Defines the lowest possible fast interrupt priority

◆ DF_INOS_GINDEVICEHND_PRIO

#define DF_INOS_GINDEVICEHND_PRIO   5

Defines the priority of the 'GINDeviceHnd' handler task

◆ DF_INOS_IMAGE_LOAD_MAX_SIZE

#define DF_INOS_IMAGE_LOAD_MAX_SIZE   (32*1024*1024)

Defines the max. allowed image size, if it is loaded via trans32

◆ DF_INOS_IMAGE_MAX_SIZE

#define DF_INOS_IMAGE_MAX_SIZE   (1024*1024)

Default max. image size

◆ DF_INOS_IMAGE_MIN_SIZE

#define DF_INOS_IMAGE_MIN_SIZE   (1024)

Default min. image size

◆ DF_INOS_IRQ_LEGACY_MODE_DEFAULT

#define DF_INOS_IRQ_LEGACY_MODE_DEFAULT   false

Defines the default IRQ mode used when no specific mode (MSI or legacy) is set by the bootloader, e.g. because a very old INCOServer is used.

false == MSI mode true == legacy mode

◆ DF_INOS_IRQ_PRIO_HIGHEST

#define DF_INOS_IRQ_PRIO_HIGHEST   0

Defines the highest possible interrupt priority

◆ DF_INOS_JSON_MAX_TOKENS

#define DF_INOS_JSON_MAX_TOKENS   1024

Defines the max. allowed JSON tokens

◆ DF_INOS_LOCALBUS_SHARED_MEMORY_SIZE

#define DF_INOS_LOCALBUS_SHARED_MEMORY_SIZE   256

Defines the size of the LOCALBUS shared memory area

◆ DF_INOS_MAX_BUS_HOOK_CATEGORIES

#define DF_INOS_MAX_BUS_HOOK_CATEGORIES   4

Defines the maximum number of supported categories in one bus hook handler

◆ DF_INOS_MAX_BUS_HOOKS

#define DF_INOS_MAX_BUS_HOOKS   1024

Defines the maximum number of supported hooks in one bus hook handler

◆ DF_INOS_MAX_HANDLERS_1MS

#define DF_INOS_MAX_HANDLERS_1MS   256

Defines the maximum number of supported 1ms handlers per core (needs to be a multiple of 32)

◆ DF_INOS_MAX_TASKS

#define DF_INOS_MAX_TASKS   256

Defines the maximum number of supported tasks per core (needs to be a multiple of 32)

◆ DF_INOS_MCDATA_MAX_SIZE

#define DF_INOS_MCDATA_MAX_SIZE   256

Default max length of McData. McData are, among others, used as the 'props' of McMessages. IOW: The max length of the INCO string vars used for registering the 'props'.

◆ DF_INOS_MCTARGET_PARAM

#define DF_INOS_MCTARGET_PARAM   "Flags=Msg Qsz=1024"

Default McTarget creation param's. Can be overwritten if e.g. the default queue size is not big enough

◆ DF_INOS_MOVEPATH_CMD_QUEUE_SIZE

#define DF_INOS_MOVEPATH_CMD_QUEUE_SIZE   32

MovePath command queue size

◆ DF_INOS_MOVEPATH_MAX_AXES

#define DF_INOS_MOVEPATH_MAX_AXES   4

Max. number of supported axes in a movepath

◆ DF_INOS_MOVEPATH_MAX_HELPERS

#define DF_INOS_MOVEPATH_MAX_HELPERS   4

Number of supported move path helper tasks

◆ DF_INOS_MOVEPATH_MAX_POINTS

#define DF_INOS_MOVEPATH_MAX_POINTS   512

Bitmask of max. number of supported axes

Max. number of supported points (just a temporary limit)

◆ DF_INOS_MOVEPATH_MAX_STRING_LENGTH

#define DF_INOS_MOVEPATH_MAX_STRING_LENGTH   63

Max. string length of movepath param

◆ DF_INOS_NURBSCURVE_INTERPOLATION_POINTS

#define DF_INOS_NURBSCURVE_INTERPOLATION_POINTS   8

Default number of length interpolation points per NURBS span. This value is used if the number of required interpolation points is not explicitly provided at construction of the NURBS curve

◆ DF_INOS_NURBSCURVE_MAX_DEGREE

#define DF_INOS_NURBSCURVE_MAX_DEGREE   5

Max. allowed nurbs curve degree

◆ DF_INOS_PROCESSIMAGE_ANALOG_INPUTS_NUMBER

#define DF_INOS_PROCESSIMAGE_ANALOG_INPUTS_NUMBER   16384

Defines the max. number of analog inputs

◆ DF_INOS_PROCESSIMAGE_ANALOG_OUTPUTS_NUMBER

#define DF_INOS_PROCESSIMAGE_ANALOG_OUTPUTS_NUMBER   16384

Defines the max. number of analog outputs

◆ DF_INOS_PROCESSIMAGE_DIGITAL_INPUTS_NUMBER

#define DF_INOS_PROCESSIMAGE_DIGITAL_INPUTS_NUMBER   16384

Defines the max. number of digital inputs

◆ DF_INOS_PROCESSIMAGE_DIGITAL_OUTPUTS_NUMBER

#define DF_INOS_PROCESSIMAGE_DIGITAL_OUTPUTS_NUMBER   16384

Defines the max. number of digital outputs

◆ DF_INOS_PROCESSIMAGE_FIND_FIRST

#define DF_INOS_PROCESSIMAGE_FIND_FIRST   0

Set this to 1 if the process image Find() function should return the first matching channel instead of the best match. This can improve performance for applications with many channels that frequently call the Find() function.

◆ DF_INOS_PROCESSIMAGE_POSITION_NUMBER

#define DF_INOS_PROCESSIMAGE_POSITION_NUMBER   16384

Defines the max. number of position channels

◆ DF_INOS_SDRAM_SIZE_CORE0

#define DF_INOS_SDRAM_SIZE_CORE0   (128*1024*1024)

Defines the memory size of core 0 on asymmetric dual core systems (default is 128MB)

◆ DF_INOS_STRINGPARAM_MAX_SIZE

#define DF_INOS_STRINGPARAM_MAX_SIZE   512

Maximum size of CallProcedure string parameters. The upper limit for this is DF_INOS_TASKEXMSGPARAM_MAX_SIZE. This macro was introduced to increase async result size without increasing the memory usage due to existing string parameters all over the INCO tree.

◆ DF_INOS_TASKEXMSGPARAM_MAX_SIZE

#define DF_INOS_TASKEXMSGPARAM_MAX_SIZE   1024

Maximum taskexmsg param size. Corresponds to maximum size for a single async result. Use the same value as default partition size used by varlog to increase likelihood of reusing memory.

◆ DF_INOS_TIMING_CHECKS_CORELOCK_MAX_TIME_US

#define DF_INOS_TIMING_CHECKS_CORELOCK_MAX_TIME_US   15

If the "INOSCoreLock" timing check iDev feature is enabled, this defines the maximum allowed time in [us].

◆ DF_INOS_TIMINIG_CHECKS_DISABLEINTERRUPTS_MAX_TIME_US

#define DF_INOS_TIMINIG_CHECKS_DISABLEINTERRUPTS_MAX_TIME_US   15

If the "INOSDisableInterrupts" timing check iDev feature is enabled, this defines the maximum allowed time in [us].

◆ DF_INOS_TIMINIG_CHECKS_SUSPEND_MAX_TIME_US

#define DF_INOS_TIMINIG_CHECKS_SUSPEND_MAX_TIME_US   1000

If the "Task suspension" timing check iDev feature is enabled, this defines the maximum allowed time in [us].

◆ INOS_BASE_ADDRESS

#define INOS_BASE_ADDRESS   0

Defines the INOS start address