RTI Connext Micro C API  Version 2.4.14.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
OSAPI_PortProperty Struct Reference

AutoSAR System properties. More...

Data Fields

uint32 timer_resolution_ms
 Timer resolution in ms. Frequency at which the timer task is executed.
uint32 number_of_heap_areas
 Heap used by RTI Connext Micro can span across a number of different areas. This field indicates the number of areas in the heap memory. Minimum valid value is 1.
uint32 const * heap_area_size
 Pointer to size of each heap area. As many elements as indicated in field 'number_of_heap_areas'.
char *const * heap_area
 Pointer to heap areas. As many elements as indicated in field 'number_of_heap_areas'.
OSAPI_Autosar_SyncKind_T sync_type
 Kind of synchronization used.
ResourceType first_resource_id
 First resource id that RTI Connext Micro uses to synchronize the concurrent access to shared resources. This is only used in case Resources are configured as synchronization method.
ResourceType last_resource_id
 Last resource id that RTI Connext Micro uses to synchronize the concurrent access to shared resources. This is only used in case Resources are configured as synchronization method.
uint16 spinlock_id
 Spinlock id used in case sync_type is OSAPI_AUTOSAR_SYNCKIND_SPINLOCK. Type SpinlockIdType could be used for this field but some AutoSAR implementations don't include this type in case spinlock module is not added. To avoid ifdef we use uint16.
uint32 semaphore_max_count
 The maximum number of semaphores.
EventMaskType first_give_event
 First give event id used for semaphore implementation.
EventMaskType first_timeout_event
 First timeout event id used for semaphore implementation.
AlarmType first_alarm
 First alarm id used for semaphore implementation.
boolean use_socket_owner
 TRUE if SocketOwner is configured in AutoSAR TcpIp module configuration. In that case RTI Connext Micro will use sockets to send and receive UDP packets. Otherwise a function pointer will be used to send packets.
uint8 max_receive_sockets
 Maximum number of sockets that RTI Connext Micro can use to receive UDP packets.
uint8 number_of_rcv_buffers
 Number of receive buffers of size specified in field 'rcv_buffer_size'.
uint32 rcv_buffer_size
 Size of each receive buffer.
NETIO_Autosar_TcpIp_get_socket get_socket
 Pointer to the function that can create a socket.
NETIO_Autosar_TcpIp_send_dyn_data send_data
 Pointer to the function that can send data.
TcpIp_LocalAddrIdType local_addr_id
 Local IP address.
boolean use_udp_thread
 Set to TRUE to use a thread to receive data.
TaskType udp_receive_task_id
 The UDP receive task id.
EventMaskType udp_packet_received_event
 Event used to notify the UDP task that an incoming packet has been received.
uint32 log_dst_address
uint16 log_dst_port

Detailed Description

AutoSAR System properties.


Field Documentation

uint32 OSAPI_PortProperty::timer_resolution_ms

Timer resolution in ms. Frequency at which the timer task is executed.

uint32 OSAPI_PortProperty::number_of_heap_areas

Heap used by RTI Connext Micro can span across a number of different areas. This field indicates the number of areas in the heap memory. Minimum valid value is 1.

uint32 const* OSAPI_PortProperty::heap_area_size

Pointer to size of each heap area. As many elements as indicated in field 'number_of_heap_areas'.

char* const* OSAPI_PortProperty::heap_area

Pointer to heap areas. As many elements as indicated in field 'number_of_heap_areas'.

OSAPI_Autosar_SyncKind_T OSAPI_PortProperty::sync_type

Kind of synchronization used.

ResourceType OSAPI_PortProperty::first_resource_id

First resource id that RTI Connext Micro uses to synchronize the concurrent access to shared resources. This is only used in case Resources are configured as synchronization method.

ResourceType OSAPI_PortProperty::last_resource_id

Last resource id that RTI Connext Micro uses to synchronize the concurrent access to shared resources. This is only used in case Resources are configured as synchronization method.

uint16 OSAPI_PortProperty::spinlock_id

Spinlock id used in case sync_type is OSAPI_AUTOSAR_SYNCKIND_SPINLOCK. Type SpinlockIdType could be used for this field but some AutoSAR implementations don't include this type in case spinlock module is not added. To avoid ifdef we use uint16.

uint32 OSAPI_PortProperty::semaphore_max_count

The maximum number of semaphores.

Maximum number of semaphores that can be created. As many give and timeout events and alarms as indicated by this field must be configured in Autosar. Give events shall have 'consecutive' event IDs, starting at first_give_event (e.g. 1, 2, 4). Timeout events shall have 'consecutive' event IDs starting at first_timeout_event (e.g. 8, 16, 32). Alarms shall have 'consecutive' IDs starting at first_alarm (e.g. 1, 2, 3).

A Waitset object needs two semaphores. In case Waitsets are not used this field can be set to 0.

Semaphore implementation uses two events and one alarm for each semaphore that is created. One event, the give event, is set in the semaphore give() method. The other event, the timeout event, is used to signal a timeout in the semaphore. The alarm must be configured to set the timeout event. The semaphore take() operation starts the alarm and waits for any of the events.

The alarm must be configured as 'RELATIVE' and to set the timeout event when it expires. The counter used to trigger the alarm must be configured with one tick per millisecond and in case this is not done properly the semaphore timeout will occur sooner or later than expected.

The semaphore take() method in the semaphore can be used only from one task.

In case semaphores are not needed it is possible to just set fields first_give_event, first_timeout_event, first_alarm and semaphore_max_count to 0.

EventMaskType OSAPI_PortProperty::first_give_event

First give event id used for semaphore implementation.

EventMaskType OSAPI_PortProperty::first_timeout_event

First timeout event id used for semaphore implementation.

AlarmType OSAPI_PortProperty::first_alarm

First alarm id used for semaphore implementation.

boolean OSAPI_PortProperty::use_socket_owner

TRUE if SocketOwner is configured in AutoSAR TcpIp module configuration. In that case RTI Connext Micro will use sockets to send and receive UDP packets. Otherwise a function pointer will be used to send packets.

If set to 'TRUE' fields 'number_of_socket' and 'get_socket' must be configured properly (can't be NULL_PTR).

If set to 'FALSE' field 'send_data' needs to be configured properly (can't be NULL_PTR).

uint8 OSAPI_PortProperty::max_receive_sockets

Maximum number of sockets that RTI Connext Micro can use to receive UDP packets.

Maximum number of sockets that RTI Connext Micro can use to receive UDP packets. This number depends on the number of participants created and the UDP transport configuration.

If SocketOwner is used for each participant 2 sockets are normally needed to receive UDP packets: - Socket to receive unicast discovery data. - Socket to receive unicast user data.

If SocketOwner is not used sockets are not used but this field must have at least a value of 1.

uint8 OSAPI_PortProperty::number_of_rcv_buffers

Number of receive buffers of size specified in field 'rcv_buffer_size'.

RTI Connext Micro can use internal socket buffers. This is normally needed in case the received callback indication is called in the context of an ISR. Number of receive buffers of size specified in field 'rcv_buffer_size'. This is only used when field 'use_udp_thread' is TRUE.

uint32 OSAPI_PortProperty::rcv_buffer_size

Size of each receive buffer.

NETIO_Autosar_TcpIp_get_socket OSAPI_PortProperty::get_socket

Pointer to the function that can create a socket.

Pointer to the function that can create a socket. This function is used to create sockets to send and receive UDP packets. This field is used only in case a SocketOwner is configured, field 'use_socket_owner' is set to TRUE. Otherwise this field can be NULL_PTR.

NETIO_Autosar_TcpIp_send_dyn_data OSAPI_PortProperty::send_data

Pointer to the function that can send data.

Pointer to the function that can send data. This field is used only in case a SocketOwner is not configured, when field 'use_socket_owner' is FALSE. Otherwise this field can be NULL_PTR.

TcpIp_LocalAddrIdType OSAPI_PortProperty::local_addr_id

Local IP address.

IP address identifier representing the local IP address and EthIf controller to bind the socket to.

boolean OSAPI_PortProperty::use_udp_thread

Set to TRUE to use a thread to receive data.

Set to TRUE to use a thread to receive data. If this field is set to FALSE, the incoming UDP packets will be processed in the callback notification function. If this field is set to TRUE, the callback notification function will copy the UDP packet in an internal buffer and set an event for the UDP thread to process the packet.

TaskType OSAPI_PortProperty::udp_receive_task_id

The UDP receive task id.

UDP receive task id. This must be configured with the ID of the task NETIO_Autosar_udp_receive_task. This field must be configured only in case field 'use_udp_thread' is set to TRUE.

EventMaskType OSAPI_PortProperty::udp_packet_received_event

Event used to notify the UDP task that an incoming packet has been received.

Event used to notify the UDP task that an incoming packet has been received. This event is used only in case UDP task is used, that is when field 'use_udp_thread' is set to TRUE.


RTI Connext Micro C API Version 2.4.14.1 Copyright © Thu Nov 2 2023 Real-Time Innovations, Inc