diff --git a/docs/DoxygenExtra.css b/docs/DoxygenExtra.css new file mode 100644 index 00000000..82d17767 --- /dev/null +++ b/docs/DoxygenExtra.css @@ -0,0 +1,3 @@ +a + h2.groupheader { + display:none; +} diff --git a/docs/annotated.html b/docs/annotated.html new file mode 100644 index 00000000..c0506456 --- /dev/null +++ b/docs/annotated.html @@ -0,0 +1,206 @@ + + +
+ + + +
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Types | |
+using | map_uid_stream_t = std::unordered_map< ed247_uid_t, stream_ptr_t > |
+Public Member Functions | |
+ | Channel (Context *context, const xml::Channel *configuration) |
+Channel & | operator= (const Channel &)=delete |
+Channel & | operator= (Channel &&)=delete |
+const std::string & | get_name () const |
+const std::string & | get_comment () const |
+ed247_standard_t | get_frame_standard_revision () const |
+void | set_user_data (void *user_data) |
+void | get_user_data (void **user_data) |
+stream_list_t | find_streams (std::string strregex) |
+stream_ptr_t | get_stream (std::string str_name) |
+ed247_internal_stream_list_t * | get_client_streams () |
+void | encode_and_send () |
+bool | decode (const char *frame, uint32_t frame_size) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | ChannelSet (Context *context) |
+ChannelSet & | operator= (const ChannelSet &)=delete |
+ChannelSet & | operator= (ChannelSet &&)=delete |
+channel_ptr_t | create (const xml::Channel *configuration) |
+channel_ptr_t | get (std::string str_name) |
+channel_list_t | find (std::string str_regex) |
+channel_map_t & | channels () |
+uint32_t | size () const |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | Context (const Context &)=delete |
+ | Context (Context &&)=delete |
+Context & | operator= (const Context &)=delete |
+Context & | operator= (Context &&)=delete |
+const std::string & | get_file_producer_identifier () |
+const std::string & | get_file_producer_comment () |
+const std::string & | get_version () |
+ed247_component_type_t | get_component_type () |
+const std::string & | get_name () |
+const std::string & | get_comment () |
+ed247_uid_t | get_identifier () |
+ed247_standard_t | get_standard_revision () |
+void | set_user_data (void *user_data) |
+void | get_user_data (void **user_data) |
+udp::ReceiverSet & | get_receiver_set () |
+SignalSet & | get_signal_set () |
+StreamSet & | get_stream_set () |
+ChannelSet & | get_channel_set () |
+ed247_internal_stream_list_t * | get_client_streams () |
+ed247_internal_stream_list_t * | get_client_streams_with_data () |
+ed247_internal_channel_list_t * | get_client_channels () |
+bool | stream_assistants_written_push_samples (const ed247_timestamp_t *data_timestamp) |
+bool | stream_assistants_pop_samples () |
+void | send_pushed_samples () |
+ed247_status_t | wait_frame (int32_t timeout_us) |
+ed247_status_t | wait_during (int32_t duration_us) |
+Static Public Member Functions | |
+static Context * | create_from_filepath (std::string ecic_filepath) |
+static Context * | create_from_content (std::string ecic_content) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | FixedStreamAssistant (Stream *stream) |
+virtual bool | write (const Signal &signal, const void *data, uint32_t size) override |
+virtual bool | read (const Signal &signal, const void **data, uint32_t *size) override |
+virtual bool | push (const ed247_timestamp_t *data_timestamp, bool *full) override |
+virtual ed247_status_t | pop (const ed247_timestamp_t **data_timestamp, const ed247_timestamp_t **recv_timestamp, const ed247_sample_details_t **frame_details, bool *empty) override |
Public Member Functions inherited from ed247::StreamAssistant | |
+ | StreamAssistant (Stream *stream) |
+Stream * | get_api_stream () |
+bool | was_written () |
+bool | push_if_was_written (const ed247_timestamp_t *data_timestamp, bool *full) |
+Additional Inherited Members | |
Protected Member Functions inherited from ed247::StreamAssistant | |
+ | ED247_FRIEND_TEST () |
Protected Attributes inherited from ed247::StreamAssistant | |
+Stream * | _stream |
+Sample | _buffer |
+bool | _was_written |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | FrameHeader (const xml::Header &configuration, ed247_uid_t ec_id, const std::string &channel_name) |
+void | encode (char *frame, uint32_t frame_size, uint32_t &frame_index) |
+bool | decode (const char *frame, uint32_t frame_size, uint32_t &frame_index) |
+uint32_t | get_size () const |
+const ed247_sample_details_t & | get_recv_frame_details () const |
+uint16_t | get_next_serial_number () const |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | Sample (uint32_t capacity) |
+ | Sample (const Sample &other)=delete |
+Sample & | operator= (const Sample &other)=delete |
+ | Sample (Sample &&other) |
+void | allocate (uint32_t capacity) |
+const uint32_t & | size () const |
+const uint32_t & | capacity () const |
+const char * | data () const |
+bool | empty () const |
+bool | copy (const char *data, const uint32_t &size) |
+bool | copy (const void *data, const uint32_t &size) |
+char * | data_rw () |
+void | set_size (const uint32_t &size) |
+void | reset () |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | Signal (const xml::Signal *configuration, ed247_internal_stream_t *ed247_api_stream) |
+ | Signal (const Signal &other)=delete |
+Signal & | operator= (const Signal &other)=delete |
+const std::string & | get_name () const |
+const std::string & | get_comment () const |
+const std::string & | get_icd () const |
+ed247_signal_type_t | get_type () const |
+uint32_t | get_byte_offset () const |
+const std::string & | get_analogue_electrical_unit () const |
+ed247_nad_type_t | get_nad_type () const |
+uint32_t | get_nad_type_size () const |
+const std::string & | get_nad_unit () const |
+const std::vector< uint32_t > | get_nad_dimensions () |
+uint32_t | get_vnad_position () const |
+uint32_t | get_vnad_max_number () const |
+uint32_t | get_sample_max_size_bytes () const |
+ed247_internal_stream_t * | get_api_stream () |
+void | set_user_data (void *user_data) |
+void | get_user_data (void **user_data) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+signal_ptr_t | create (const xml::Signal *configuration, ed247_internal_stream_t *ed247_api_stream) |
+signal_ptr_t | get (const std::string &name) |
+signal_list_t | find (const std::string ®ex) |
+SignalSet & | operator= (const SignalSet &)=delete |
+SignalSet & | operator= (SignalSet &&)=delete |
+Protected Member Functions | |
+ | ED247_FRIEND_TEST () |
+Protected Attributes | |
+std::unordered_map< std::string, signal_ptr_t > | _signals |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | Stream (Context *context, const xml::Stream *configuration, ed247_internal_channel_t *ed247_api_channel, uint32_t sample_size_size) |
+ | Stream (const Stream &other)=delete |
+Stream & | operator= (const Stream &other)=delete |
+const std::string & | get_name () const |
+const std::string & | get_icd () const |
+const std::string & | get_comment () const |
+ed247_uid_t | get_uid () const |
+ed247_stream_type_t | get_type () const |
+ed247_direction_t | get_direction () const |
+uint32_t | get_sample_max_size_bytes () const |
+uint32_t | get_sample_max_number () const |
+uint32_t | get_max_size () const |
+ed247_internal_channel_t * | get_api_channel () |
+void | set_user_data (void *user_data) |
+void | get_user_data (void **user_data) |
+bool | is_signal_based () const |
+virtual uint32_t | get_sampling_period_us () |
+StreamAssistant * | get_assistant () |
+signal_list_t & | get_signals () |
+ed247_internal_signal_list_t * | get_client_signals () |
+signal_list_t | find_signals (std::string str_regex) |
+signal_ptr_t | get_signal (std::string str_name) |
+uint32_t | get_incoming_sample_number () |
+uint32_t | get_outgoing_sample_number () |
+bool | push_sample (const void *sample_data, uint32_t sample_size, const ed247_timestamp_t *data_timestamp, bool *full) |
+StreamSample & | pop_sample (bool *empty) |
+uint32_t | encode (char *frame, uint32_t frame_size) |
+bool | decode (const char *frame, uint32_t frame_size, const ed247_sample_details_t &frame_details) |
+ed247_status_t | register_callback (ed247_context_t context, ed247_stream_recv_callback_t callback) |
+ed247_status_t | unregister_callback (ed247_context_t context, ed247_stream_recv_callback_t callback) |
+bool | run_callbacks () |
+Protected Attributes | |
+Context * | _context |
+const xml::Stream * | _configuration |
+uint32_t | _sample_size_size |
+uint32_t | _sample_first_header_size |
+uint32_t | _sample_next_header_size |
+uint32_t | _max_size |
+signal_list_t | _signals |
+std::unique_ptr< ed247_internal_signal_list_t > | _client_signals |
+std::unique_ptr< StreamAssistant > | _assistant |
+StreamSampleRingBuffer | _recv_stack |
+StreamSampleRingBuffer | _send_stack |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | StreamAssistant (Stream *stream) |
+Stream * | get_api_stream () |
+virtual bool | write (const Signal &signal, const void *data, uint32_t size)=0 |
+virtual bool | read (const Signal &signal, const void **data, uint32_t *size)=0 |
+virtual bool | push (const ed247_timestamp_t *data_timestamp, bool *full)=0 |
+virtual ed247_status_t | pop (const ed247_timestamp_t **data_timestamp, const ed247_timestamp_t **recv_timestamp, const ed247_sample_details_t **frame_details, bool *empty)=0 |
+bool | was_written () |
+bool | push_if_was_written (const ed247_timestamp_t *data_timestamp, bool *full) |
+Protected Member Functions | |
+ | ED247_FRIEND_TEST () |
+Protected Attributes | |
+Stream * | _stream |
+Sample | _buffer |
+bool | _was_written |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | StreamSample (uint32_t capacity) |
+ | StreamSample (const StreamSample &other)=delete |
+StreamSample & | operator= (const StreamSample &other)=delete |
+ | StreamSample (StreamSample &&other) |
+bool | copy (const StreamSample &sample) |
+void | set_data_timestamp (const ed247_timestamp_t &data_timestamp) |
+void | set_recv_timestamp (const ed247_timestamp_t &recv_timestamp) |
+void | set_frame_details (const ed247_sample_details_t &frame_details) |
+const ed247_timestamp_t & | data_timestamp () const |
+const ed247_timestamp_t & | recv_timestamp () const |
+const ed247_sample_details_t & | frame_details () const |
+void | update_recv_timestamp () |
Public Member Functions inherited from ed247::Sample | |
+ | Sample (uint32_t capacity) |
+ | Sample (const Sample &other)=delete |
+Sample & | operator= (const Sample &other)=delete |
+ | Sample (Sample &&other) |
+void | allocate (uint32_t capacity) |
+const uint32_t & | size () const |
+const uint32_t & | capacity () const |
+const char * | data () const |
+bool | empty () const |
+bool | copy (const char *data, const uint32_t &size) |
+bool | copy (const void *data, const uint32_t &size) |
+char * | data_rw () |
+void | set_size (const uint32_t &size) |
+void | reset () |
+Protected Attributes | |
+ed247_timestamp_t | _data_timestamp |
+ed247_timestamp_t | _recv_timestamp |
+ed247_sample_details_t | _frame_details |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | StreamSampleRingBuffer (uint32_t capacity, uint32_t samples_capacity) |
+uint32_t | capacity () const |
+uint32_t | samples_capacity () const |
+uint32_t | size () const |
+bool | empty () const |
+bool | full () const |
+StreamSample & | push_back () |
+StreamSample & | pop_front () |
+StreamSample & | front () |
+StreamSample & | back () |
+StreamSample & | at (uint32_t index) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | StreamSet (Context *context) |
+StreamSet & | operator= (const StreamSet &)=delete |
+StreamSet & | operator= (StreamSet &&)=delete |
+stream_ptr_t | create (const xml::Stream *configuration, ed247_internal_channel_t *ed247_api_channel) |
+stream_ptr_t | get (std::string name) |
+stream_list_t | find (std::string regex) |
+stream_map_t & | streams () |
+uint32_t | size () const |
+stream_list_t & | get_streams_signals_output () |
+stream_list_t & | get_streams_signals_input () |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | VNADStreamAssistant (Stream *stream) |
+virtual bool | write (const Signal &signal, const void *data, uint32_t size) override |
+virtual bool | read (const Signal &signal, const void **data, uint32_t *size) override |
+virtual bool | push (const ed247_timestamp_t *data_timestamp, bool *full) override |
+virtual ed247_status_t | pop (const ed247_timestamp_t **data_timestamp, const ed247_timestamp_t **recv_timestamp, const ed247_sample_details_t **frame_details, bool *empty) override |
Public Member Functions inherited from ed247::StreamAssistant | |
+ | StreamAssistant (Stream *stream) |
+Stream * | get_api_stream () |
+bool | was_written () |
+bool | push_if_was_written (const ed247_timestamp_t *data_timestamp, bool *full) |
+Additional Inherited Members | |
Protected Member Functions inherited from ed247::StreamAssistant | |
+ | ED247_FRIEND_TEST () |
Protected Attributes inherited from ed247::StreamAssistant | |
+Stream * | _stream |
+Sample | _buffer |
+bool | _was_written |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | exception (std::string message) |
+const char * | what () const noexcept override |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+void | load (const xml::ComInterface &configuration, Receiver::receive_callback_t receive_callback) |
+void | send_frame (const void *payload, const uint32_t payload_size) |
+ | ComInterface (Context *context) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | Emitter (Context *context, socket_address_t from_address, socket_address_t destination_address, uint16_t multicast_ttl=1) |
+void | send_frame (const void *payload, const uint32_t payload_size) |
Public Member Functions inherited from ed247::udp::Transceiver | |
+ | Transceiver (Context *context, const socket_address_t &socket_address) |
+ | Transceiver (const Transceiver &)=delete |
+Transceiver & | operator= (const Transceiver &)=delete |
+const ed247_socket_t & | get_socket () const |
+Additional Inherited Members | |
Protected Attributes inherited from ed247::udp::Transceiver | |
+Context * | _context |
+socket_address_t | _socket_address |
+ed247_socket_t | _socket {INVALID_SOCKET} |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Data Structures | |
struct | frame_t |
+Public Types | |
+using | receive_callback_t = std::function< void(const char *payload, uint32_t size)> |
+Public Member Functions | |
+ | Receiver (Context *context, socket_address_t from_address, socket_address_t multicast_interface, receive_callback_t callback) |
+void | receive () |
Public Member Functions inherited from ed247::udp::Transceiver | |
+ | Transceiver (Context *context, const socket_address_t &socket_address) |
+ | Transceiver (const Transceiver &)=delete |
+Transceiver & | operator= (const Transceiver &)=delete |
+const ed247_socket_t & | get_socket () const |
+Static Public Attributes | |
+static const uint32_t | MAX_FRAME_SIZE {65508} |
+Additional Inherited Members | |
Protected Attributes inherited from ed247::udp::Transceiver | |
+Context * | _context |
+socket_address_t | _socket_address |
+ed247_socket_t | _socket {INVALID_SOCKET} |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ReceiverSet & | operator= (const ReceiverSet &)=delete |
+ReceiverSet & | operator= (ReceiverSet &&)=delete |
+void | emplace (Receiver *receiver) |
+ed247_status_t | wait_frame (int32_t timeout_us) |
+ed247_status_t | wait_during (int32_t duration_us) |
+Receiver::frame_t & | get_receive_frame () |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | Transceiver (Context *context, const socket_address_t &socket_address) |
+ | Transceiver (const Transceiver &)=delete |
+Transceiver & | operator= (const Transceiver &)=delete |
+const ed247_socket_t & | get_socket () const |
+Protected Attributes | |
+Context * | _context |
+socket_address_t | _socket_address |
+ed247_socket_t | _socket {INVALID_SOCKET} |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | exception (std::string message) |
Public Member Functions inherited from ed247::exception | |
+ | exception (std::string message) |
+const char * | what () const noexcept override |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Public Member Functions | |
+ | hex_stream (const void *payload, int len) |
+Friends | |
+LIBED247_EXPORT friend std::ostream & | operator<< (std::ostream &stream, const hex_stream &) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
▼ src | |
▼ ed247 | |
ed247.h | |
ed247_bswap.h | |
ed247_channel.h | |
ed247_client_list.h | |
ed247_cominterface.h | |
ed247_context.h | |
ed247_frame_header.h | |
ed247_friend_test.h | |
ed247_logs.h | |
ed247_sample.h | |
ed247_signal.h | |
ed247_stream.h | |
ed247_stream_assistant.h | |
ed247_time.h | |
ed247_xml.h |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
This page explains how to interpret the graphs that are generated by doxygen.
+Consider the following example:
This will result in the following graph:
+The boxes in the above graph have the following meaning:
+The arrows have the following meaning:
+
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Modules | |
Channel list | |
+Typedefs | |
+typedef struct ed247_internal_channel_t * | ed247_channel_t |
Channel identifier. | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_channel_get_stream_list (ed247_channel_t channel, ed247_stream_list_t *streams) |
Retrieve all the streams of the channel. More... | |
LIBED247_EXPORT ed247_status_t | ed247_channel_find_streams (ed247_channel_t channel, const char *regex_name, ed247_stream_list_t *streams) |
Find all streams of the channel whose names match regex_name . + More... | |
LIBED247_EXPORT ed247_status_t | ed247_channel_get_stream (ed247_channel_t channel, const char *name, ed247_stream_t *stream) |
get a channel stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_channel_set_user_data (ed247_channel_t channel, void *user_data) |
Assign user data to the channel. More... | |
LIBED247_EXPORT ed247_status_t | ed247_channel_get_user_data (ed247_channel_t channel, void **user_data) |
Retrieve user data assigned to the channel. More... | |
+LIBED247_EXPORT const char * | ed247_channel_get_name (ed247_channel_t channel) |
+LIBED247_EXPORT const char * | ed247_channel_get_comment (ed247_channel_t channel) |
+LIBED247_EXPORT ed247_standard_t | ed247_channel_get_frame_standard_revision (ed247_channel_t channel) |
LIBED247_EXPORT ed247_status_t ed247_channel_get_stream_list | +( | +ed247_channel_t | +channel, | +
+ | + | ed247_stream_list_t * | +streams | +
+ | ) | ++ |
Retrieve all the streams of the channel.
+The lifespan of returned streams
is the same as the context
, but you can safely call ed247_stream_list_free().
[in] | channel | The channel identifier |
[out] | streams | List of the streams |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_channel_find_streams | +( | +ed247_channel_t | +channel, | +
+ | + | const char * | +regex_name, | +
+ | + | ed247_stream_list_t * | +streams | +
+ | ) | ++ |
Find all streams of the channel whose names match regex_name
.
+
regex_name
shall follow the ECMAScript grammar.
+ This function allocates streams
. It has to be freed with ed247_stream_list_free().
+ If you know exact stream names, use ed247_get_stream() instead which is really faster and malloc-free.
+ If you want all channel streams, use ed247_channel_get_stream_list() instead which is really faster and malloc-free.
+
[in] | channel | The channel identifier |
[in] | regex_name | The regular expression for name matching. If null, assume '.*'. |
[out] | streams | The list of the streams. If no value, set to null. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_channel_get_stream | +( | +ed247_channel_t | +channel, | +
+ | + | const char * | +name, | +
+ | + | ed247_stream_t * | +stream | +
+ | ) | ++ |
get a channel stream.
+[in] | channel | The channel identifier |
[in] | name | The name of the stream. |
[out] | stream | The stream identifier. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_channel_set_user_data | +( | +ed247_channel_t | +channel, | +
+ | + | void * | +user_data | +
+ | ) | ++ |
Assign user data to the channel.
+Memory has to be free by the user.
+[in] | channel | The channel identifier |
[in] | user_data | Pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_channel_get_user_data | +( | +ed247_channel_t | +channel, | +
+ | + | void ** | +user_data | +
+ | ) | ++ |
Retrieve user data assigned to the channel.
+[in] | channel | The channel identifier |
[out] | user_data | Pointer to host pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Typedefs | |
+typedef struct ed247_internal_channel_list_t * | ed247_channel_list_t |
Channel list identifier. | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_channel_list_size (ed247_channel_list_t channels, uint32_t *size) |
Get the size of the list. More... | |
LIBED247_EXPORT ed247_status_t | ed247_channel_list_next (ed247_channel_list_t channels, ed247_channel_t *channel) |
Iterate over a channel identifier list. More... | |
LIBED247_EXPORT ed247_status_t | ed247_channel_list_free (ed247_channel_list_t channels) |
Free channel list. More... | |
LIBED247_EXPORT ed247_status_t ed247_channel_list_size | +( | +ed247_channel_list_t | +channels, | +
+ | + | uint32_t * | +size | +
+ | ) | ++ |
Get the size of the list.
+[in] | channels | The channel list |
[out] | size | The size of the list |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_channel_list_next | +( | +ed247_channel_list_t | +channels, | +
+ | + | ed247_channel_t * | +channel | +
+ | ) | ++ |
Iterate over a channel identifier list.
+A null
value is set when the end of the list is reached. Return value is ED247_STATUS_SUCCESS. The next call will return the pointer to the first item of the list.
[in,out] | channels | The channel list |
[out] | channel | A pointer to the current item in the list. |
ED247_STATUS_SUCCESS | Operation completed successfully even if end of list may be reached |
ED247_STATUS_FAILURE | Invalid parameter provided or internal error |
LIBED247_EXPORT ed247_status_t ed247_channel_list_free | +( | +ed247_channel_list_t | +channels | ) | ++ |
Free channel list.
+[in] | channels | The channel list |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
The context is the main entry point to load and use an ECIC.
++Modules | |
Initialization | |
General information | |
Read configuration | |
Receive and send | |
Receive and send callbacks | |
+Typedefs | |
+typedef struct ed247_internal_context_t * | ed247_context_t |
Context identifier. | |
+Enumerations | |
enum | ed247_component_type_t { + ED247_COMPONENT_TYPE__INVALID, + + ED247_COMPONENT_TYPE_VIRTUAL, + + ED247_COMPONENT_TYPE_BRIDGE, + + ED247_COMPONENT_TYPE__COUNT + + } |
Component types. | |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Typedefs | |
typedef ed247_status_t(* | ed247_stream_recv_callback_t) (ed247_context_t context, ed247_stream_t stream) |
Stream receive callback function pointer. More... | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_stream_register_recv_callback (ed247_context_t context, ed247_stream_t stream, ed247_stream_recv_callback_t callback) |
Register a callback (in a stream) which is called once a frame is received and decoded. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_unregister_recv_callback (ed247_context_t context, ed247_stream_t stream, ed247_stream_recv_callback_t callback) |
Unregister a callback (from a stream) which is called once a frame is received and decoded. More... | |
LIBED247_EXPORT ed247_status_t | ed247_streams_register_recv_callback (ed247_context_t context, ed247_stream_list_t streams, ed247_stream_recv_callback_t callback) |
Register a callback (in several streams as once) which is called once a frame is received and decoded. More... | |
LIBED247_EXPORT ed247_status_t | ed247_streams_unregister_recv_callback (ed247_context_t context, ed247_stream_list_t streams, ed247_stream_recv_callback_t callback) |
Unregister a callback (from several streams as once) which is called once a frame is received and decoded. More... | |
LIBED247_EXPORT ed247_status_t | ed247_register_recv_callback (ed247_context_t context, ed247_stream_recv_callback_t callback) |
Register a callback (in all streams) which is called once a frame is received and decoded. More... | |
LIBED247_EXPORT ed247_status_t | ed247_unregister_recv_callback (ed247_context_t context, ed247_stream_recv_callback_t callback) |
Unegister a callback (in all streams) which is called once a frame is received and decoded. More... | |
typedef ed247_status_t(* ed247_stream_recv_callback_t) (ed247_context_t context, ed247_stream_t stream) | +
Stream receive callback function pointer.
+The decoding of the current frame will be aborted if the callback do not return ED247_STATUS_SUCCESS.
+ +LIBED247_EXPORT ed247_status_t ed247_stream_register_recv_callback | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_t | +stream, | +
+ | + | ed247_stream_recv_callback_t | +callback | +
+ | ) | ++ |
Register a callback (in a stream) which is called once a frame is received and decoded.
+[in] | context | |
[in] | stream | Stream identifier |
[in] | callback | The callback function |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_unregister_recv_callback | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_t | +stream, | +
+ | + | ed247_stream_recv_callback_t | +callback | +
+ | ) | ++ |
Unregister a callback (from a stream) which is called once a frame is received and decoded.
+[in] | context | |
[in] | stream | Stream identifier |
[in] | callback | The callback function |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_streams_register_recv_callback | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_list_t | +streams, | +
+ | + | ed247_stream_recv_callback_t | +callback | +
+ | ) | ++ |
Register a callback (in several streams as once) which is called once a frame is received and decoded.
+[in] | context | |
[in] | streams | Stream identifiers |
[in] | callback | The callback function |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_streams_unregister_recv_callback | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_list_t | +streams, | +
+ | + | ed247_stream_recv_callback_t | +callback | +
+ | ) | ++ |
Unregister a callback (from several streams as once) which is called once a frame is received and decoded.
+[in] | context | |
[in] | streams | Stream identifiers |
[in] | callback | The callback function |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_register_recv_callback | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_recv_callback_t | +callback | +
+ | ) | ++ |
Register a callback (in all streams) which is called once a frame is received and decoded.
+[in] | context | |
[in] | callback | The callback function |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_unregister_recv_callback | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_recv_callback_t | +callback | +
+ | ) | ++ |
Unegister a callback (in all streams) which is called once a frame is received and decoded.
+[in] | context | |
[in] | callback | The callback function |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_get_channel_list (ed247_context_t context, ed247_channel_list_t *channels) |
Retrieve all the channels of the component. More... | |
LIBED247_EXPORT ed247_status_t | ed247_find_channels (ed247_context_t context, const char *regex_name, ed247_channel_list_t *channels) |
Find all channels of the component whose names match regex_name . More... | |
LIBED247_EXPORT ed247_status_t | ed247_get_channel (ed247_context_t context, const char *name, ed247_channel_t *channel) |
Get a channel of the component. More... | |
LIBED247_EXPORT ed247_status_t | ed247_get_stream_list (ed247_context_t context, ed247_stream_list_t *streams) |
Retrieve all the streams of the component. More... | |
LIBED247_EXPORT ed247_status_t | ed247_find_streams (ed247_context_t context, const char *regex_name, ed247_stream_list_t *streams) |
Find all streams of the component whose names match regex_name . More... | |
LIBED247_EXPORT ed247_status_t | ed247_get_stream (ed247_context_t context, const char *name, ed247_stream_t *stream) |
Get a stream of the component. More... | |
LIBED247_EXPORT ed247_status_t | ed247_find_signals (ed247_context_t context, const char *regex_name, ed247_signal_list_t *signals) |
Find all signals of the component whose names match regex_name . More... | |
LIBED247_EXPORT ed247_status_t | ed247_get_signal (ed247_context_t context, const char *name, ed247_signal_t *signal) |
Get a signal of the component. More... | |
LIBED247_EXPORT ed247_status_t ed247_get_channel_list | +( | +ed247_context_t | +context, | +
+ | + | ed247_channel_list_t * | +channels | +
+ | ) | ++ |
Retrieve all the channels of the component.
+The lifespan of returned channels
is the same as the context
, but you can safely call ed247_channel_list_free().
[in] | context | The context identifier |
[out] | channels | List of the channels |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_find_channels | +( | +ed247_context_t | +context, | +
+ | + | const char * | +regex_name, | +
+ | + | ed247_channel_list_t * | +channels | +
+ | ) | ++ |
Find all channels of the component whose names match regex_name
.
regex_name
shall follow the ECMAScript grammar.
+ This function allocates channels
. It has to be freed with ed247_channel_list_free().
+ If you know exact channel names, use ed247_get_channel() instead which is really faster and malloc-free.
+ If you want all channels, use ed247_get_channel_list() instead which is really faster and malloc-free.
+
[in] | context | The context identifier. |
[in] | regex_name | The regular expression for name matching. If null, assume '.*'. |
[out] | channels | The list of the channels. If no value, set to null. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The channel list is empty |
LIBED247_EXPORT ed247_status_t ed247_get_channel | +( | +ed247_context_t | +context, | +
+ | + | const char * | +name, | +
+ | + | ed247_channel_t * | +channel | +
+ | ) | ++ |
Get a channel of the component.
+[in] | context | The context identifier. |
[in] | name | The name of the channel. |
[out] | channel | The channel identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The channel list is empty |
LIBED247_EXPORT ed247_status_t ed247_get_stream_list | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_list_t * | +streams | +
+ | ) | ++ |
Retrieve all the streams of the component.
+The lifespan of returned streams
is the same as the context
, but you can safely call ed247_stream_list_free().
[in] | context | The context identifier |
[out] | streams | List of the streams |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_find_streams | +( | +ed247_context_t | +context, | +
+ | + | const char * | +regex_name, | +
+ | + | ed247_stream_list_t * | +streams | +
+ | ) | ++ |
Find all streams of the component whose names match regex_name
.
regex_name
shall follow the ECMAScript grammar.
+ This function allocates streams
. It has to be freed with ed247_stream_list_free().
+ If you know exact stream names, use ed247_get_stream() instead which is really faster and malloc-free.
+ If you want all streams, use ed247_get_stream_list() instead which is really faster and malloc-free.
+
[in] | context | The context identifier |
[in] | regex_name | The regular expression for name matching. If null, assume '.*'. |
[out] | streams | The list of the streams. If no value, set to null. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_get_stream | +( | +ed247_context_t | +context, | +
+ | + | const char * | +name, | +
+ | + | ed247_stream_t * | +stream | +
+ | ) | ++ |
Get a stream of the component.
+[in] | context | The context identifier |
[in] | name | The name of the stream. |
[out] | stream | The stream identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_find_signals | +( | +ed247_context_t | +context, | +
+ | + | const char * | +regex_name, | +
+ | + | ed247_signal_list_t * | +signals | +
+ | ) | ++ |
Find all signals of the component whose names match regex_name
.
regex_name
shall follow the ECMAScript grammar.
+ This function allocates signals
. It has to be freed with ed247_signal_list_free().
+ If you know exact signal names, use ed247_get_signal() instead which is really faster and malloc-free.
+
[in] | context | The context identifier |
[in] | regex_name | The regular expression for name matching. If null, assume '.*'. |
[out] | signals | The list of the signals. If no value, set to null. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_get_signal | +( | +ed247_context_t | +context, | +
+ | + | const char * | +name, | +
+ | + | ed247_signal_t * | +signal | +
+ | ) | ++ |
Get a signal of the component.
+[in] | context | The context identifier |
[in] | name | The signal name. |
[out] | signal | The signal identifier. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Functions | |
+LIBED247_EXPORT const char * | ed247_component_get_version (ed247_context_t context) |
+LIBED247_EXPORT ed247_component_type_t | ed247_component_get_type (ed247_context_t context) |
+LIBED247_EXPORT const char * | ed247_component_get_name (ed247_context_t context) |
+LIBED247_EXPORT const char * | ed247_component_get_comment (ed247_context_t context) |
+LIBED247_EXPORT ed247_uid_t | ed247_component_get_identifier (ed247_context_t context) |
+LIBED247_EXPORT ed247_standard_t | ed247_component_get_standard_revision (ed247_context_t context) |
+LIBED247_EXPORT const char * | ed247_file_producer_get_identifier (ed247_context_t context) |
+LIBED247_EXPORT const char * | ed247_file_producer_get_comment (ed247_context_t context) |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_load_file (const char *ecic_file_path, ed247_context_t *context) |
Loading function: the entry point of the library. More... | |
LIBED247_EXPORT ed247_status_t | ed247_load_content (const char *ecic_file_content, ed247_context_t *context) |
Loading function: the entry point of the library. More... | |
LIBED247_EXPORT ed247_status_t | ed247_unload (ed247_context_t context) |
Unload resources linked to the given context. More... | |
LIBED247_EXPORT ed247_status_t | ed247_component_set_user_data (ed247_context_t context, void *user_data) |
Assign user data to the context. More... | |
LIBED247_EXPORT ed247_status_t | ed247_component_get_user_data (ed247_context_t context, void **user_data) |
Retrieve user data pointer form the context. More... | |
LIBED247_EXPORT ed247_status_t ed247_load_file | +( | +const char * | +ecic_file_path, | +
+ | + | ed247_context_t * | +context | +
+ | ) | ++ |
Loading function: the entry point of the library.
+[in] | ecic_file_path | The path to the ECIC configuration file |
[out] | context | The loaded context identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | An error occurred during the load phase (xml parsing or internal loading) |
LIBED247_EXPORT ed247_status_t ed247_load_content | +( | +const char * | +ecic_file_content, | +
+ | + | ed247_context_t * | +context | +
+ | ) | ++ |
Loading function: the entry point of the library.
+[in] | ecic_file_content | The content of the ECIC configuration file |
[out] | context | The loaded context identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | An error occurred during the load phase (xml parsing or internal loading) |
LIBED247_EXPORT ed247_status_t ed247_unload | +( | +ed247_context_t | +context | ) | ++ |
Unload resources linked to the given context.
+[in] | context | Context identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_component_set_user_data | +( | +ed247_context_t | +context, | +
+ | + | void * | +user_data | +
+ | ) | ++ |
Assign user data to the context.
+When unloading the component, there is no memory free on this item. Free it yourself.
+[in] | context | The context identifier |
[in] | user_data | A pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_component_get_user_data | +( | +ed247_context_t | +context, | +
+ | + | void ** | +user_data | +
+ | ) | ++ |
Retrieve user data pointer form the context.
+[in] | context | The context identifier |
[out] | user_data | A pointer to host pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Receive and send data from/o network. To read/write data, see streams methods.
++Functions | |
LIBED247_EXPORT ed247_status_t | ed247_wait_frame (ed247_context_t context, ed247_stream_list_t *streams, int32_t timeout_us) |
Blocks until a frame is received and processed, and at least a stream has available data. More... | |
LIBED247_EXPORT ed247_status_t | ed247_wait_during (ed247_context_t context, ed247_stream_list_t *streams, int32_t duration_us) |
Blocks until duration is elapsed. Processing all received frames. More... | |
LIBED247_EXPORT ed247_status_t | ed247_send_pushed_samples (ed247_context_t context) |
Send the samples that were written and pushed. More... | |
LIBED247_EXPORT ed247_status_t ed247_wait_frame | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_list_t * | +streams, | +
+ | + | int32_t | +timeout_us | +
+ | ) | ++ |
Blocks until a frame is received and processed, and at least a stream has available data.
+If several frames has been received since last wait_frame/wait_during, all of them are processed.
+ streams
, if not NULL, will be set to the list of streams with incomming data available. its lifespan is the same as the context
, but you can safely call ed247_stream_list_free().
[in] | context | Context identifier |
[out] | streams | List of streams that received samples, can be NULL |
[in] | timeout_us | Timeout value, in microseconds |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | |
ED247_STATUS_TIMEOUT |
LIBED247_EXPORT ed247_status_t ed247_wait_during | +( | +ed247_context_t | +context, | +
+ | + | ed247_stream_list_t * | +streams, | +
+ | + | int32_t | +duration_us | +
+ | ) | ++ |
Blocks until duration is elapsed. Processing all received frames.
+streams
, if not NULL, will be set to the list of streams with incomming data available. its lifespan is the same as the context
, but you can safely call ed247_stream_list_free().
[in] | context | Context identifier |
[out] | streams | List of streams that received samples, can be NULL |
[in] | duration_us | Duration value, in microseconds |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_send_pushed_samples | +( | +ed247_context_t | +context | ) | ++ |
Send the samples that were written and pushed.
+See also :
This function clear send stacks.
+[in] | context | Context identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Do not use.
++Functions | |
+DEPRECATED LIBED247_EXPORT const char * | libed247_errors () |
Deprecated. Return NULL. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_load (const char *ecic_file_path, void *unused, ed247_context_t *context) |
Deprecated: use ed247_load_file. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_component_get_channels (ed247_context_t context, ed247_channel_list_t *channels) |
Deprecated: use ed247_get_channel_list. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_component_get_streams (ed247_context_t context, ed247_stream_list_t *streams) |
Deprecated: use ed247_get_stream_list. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_channel_get_streams (ed247_channel_t channel, ed247_stream_list_t *streams) |
Deprecated: use ed247_channel_get_stream_list. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_find_channel_streams (ed247_channel_t channel, const char *regex_name, ed247_stream_list_t *streams) |
Deprecated: use ed247_channel_find_streams. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_get_channel_stream (ed247_channel_t channel, const char *name, ed247_stream_t *stream) |
Deprecated: use ed247_channel_get_stream. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_stream_contains_signals (ed247_stream_t stream, uint8_t *yesno) |
Deprecated: use ed247_stream_has_signals. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_stream_get_signals (ed247_stream_t stream, ed247_signal_list_t *signals) |
Deprecated: use ed247_stream_get_signal_list. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_find_stream_signals (ed247_stream_t stream, const char *regex_name, ed247_signal_list_t *signals) |
Deprecated: use ed247_stream_find_signals. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_get_stream_signal (ed247_stream_t stream, const char *name, ed247_signal_t *signal) |
Deprecated: use ed247_stream_get_signal. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_free (void *data) |
Deprecated: use ed247_signal_free_sample or ed247_stream_free_sample. | |
+DEPRECATED LIBED247_EXPORT ed247_status_t | ed247_get_runtime_metrics (ed247_context_t context, const libed247_runtime_metrics_t **metrics) |
Deprecated: Not working. | |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Data Structures | |
struct | ed247_timestamp_t |
Timestamp structure, seconds from EPOCH (January 1st 1970) and nanoseconds offset with reference to previous field. More... | |
+Typedefs | |
+typedef uint16_t | ed247_uid_t |
Unique identifier type. | |
+Enumerations | |
enum | ed247_status_t { + ED247_STATUS_SUCCESS = 0, + + ED247_STATUS_FAILURE, + + ED247_STATUS_TIMEOUT, + + ED247_STATUS_NODATA + + } |
Status codes. | |
enum | ed247_log_level_t { + ED247_LOG_LEVEL_MIN = 0, + + ED247_LOG_LEVEL_ERROR = ED247_LOG_LEVEL_MIN, + + ED247_LOG_LEVEL_WARNING = 1, + + ED247_LOG_LEVEL_DEFAULT = ED247_LOG_LEVEL_WARNING, + + ED247_LOG_LEVEL_INFO = 2, + + ED247_LOG_LEVEL_DEBUG = 3, + + ED247_LOG_LEVEL_CRAZY = 99, + + ED247_LOG_LEVEL_MAX = ED247_LOG_LEVEL_CRAZY, + + ED247_LOG_LEVEL_UNSET = 100 + + } |
Logging level. | |
enum | ed247_yesno_t { + ED247_YESNO_NO = 0, + + ED247_YESNO_YES, + + ED247_YESNO__INVALID + + } |
Yes / No. | |
enum | ed247_standard_t { + ED247_STANDARD__INVALID, + + ED247_STANDARD_ED247, + + ED247_STANDARD_ED247A, + + ED247_STANDARD__COUNT + + } |
ED247 Standard revisions. | |
+Functions | |
LIBED247_EXPORT const char * | ed247_get_implementation_name () |
The name of the current implementation. More... | |
LIBED247_EXPORT const char * | ed247_get_implementation_version () |
The version of the current implementation. More... | |
LIBED247_EXPORT ed247_status_t | ed247_set_log (ed247_log_level_t log_level, const char *log_filepath) |
Setup the logging parameters. More... | |
LIBED247_EXPORT ed247_status_t | ed247_set_log_level (ed247_log_level_t log_level) |
Setup the logging level (see ed247_log_level_t) More... | |
LIBED247_EXPORT ed247_status_t | ed247_get_log_level (ed247_log_level_t *log_level) |
Get the logging level (see ed247_log_level_t) More... | |
LIBED247_EXPORT const char* ed247_get_implementation_name | +( | +) | ++ |
The name of the current implementation.
+LIBED247_EXPORT const char* ed247_get_implementation_version | +( | +) | ++ |
The version of the current implementation.
+LIBED247_EXPORT ed247_status_t ed247_set_log | +( | +ed247_log_level_t | +log_level, | +
+ | + | const char * | +log_filepath | +
+ | ) | ++ |
Setup the logging parameters.
+Environment variables have the priority: This function will be ignored if they are set.
+[in] | log_level | Logging level |
[in] | log_filepath | Log file path |
ED247_STATUS_SUCCESS |
LIBED247_EXPORT ed247_status_t ed247_set_log_level | +( | +ed247_log_level_t | +log_level | ) | ++ |
Setup the logging level (see ed247_log_level_t)
+Environment variables have the priority: This function will be ignored if they are set.
+[in] | log_level | Logging level |
ED247_STATUS_SUCCESS |
LIBED247_EXPORT ed247_status_t ed247_get_log_level | +( | +ed247_log_level_t * | +log_level | ) | ++ |
Get the logging level (see ed247_log_level_t)
+[out] | log_level | Logging level |
ED247_STATUS_SUCCESS |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Note: To read/write signals, see stream assistant
++Modules | |
Signal list | |
+Typedefs | |
+typedef struct ed247_internal_signal_t * | ed247_signal_t |
Signal identifier. | |
+Enumerations | |
enum | ed247_signal_type_t { + ED247_SIGNAL_TYPE__INVALID, + + ED247_SIGNAL_TYPE_ANALOG = ED247_STREAM_TYPE_ANALOG, + + ED247_SIGNAL_TYPE_DISCRETE = ED247_STREAM_TYPE_DISCRETE, + + ED247_SIGNAL_TYPE_NAD = ED247_STREAM_TYPE_NAD, + + ED247_SIGNAL_TYPE_VNAD = ED247_STREAM_TYPE_VNAD + + } |
Signal types. | |
enum | ed247_nad_type_t { + ED247_NAD_TYPE__INVALID, + + ED247_NAD_TYPE_INT8, + + ED247_NAD_TYPE_INT16, + + ED247_NAD_TYPE_INT32, + + ED247_NAD_TYPE_INT64, + + ED247_NAD_TYPE_UINT8, + + ED247_NAD_TYPE_UINT16, + + ED247_NAD_TYPE_UINT32, + + ED247_NAD_TYPE_UINT64, + + ED247_NAD_TYPE_FLOAT32, + + ED247_NAD_TYPE_FLOAT64, + + ED247_NAD_TYPE__COUNT + + } |
NAD type. | |
enum | ed247_discrete_t { + ED247_DISCRETE_FALSE = 0x00, + + ED247_DISCRETE_TRUE = 0xFF + + } |
Discrete values to be used. | |
+Functions | |
LIBED247_EXPORT uint32_t | ed247_nad_type_size (ed247_nad_type_t nad_type) |
Size of a single element of ed247_nad_type_t. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_set_user_data (ed247_signal_t signal, void *user_data) |
Assign user data to the signal. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_get_user_data (ed247_signal_t signal, void **user_data) |
Retrieve user data assigned to the signal. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_get_stream (ed247_signal_t signal, ed247_stream_t *stream) |
Get the stream that contain this signal. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_get_assistant (ed247_signal_t signal, ed247_stream_assistant_t *assistant) |
Get the stream assistant associated with this signal. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_allocate_sample (ed247_signal_t signal, void **sample_data, uint32_t *sample_size) |
Allocate a sample to store one signal. More... | |
+LIBED247_EXPORT const char * | ed247_signal_get_name (ed247_signal_t signal) |
+LIBED247_EXPORT const char * | ed247_signal_get_comment (ed247_signal_t signal) |
+LIBED247_EXPORT const char * | ed247_signal_get_icd (ed247_signal_t signal) |
+LIBED247_EXPORT ed247_signal_type_t | ed247_signal_get_type (ed247_signal_t signal) |
+LIBED247_EXPORT uint32_t | ed247_signal_get_byte_offset (ed247_signal_t signal) |
Meaningless for VNAD. | |
+LIBED247_EXPORT const char * | ed247_signal_analogue_get_electrical_unit (ed247_signal_t analogue_signal) |
+LIBED247_EXPORT ed247_nad_type_t | ed247_signal_nad_get_type (ed247_signal_t nad_signal) |
For NAD and VNAD. | |
+LIBED247_EXPORT const char * | ed247_signal_nad_get_unit (ed247_signal_t nad_signal) |
For NAD and VNAD. | |
+LIBED247_EXPORT uint32_t | ed247_signal_nad_get_dimensions_count (ed247_signal_t nad_signal) |
+LIBED247_EXPORT uint32_t | ed247_signal_nad_get_dimension (ed247_signal_t nad_signal, uint32_t dimention_id) |
+LIBED247_EXPORT uint32_t | ed247_signal_vnad_get_position (ed247_signal_t vnad_signal) |
+LIBED247_EXPORT uint32_t | ed247_signal_vnad_get_max_number (ed247_signal_t vnad_signal) |
LIBED247_EXPORT uint32_t ed247_nad_type_size | +( | +ed247_nad_type_t | +nad_type | ) | ++ |
Size of a single element of ed247_nad_type_t.
+[in] | nad_type | The NAD type |
LIBED247_EXPORT ed247_status_t ed247_signal_set_user_data | +( | +ed247_signal_t | +signal, | +
+ | + | void * | +user_data | +
+ | ) | ++ |
Assign user data to the signal.
+Memory has to be free by the user.
+[in] | signal | The signal identifier |
[in] | user_data | Pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_signal_get_user_data | +( | +ed247_signal_t | +signal, | +
+ | + | void ** | +user_data | +
+ | ) | ++ |
Retrieve user data assigned to the signal.
+[in] | signal | The signal identifier |
[out] | user_data | Pointer to host pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_signal_get_stream | +( | +ed247_signal_t | +signal, | +
+ | + | ed247_stream_t * | +stream | +
+ | ) | ++ |
Get the stream that contain this signal.
+[in] | signal | The signal identifier |
[out] | stream | The stream identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_signal_get_assistant | +( | +ed247_signal_t | +signal, | +
+ | + | ed247_stream_assistant_t * | +assistant | +
+ | ) | ++ |
Get the stream assistant associated with this signal.
+Calling this method is the same as calling ed247_signal_get_stream() then ed247_stream_get_assistant()
+[in] | signal | |
[out] | assistant |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_signal_allocate_sample | +( | +ed247_signal_t | +signal, | +
+ | + | void ** | +sample_data, | +
+ | + | uint32_t * | +sample_size | +
+ | ) | ++ |
Allocate a sample to store one signal.
+For VNAD, the allcated size is the max signal size.
+ Memory has to be released with ed247_signal_free_sample().
+
[in] | signal | Signal identifier |
[out] | sample_data | Pointer to the allocated memory |
[out] | sample_size | Size of the memory allocated for the sample |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Typedefs | |
+typedef struct ed247_internal_signal_list_t * | ed247_signal_list_t |
Signal list identifier. | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_signal_list_size (ed247_signal_list_t signals, uint32_t *size) |
Get the size of the list. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_list_next (ed247_signal_list_t signals, ed247_signal_t *signal) |
Iterate over a signal identifier list. More... | |
LIBED247_EXPORT ed247_status_t | ed247_signal_list_free (ed247_signal_list_t signals) |
Free signal list. More... | |
LIBED247_EXPORT ed247_status_t ed247_signal_list_size | +( | +ed247_signal_list_t | +signals, | +
+ | + | uint32_t * | +size | +
+ | ) | ++ |
Get the size of the list.
+[in] | signals | The signal list |
[out] | size | The size of the list |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_signal_list_next | +( | +ed247_signal_list_t | +signals, | +
+ | + | ed247_signal_t * | +signal | +
+ | ) | ++ |
Iterate over a signal identifier list.
+A null
value is set when the end of the list is reached. Return value is ED247_STATUS_SUCCESS. The next call will return the pointer to the first item of the list.
[in,out] | signals | The signal list |
[out] | signal | A pointer to the current item in the list. |
ED247_STATUS_SUCCESS | Operation completed successfully even if end of list may be reached |
ED247_STATUS_FAILURE | Invalid parameter provided or internal error |
LIBED247_EXPORT ed247_status_t ed247_signal_list_free | +( | +ed247_signal_list_t | +signals | ) | ++ |
Free signal list.
+[in] | signals | The signal list |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Modules | |
Read and Write | |
Stream list | |
+Data Structures | |
struct | ed247_sample_details_s |
Sample Details. More... | |
+Typedefs | |
+typedef struct ed247_internal_stream_t * | ed247_stream_t |
Stream identifier. | |
+typedef struct ed247_sample_details_s | ed247_sample_details_t |
Sample Details. | |
+Enumerations | |
enum | ed247_stream_type_t { + ED247_STREAM_TYPE__INVALID, + + ED247_STREAM_TYPE_A664, + + ED247_STREAM_TYPE_A429, + + ED247_STREAM_TYPE_A825, + + ED247_STREAM_TYPE_M1553, + + ED247_STREAM_TYPE_SERIAL, + + ED247_STREAM_TYPE_AUDIO, + + ED247_STREAM_TYPE_VIDEO, + + ED247_STREAM_TYPE_ETHERNET, + + ED247_STREAM_TYPE_ANALOG, + + ED247_STREAM_TYPE_DISCRETE, + + ED247_STREAM_TYPE_NAD, + + ED247_STREAM_TYPE_VNAD, + + ED247_STREAM_TYPE__COUNT + + } |
Stream types. | |
enum | ed247_direction_t { + ED247_DIRECTION__INVALID = 0, + + ED247_DIRECTION_IN = 0b01, + + ED247_DIRECTION_OUT = 0b10, + + ED247_DIRECTION_INOUT = ED247_DIRECTION_IN | ED247_DIRECTION_OUT + + } |
Stream direction. | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_stream_has_signals (ed247_stream_t stream, uint8_t *yesno) |
Check if the stream is a signal based one (DISCRETE, ANALOG, NAD or VNAD) More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_get_signal_list (ed247_stream_t stream, ed247_signal_list_t *signals) |
Return all signals of a stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_find_signals (ed247_stream_t stream, const char *regex_name, ed247_signal_list_t *signals) |
Find all signals of the channel whose names match regex_name . More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_get_signal (ed247_stream_t stream, const char *name, ed247_signal_t *signal) |
Get a signal of the stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_get_channel (ed247_stream_t stream, ed247_channel_t *channel) |
Get the channel that contain this stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_set_user_data (ed247_stream_t stream, void *user_data) |
Assign user data to the stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_get_user_data (ed247_stream_t stream, void **user_data) |
Retrieve user data assigned to the stream. More... | |
+LIBED247_EXPORT const char * | ed247_stream_get_name (ed247_stream_t stream) |
+LIBED247_EXPORT ed247_direction_t | ed247_stream_get_direction (ed247_stream_t stream) |
+LIBED247_EXPORT ed247_stream_type_t | ed247_stream_get_type (ed247_stream_t stream) |
+LIBED247_EXPORT const char * | ed247_stream_get_comment (ed247_stream_t stream) |
+LIBED247_EXPORT const char * | ed247_stream_get_icd (ed247_stream_t stream) |
+LIBED247_EXPORT ed247_uid_t | ed247_stream_get_uid (ed247_stream_t stream) |
+LIBED247_EXPORT uint32_t | ed247_stream_get_sample_max_number (ed247_stream_t stream) |
+LIBED247_EXPORT uint32_t | ed247_stream_get_sample_max_size_bytes (ed247_stream_t stream) |
+LIBED247_EXPORT uint32_t | ed247_stream_get_sampling_period_us (ed247_stream_t stream) |
LIBED247_EXPORT ed247_status_t ed247_stream_has_signals | +( | +ed247_stream_t | +stream, | +
+ | + | uint8_t * | +yesno | +
+ | ) | ++ |
Check if the stream is a signal based one (DISCRETE, ANALOG, NAD or VNAD)
+[in] | stream | Stream identifier |
[out] | yesno | Result of the check, true for yes and false for no |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_get_signal_list | +( | +ed247_stream_t | +stream, | +
+ | + | ed247_signal_list_t * | +signals | +
+ | ) | ++ |
Return all signals of a stream.
+The lifespan of returned signals
is the same as the context
, but you can safely call ed247_signal_list_free().
[in] | stream | The stream identifier |
[out] | signals | The list of the signals. If no value, set to null. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_stream_find_signals | +( | +ed247_stream_t | +stream, | +
+ | + | const char * | +regex_name, | +
+ | + | ed247_signal_list_t * | +signals | +
+ | ) | ++ |
Find all signals of the channel whose names match regex_name
.
regex_name
shall follow the ECMAScript grammar.
+ This function allocates signals
. It has to be freed with ed247_signal_list_free().
+ If you know exact signal names, use ed247_get_signal() instead which is really faster and malloc-free.
+ If you want all stream signals, use ed247_stream_get_signal_list() instead which is really faster and malloc-free.
+
[in] | stream | The stream identifier |
[in] | regex_name | The regular expression for name matching. If null, assume '.*'. |
[out] | signals | The list of the signals. If no value, set to null. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_stream_get_signal | +( | +ed247_stream_t | +stream, | +
+ | + | const char * | +name, | +
+ | + | ed247_signal_t * | +signal | +
+ | ) | ++ |
Get a signal of the stream.
+[in] | stream | The stream identifier |
[in] | name | The stream name. |
[out] | signal | The signal identifier. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | The stream list is empty |
LIBED247_EXPORT ed247_status_t ed247_stream_get_channel | +( | +ed247_stream_t | +stream, | +
+ | + | ed247_channel_t * | +channel | +
+ | ) | ++ |
Get the channel that contain this stream.
+[in] | stream | The stream identifier |
[out] | channel | The channel identifier |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_set_user_data | +( | +ed247_stream_t | +stream, | +
+ | + | void * | +user_data | +
+ | ) | ++ |
Assign user data to the stream.
+Memory has to be free by the user.
+[in] | stream | The stream identifier |
[in] | user_data | Pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_get_user_data | +( | +ed247_stream_t | +stream, | +
+ | + | void ** | +user_data | +
+ | ) | ++ |
Retrieve user data assigned to the stream.
+[in] | stream | The stream identifier |
[out] | user_data | Pointer to host pointer to user data |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Helper methods to read and write signals within a stream
++Typedefs | |
+typedef struct ed247_internal_stream_assistant_t * | ed247_stream_assistant_t |
An assistant to help building stream samples. | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_stream_assistant_get_stream (ed247_stream_assistant_t assistant, ed247_stream_t *stream) |
Get the stream associated to the assistant. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_assistant_write_signal (ed247_stream_assistant_t assistant, ed247_signal_t signal, const void *signal_sample_data, uint32_t signal_sample_size) |
Write a signal into the assistant sample buffer. More... | |
+LIBED247_EXPORT bool | ed247_stream_assistant_was_written (ed247_stream_assistant_t assistant) |
Return true if a signal has been written since last ed247_stream_assistant_push_sample(). | |
LIBED247_EXPORT ed247_status_t | ed247_stream_assistant_read_signal (ed247_stream_assistant_t assistant, ed247_signal_t signal, const void **signal_sample_data, uint32_t *signal_sample_size) |
Read a signal sample from the assistant sample buffer. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_assistant_push_sample (ed247_stream_assistant_t assistant, const ed247_timestamp_t *data_timestamp, bool *full) |
Push the assistant sample buffer on the stream stack. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_assistants_written_push_samples (ed247_context_t context, const ed247_timestamp_t *data_timestamp) |
Push all stream assistants whose signals have been written since last push_sample() More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_assistant_pop_sample (ed247_stream_assistant_t assistant, const ed247_timestamp_t **data_timestamp, const ed247_timestamp_t **recv_timestamp, const ed247_sample_details_t **sample_details, bool *empty) |
Pop a sample from stream samples stack. More... | |
LIBED247_EXPORT ed247_status_t | stream_assistants_pop_samples (ed247_context_t context) |
Pop all samples of all input stream assistants. aka 'update all signals'. More... | |
LIBED247_EXPORT ed247_status_t ed247_stream_assistant_get_stream | +( | +ed247_stream_assistant_t | +assistant, | +
+ | + | ed247_stream_t * | +stream | +
+ | ) | ++ |
Get the stream associated to the assistant.
+[in] | assistant | Assistant identifier |
[out] | stream | Stream identifier pointer |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_assistant_write_signal | +( | +ed247_stream_assistant_t | +assistant, | +
+ | + | ed247_signal_t | +signal, | +
+ | + | const void * | +signal_sample_data, | +
+ | + | uint32_t | +signal_sample_size | +
+ | ) | ++ |
Write a signal into the assistant sample buffer.
+This function manage endianness (analogue, NAD, VNAD).
+
The signal_sample_size
shall be set to:
Once signals are written, call ed247_stream_assistant_push_sample() to push the sample on the stream stack.
+ if a non-VNAD signal is not wrotten before the push, the previous value will be sent (0 if never wrote).
+ if a VNAD signal is not wrotten before the push, it will not be part of the payload.
+ See also ed247_stream_assistants_written_push_samples().
[in] | assistant | Assistant identifier |
[in] | signal | Signal identifier |
[in] | signal_sample_data | Retrieve pointer of allocated memory |
[in] | signal_sample_size | Retrieve size of allocated memory |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_assistant_read_signal | +( | +ed247_stream_assistant_t | +assistant, | +
+ | + | ed247_signal_t | +signal, | +
+ | + | const void ** | +signal_sample_data, | +
+ | + | uint32_t * | +signal_sample_size | +
+ | ) | ++ |
Read a signal sample from the assistant sample buffer.
+/!\ The assistant sample buffer is updated by ed247_stream_assistant_pop_sample() or stream_assistants_pop_samples().
+This function manage endianness (analogue, NAD, VNAD).
+
The signal_sample_size
will be be set to:
[in] | assistant | Assistant identifier |
[in] | signal | Signal identifier |
[in] | signal_sample_data | Retrieve pointer of the stream sample allocated in memory |
[in] | signal_sample_size | Retrieve size of the stream sample allocated in memory |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_assistant_push_sample | +( | +ed247_stream_assistant_t | +assistant, | +
+ | + | const ed247_timestamp_t * | +data_timestamp, | +
+ | + | bool * | +full | +
+ | ) | ++ |
Push the assistant sample buffer on the stream stack.
+Data will be effectively sent by ed247_send_pushed_samples().
+ If internal stack is full, the oldest sample will be silently dropped. This is not an error.
Signals shall have been wrotten by ed247_stream_assistant_write_signal().
+ if a non-VNAD signal is not wrotten before the push, the previous value will be sent (0 if never wrote).
+ if a VNAD signal is not wrotten before the push, it will not be part of the payload.
+ See also ed247_stream_assistants_written_push_samples().
[in] | assistant | Assistant identifier |
[in] | data_timestamp | either NULL or define the data timestamp associated with the sample. |
[out] | full | set to true if the internal stack is full after the push. Set to NULL if not desired |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_assistants_written_push_samples | +( | +ed247_context_t | +context, | +
+ | + | const ed247_timestamp_t * | +data_timestamp | +
+ | ) | ++ |
Push all stream assistants whose signals have been written since last push_sample()
+This function will check, for each output stream assistant, if some signals have been written (call to ed247_stream_assistant_was_written()). It will push all the assistants that match. (call to ed247_stream_assistant_push_sample()). The stream will be effectively send by calling ed247_send_pushed_samples().
[in] | context | Context |
[in] | data_timestamp | either NULL or define the data timestamp associated with the sample. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_assistant_pop_sample | +( | +ed247_stream_assistant_t | +assistant, | +
+ | + | const ed247_timestamp_t ** | +data_timestamp, | +
+ | + | const ed247_timestamp_t ** | +recv_timestamp, | +
+ | + | const ed247_sample_details_t ** | +sample_details, | +
+ | + | bool * | +empty | +
+ | ) | ++ |
Pop a sample from stream samples stack.
+This function will fill assistant sample buffer that can be readed with ed247_stream_assistant_read_signal().
+Argument empty
, if not NULL, will be set to false if the stream stack is empty after the pop.
+ Return value will be ED247_STATUS_NODATA if the stream stack is empty before the pop.
+
[in] | assistant | Assistant identifier |
[out] | data_timestamp | if not NULL, filed with the data timestamp associated with the sample. |
[out] | recv_timestamp | if not NULL, filed with the receive timestamp. See ed247_get_receive_timestamp(). |
[out] | sample_details | Stream sample details |
[out] | empty | set to true if the internal stack is empty after the pop. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_NODATA | Receive stack is empty before the pop. |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t stream_assistants_pop_samples | +( | +ed247_context_t | +context | ) | ++ |
Pop all samples of all input stream assistants. aka 'update all signals'.
+After this call, all stream assistants will provide the last received signals value throught ed247_stream_assistant_read_signal(). If a singal has never been received, its value will be 0. This function is equivalent to call ed247_stream_assistant_pop_sample() on all stream assistants until all fifos are empties.
[in] | context | Context |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Note: to read/write signals see stream assistant
++Functions | |
LIBED247_EXPORT ed247_status_t | ed247_stream_get_assistant (ed247_stream_t stream, ed247_stream_assistant_t *assistant) |
Get an assistant to build stream samples based on signals. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_allocate_sample (ed247_stream_t stream, void **sample_data, uint32_t *sample_size) |
Allocate a sample to store one stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_free_sample (void *sample_data) |
Free memory allocated by ed247_stream_allocate_sample(). More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_samples_number (ed247_stream_t stream, ed247_direction_t direction, uint32_t *size) |
Number of samples in the stream stack. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_push_sample (ed247_stream_t stream, const void *sample_data, uint32_t sample_data_size, const ed247_timestamp_t *data_timestamp, bool *full) |
Write and push a single sample in the samples stack of the stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_push_samples (ed247_stream_t stream, const void *samples_data, const uint32_t *samples_size, uint32_t samples_number, const ed247_timestamp_t *data_timestamp, bool *full) |
Write and push several samples in the samples stack of the stream. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_pop_sample (ed247_stream_t stream, const void **sample_data, uint32_t *sample_size, const ed247_timestamp_t **data_timestamp, const ed247_timestamp_t **recv_timestamp, const ed247_sample_details_t **sample_details, bool *empty) |
Pop a sample from stream samples stack. More... | |
LIBED247_EXPORT ed247_status_t ed247_stream_get_assistant | +( | +ed247_stream_t | +stream, | +
+ | + | ed247_stream_assistant_t * | +assistant | +
+ | ) | ++ |
Get an assistant to build stream samples based on signals.
+[in] | stream | Stream identifier |
[out] | assistant | Stream assistant |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | When the stream is not signal based |
LIBED247_EXPORT ed247_status_t ed247_stream_allocate_sample | +( | +ed247_stream_t | +stream, | +
+ | + | void ** | +sample_data, | +
+ | + | uint32_t * | +sample_size | +
+ | ) | ++ |
Allocate a sample to store one stream.
+The size of the sample is deducted from the SampleMaxSizeBytes ED247 parameter of the stream.
+ Memory has to be released with ed247_stream_free_sample().
+
[in] | stream | Stream identifier |
[out] | sample_data | Pointer to the allocated memory |
[out] | sample_size | Size of the memory allocated for the sample |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_free_sample | +( | +void * | +sample_data | ) | ++ |
Free memory allocated by ed247_stream_allocate_sample().
+ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE | when sample_data is not allocated |
LIBED247_EXPORT ed247_status_t ed247_stream_samples_number | +( | +ed247_stream_t | +stream, | +
+ | + | ed247_direction_t | +direction, | +
+ | + | uint32_t * | +size | +
+ | ) | ++ |
Number of samples in the stream stack.
+[in] | stream | Stream identifier |
[in] | direction | Only ED247_DIRECTION_IN or ED247_DIRECTION_OUT accepted, reference the desired stack to write on |
[out] | size | Number of samples in the stack |
ED247_STATUS_SUCCESS |
LIBED247_EXPORT ed247_status_t ed247_stream_push_sample | +( | +ed247_stream_t | +stream, | +
+ | + | const void * | +sample_data, | +
+ | + | uint32_t | +sample_data_size, | +
+ | + | const ed247_timestamp_t * | +data_timestamp, | +
+ | + | bool * | +full | +
+ | ) | ++ |
Write and push a single sample in the samples stack of the stream.
+Data will be effectively sent by ed247_send_pushed_samples().
+ If internal stack is full, the oldest sample will be silently dropped. This is not an error.
[in] | stream | Stream identifier |
[in] | sample_data | Sample data to write, copied internally |
[in] | sample_data_size | Size of the sample data to write, in bytes |
[in] | data_timestamp | either NULL or define the data timestamp associated with the sample. |
[out] | full | set to true if the internal stack is full after the push. Set to NULL if not desired. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_push_samples | +( | +ed247_stream_t | +stream, | +
+ | + | const void * | +samples_data, | +
+ | + | const uint32_t * | +samples_size, | +
+ | + | uint32_t | +samples_number, | +
+ | + | const ed247_timestamp_t * | +data_timestamp, | +
+ | + | bool * | +full | +
+ | ) | ++ |
Write and push several samples in the samples stack of the stream.
+Data will be effectively sent by ed247_send_pushed_samples().
+ If internal stack is full, the oldest samples will be silently dropped. This is not an error.
[in] | stream | Stream identifier |
[in] | samples_data | Array of samples to be pushed |
[in] | samples_size | Array of sample sizes (one size for each sample in samples_data) |
[in] | samples_number | Number of samples to write. It must correspond to the number of elements in samples_data & samples_size |
[in] | data_timestamp | either NULL or define the data timestamp associated with the samples. |
[out] | full | Set to true if the internal stack is full after the push. Set to NULL if not desired. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_pop_sample | +( | +ed247_stream_t | +stream, | +
+ | + | const void ** | +sample_data, | +
+ | + | uint32_t * | +sample_size, | +
+ | + | const ed247_timestamp_t ** | +data_timestamp, | +
+ | + | const ed247_timestamp_t ** | +recv_timestamp, | +
+ | + | const ed247_sample_details_t ** | +sample_details, | +
+ | + | bool * | +empty | +
+ | ) | ++ |
Pop a sample from stream samples stack.
+Argument empty
, if not NULL, will be set to false if the samples stack is empty after the pop.
+ Return value will be ED247_STATUS_NODATA if the samples stack is empty before the pop.
+
[in] | stream | Stream identifier |
[out] | sample_data | Pointer on the internal stream buffer sample. Do not free it! |
[out] | sample_size | Size of the received sample data |
[out] | data_timestamp | if not NULL, filed with the data timestamp associated with the sample. |
[out] | recv_timestamp | if not NULL, filed with the receive timestamp. See ed247_get_receive_timestamp(). |
[out] | sample_details | Stream sample details (ECID, S/N, TTS). |
[out] | empty | set to true if the internal stack is empty after the pop. |
ED247_STATUS_SUCCESS | |
ED247_STATUS_NODATA | Receive stack is empty before the pop. |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+Typedefs | |
+typedef struct ed247_internal_stream_list_t * | ed247_stream_list_t |
Stream list identifier. | |
+Functions | |
LIBED247_EXPORT ed247_status_t | ed247_stream_list_size (ed247_stream_list_t streams, uint32_t *size) |
Get the size of the list. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_list_next (ed247_stream_list_t streams, ed247_stream_t *stream) |
Iterate over a stream identifier list. More... | |
LIBED247_EXPORT ed247_status_t | ed247_stream_list_free (ed247_stream_list_t streams) |
Free stream list. More... | |
LIBED247_EXPORT ed247_status_t ed247_stream_list_size | +( | +ed247_stream_list_t | +streams, | +
+ | + | uint32_t * | +size | +
+ | ) | ++ |
Get the size of the list.
+[in] | streams | The stream list |
[out] | size | The size of the list |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
LIBED247_EXPORT ed247_status_t ed247_stream_list_next | +( | +ed247_stream_list_t | +streams, | +
+ | + | ed247_stream_t * | +stream | +
+ | ) | ++ |
Iterate over a stream identifier list.
+A null
value is set when the end of the list is reached. Return value is ED247_STATUS_SUCCESS. The next call will return the pointer to the first item of the list.
[in,out] | streams | The stream list |
[out] | stream | A pointer to the current item in the list. |
ED247_STATUS_SUCCESS | Operation completed successfully even if end of list may be reached |
ED247_STATUS_FAILURE | Invalid parameter provided or internal error |
LIBED247_EXPORT ed247_status_t ed247_stream_list_free | +( | +ed247_stream_list_t | +streams | ) | ++ |
Free stream list.
+[in] | streams | The stream list |
ED247_STATUS_SUCCESS | |
ED247_STATUS_FAILURE |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Helper to convert type to/from strings.
++Functions | |
LIBED247_EXPORT const char * | ed247_status_string (ed247_status_t status) |
ed247_status_t to string conversion More... | |
LIBED247_EXPORT const char * | ed247_standard_string (ed247_standard_t standard) |
ed247_standard_t to string conversion More... | |
LIBED247_EXPORT ed247_standard_t | ed247_standard_from_string (const char *standard) |
ed247_standard_t from string conversion More... | |
LIBED247_EXPORT const char * | ed247_direction_string (ed247_direction_t direction) |
ed247_direction_t to string conversion More... | |
LIBED247_EXPORT ed247_direction_t | ed247_direction_from_string (const char *direction) |
ed247_direction_t from string conversion More... | |
LIBED247_EXPORT const char * | ed247_yesno_string (ed247_yesno_t yesno) |
ed247_yesno_t to string conversion More... | |
LIBED247_EXPORT ed247_yesno_t | ed247_yesno_from_string (const char *yesno) |
ed247_yesno_t from string conversion More... | |
LIBED247_EXPORT const char * | ed247_component_type_string (ed247_component_type_t component_type) |
ed247_component_type_t to string conversion More... | |
LIBED247_EXPORT ed247_component_type_t | ed247_component_type_from_string (const char *component_type) |
ed247_component_type_t from string conversion More... | |
LIBED247_EXPORT const char * | ed247_stream_type_string (ed247_stream_type_t stream_type) |
ed247_stream_type_t to string conversion More... | |
LIBED247_EXPORT ed247_stream_type_t | ed247_stream_type_from_string (const char *stream_type) |
ed247_stream_type_t from string conversion More... | |
LIBED247_EXPORT const char * | ed247_signal_type_string (ed247_signal_type_t signal_type) |
ed247_signal_type_t to string conversion More... | |
LIBED247_EXPORT ed247_signal_type_t | ed247_signal_type_from_string (const char *signal_type) |
ed247_signal_type_t from string conversion More... | |
LIBED247_EXPORT const char * | ed247_nad_type_string (ed247_nad_type_t nad_type) |
ed247_nad_type_t to string conversion More... | |
LIBED247_EXPORT ed247_nad_type_t | ed247_nad_type_from_string (const char *nad_type) |
ed247_nad_type_t from string conversion More... | |
LIBED247_EXPORT const char* ed247_status_string | +( | +ed247_status_t | +status | ) | ++ |
ed247_status_t to string conversion
+[in] | status | The value to convert |
LIBED247_EXPORT const char* ed247_standard_string | +( | +ed247_standard_t | +standard | ) | ++ |
ed247_standard_t to string conversion
+[in] | standard | The value to convert |
LIBED247_EXPORT ed247_standard_t ed247_standard_from_string | +( | +const char * | +standard | ) | ++ |
ed247_standard_t from string conversion
+[in] | standard | The string to convert |
LIBED247_EXPORT const char* ed247_direction_string | +( | +ed247_direction_t | +direction | ) | ++ |
ed247_direction_t to string conversion
+[in] | direction | The value to convert |
LIBED247_EXPORT ed247_direction_t ed247_direction_from_string | +( | +const char * | +direction | ) | ++ |
ed247_direction_t from string conversion
+[in] | direction | The string to convert |
LIBED247_EXPORT const char* ed247_yesno_string | +( | +ed247_yesno_t | +yesno | ) | ++ |
ed247_yesno_t to string conversion
+[in] | yesno | The value to convert |
LIBED247_EXPORT ed247_yesno_t ed247_yesno_from_string | +( | +const char * | +yesno | ) | ++ |
ed247_yesno_t from string conversion
+[in] | yesno | The string to convert |
LIBED247_EXPORT const char* ed247_component_type_string | +( | +ed247_component_type_t | +component_type | ) | ++ |
ed247_component_type_t to string conversion
+[in] | component_type | The value to convert |
LIBED247_EXPORT ed247_component_type_t ed247_component_type_from_string | +( | +const char * | +component_type | ) | ++ |
ed247_component_type_t from string conversion
+[in] | component_type | The string to convert |
LIBED247_EXPORT const char* ed247_stream_type_string | +( | +ed247_stream_type_t | +stream_type | ) | ++ |
ed247_stream_type_t to string conversion
+[in] | stream_type | The value to convert |
LIBED247_EXPORT ed247_stream_type_t ed247_stream_type_from_string | +( | +const char * | +stream_type | ) | ++ |
ed247_stream_type_t from string conversion
+[in] | stream_type | The string to convert |
LIBED247_EXPORT const char* ed247_signal_type_string | +( | +ed247_signal_type_t | +signal_type | ) | ++ |
ed247_signal_type_t to string conversion
+[in] | signal_type | The value to convert |
LIBED247_EXPORT ed247_signal_type_t ed247_signal_type_from_string | +( | +const char * | +signal_type | ) | ++ |
ed247_signal_type_t from string conversion
+[in] | signal_type | The string to convert |
LIBED247_EXPORT const char* ed247_nad_type_string | +( | +ed247_nad_type_t | +nad_type | ) | ++ |
ed247_nad_type_t to string conversion
+[in] | nad_type | The value to convert |
LIBED247_EXPORT ed247_nad_type_t ed247_nad_type_from_string | +( | +const char * | +nad_type | ) | ++ |
ed247_nad_type_t from string conversion
+[in] | nad_type | The string to convert |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
Functions to set simulation time for receive timestamp
++Typedefs | |
+typedef void(* | ed247_get_time_t) (ed247_timestamp_t *timestamp) |
Prototype of a function to get time. | |
+Functions | |
LIBED247_EXPORT void | ed247_get_time (ed247_timestamp_t *timestamp) |
Return the current time. More... | |
LIBED247_EXPORT void | ed247_set_transport_timestamp_callback (ed247_get_time_t callback) |
Set the function to use to timestamp the transport (aka emit date) More... | |
LIBED247_EXPORT void | ed247_set_receive_timestamp_callback (ed247_get_time_t callback) |
Set the function to use to timestamp the incoming streams (aka receive date) More... | |
LIBED247_EXPORT void | ed247_get_transport_timestamp (ed247_timestamp_t *timestamp) |
Return the time to timestamp the transport. More... | |
LIBED247_EXPORT void | ed247_get_receive_timestamp (ed247_timestamp_t *timestamp) |
Return the time to timestamp the incoming streams. More... | |
LIBED247_EXPORT void ed247_get_time | +( | +ed247_timestamp_t * | +timestamp | ) | ++ |
Return the current time.
+This implementation use an internal and system-specific implementation.
+ This is the default function used to fill transport timestamp and receive timestamp.
You may want to provide your own implementation with the methods:
[out] | timestamp | Filled with current time |
LIBED247_EXPORT void ed247_set_transport_timestamp_callback | +( | +ed247_get_time_t | +callback | ) | ++ |
Set the function to use to timestamp the transport (aka emit date)
+The default function is ed247_get_time().
+ The emmiter will wrote the TTS only if enabled by ECIC file.
+ The receiver can read the value in the field ed247_sample_details_t->transport_timestamp
returned by ed247_stream_pop_sample() and ed247_stream_assistant_pop_sample() functions.
[in] | callback | Function that will provide current time |
LIBED247_EXPORT void ed247_set_receive_timestamp_callback | +( | +ed247_get_time_t | +callback | ) | ++ |
Set the function to use to timestamp the incoming streams (aka receive date)
+The default function is ed247_get_time().
+ The library will date incoming stream during the call of ed247_wait_frame() and ed247_wait_during() methods.
+ It will provide the value in the recv_timestamp
field of ed247_stream_pop_sample() and ed247_stream_assistant_pop_sample() functions.
+
[in] | callback | Function that will provide current time |
LIBED247_EXPORT void ed247_get_transport_timestamp | +( | +ed247_timestamp_t * | +timestamp | ) | ++ |
Return the time to timestamp the transport.
+Call either ed247_get_time() or the function set by ed247_set_transport_timestamp_callback()
+[out] | timestamp | Filled with the appropriate time |
LIBED247_EXPORT void ed247_get_receive_timestamp | +( | +ed247_timestamp_t * | +timestamp | ) | ++ |
Return the time to timestamp the incoming streams.
+Call either ed247_get_time() or the function set by ed247_set_receive_timestamp_callback()
+[out] | timestamp | Filled with the appropriate time |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
▼CCBaseList | |
▼Ced247::client_list< CBaseList, T > | |
▼Ced247::client_list_container< CBaseList, T, Container, context_owned > | |
Ced247::ClientStreamListWithData | |
Ced247::ChannelSet | |
Ced247::udp::ComInterface | |
Ced247_internal_channel_list_t | |
▼Ced247_internal_channel_t | |
Ced247::Channel | |
▼Ced247_internal_context_t | |
Ced247::Context | |
Ced247_internal_signal_list_t | |
▼Ced247_internal_signal_t | |
Ced247::Signal | |
▼Ced247_internal_stream_assistant_t | |
▼Ced247::StreamAssistant | |
Ced247::FixedStreamAssistant | |
Ced247::VNADStreamAssistant | |
Ced247_internal_stream_list_t | |
▼Ced247_internal_stream_t | |
▼Ced247::Stream | |
Ced247::StreamSignals | |
Ced247_sample_details_s | Sample Details |
Ced247_timestamp_t | Timestamp structure, seconds from EPOCH (January 1st 1970) and nanoseconds offset with reference to previous field |
▼Cexception | |
▼Ced247::exception | |
Ced247::xml::exception | |
▼Cfalse_type | |
Ced247::is_pair< typename > | |
Ced247::udp::Receiver::frame_t | |
Ced247::FrameHeader | |
Chex_stream | |
Clibed247_runtime_metrics_t | |
Ced247::log | |
▼Ced247::xml::Node | |
Ced247::xml::Channel | |
Ced247::xml::ComInterface | |
Ced247::xml::Component | |
Ced247::xml::DataTimestamp | |
Ced247::xml::Errors | |
Ced247::xml::Header | |
▼Ced247::xml::Signal | |
Ced247::xml::ANASignal | |
Ced247::xml::DISSignal | |
Ced247::xml::NADSignal | |
Ced247::xml::VNADSignal | |
▼Ced247::xml::Stream | |
▼Ced247::xml::StreamProtocoled | |
Ced247::xml::A429Stream | |
Ced247::xml::A664Stream | |
Ced247::xml::A825Stream | |
Ced247::xml::ETHStream | |
Ced247::xml::SERIALStream | |
▼Ced247::xml::StreamSignals | |
Ced247::xml::ANAStream | |
Ced247::xml::DISStream | |
Ced247::xml::NADStream | |
Ced247::xml::VNADStream | |
Ced247::xml::UdpSocket | |
Ced247::udp::ReceiverSet | |
▼Ced247::Sample | |
Ced247::StreamSample | |
Ced247::SignalSet | |
▼Csockaddr_in | |
Ced247::udp::socket_address_t | |
Ced247::udp::socket_address_equal_to | |
Ced247::udp::socket_address_hash | |
Ced247::StreamSampleRingBuffer | |
Ced247::StreamSet | |
Cstrize | |
Ced247::udp::system_socket_map_t | |
▼Ced247::udp::Transceiver | |
Ced247::udp::Emitter | |
Ced247::udp::Receiver | |
▼Ctrue_type | |
Ced247::is_pair< std::pair< T, U > > |
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
The ED247 LIBRARY is an example of implementation of the ED247A communication standard, standardized by the EUROCAE WG-97.
+Doxygen documnetation is available here: https://airbus.github.io/ED247_LIBRARY/
+Refer to ./LICENSE.md "LICENCE" file.
+The ED247 LIBRARY / LIBED247 can be built for the following operating systems and compilers:
+Library | Purpose | Release |
---|---|---|
LIBXML2 | Required | 2.9.1 |
Tool | Purpose | Release |
---|---|---|
CMAKE | Compilation framework | 3.22.0 |
GTEST | Tests only | 1.10.0 |
DOXYGEN | Documentation generation | 1.8.11 |
The logging strategy can be controlled through the API with ed247_set_log_level()
or with following environment variables:
Environment Variable | Purpose |
---|---|
ED247_LOG_LEVEL | Set the level of logs (see ed247_log_level_t() ) |
ED247_LOG_FILEPATH | Set the filepath of the logging file, if necessary |
target | Purpose |
---|---|
all | Build everything. This is the default target. |
ed247 | Only build the library. |
utils | Build utils and their dependencies. |
tests | Build all tests and theirs dependencies. |
run_tests | Build all tests and excute them. |
<test_name> | Build only test <test_name>. See tests section below. |
doc | Build documentation. |
install | Delivery. |
The target version shall be specified in CMakeLists.txt on project() line. It will be used for Product Delivery Note.
+ The real version will be computed according to git tag description. This value will be hard-coded in the binary in order to to really know where it come from.
+ IMPORTANT: You shall re-run CMake and rebuild before delivering to update the version, especially if you have create a git tag.**
The version format is:
So, if you just have create a tag, the version will be exactly the tag name.
+ Else, the version will contain information to know from which commit the binary come from.
Test use multicast IPs and you may need to create a specific route to make them working:
The tests are the subfolders of tests/
folder. A single test can be rebuild by calling the target <test_name>
.
A single test can be ran with:
Since most tests needs two binaries (client/server) and each one have its own output, there is no "test output". The output of each binary is available in tests/<test_name>/<binary_name>.log
.
+ When a test binary fail, the test will display the path to its log file.
You also can run yourself the two binaries of the test in two separate consoles. You will have their output directly in the consoles. This is the only way to use specific tools like gdb or valgrind.
+First, configure your environment:
To force the use of Ninja (it has to be in your path):
Cmake options can be provided with the syntax -D<option>=<value>
CMake option | Purpose |
---|---|
CMAKE_BUILD_TYPE | The default is RelWithDebInfo. You may want to use Debug to disable optimization. |
CMAKE_TOOLCHAIN_FILE | Needed to build in 32-bits or cross-compile. See examples in cmake/toolchains . |
CMAKE_PREFIX_PATH | List of paths to search for dependencies. |
GTest_ROOT | Path to GTest. |
Doxygen_ROOT | Path to Doxygen. |
CMAKE_INSTALL_PREFIX | install path. (Can also be set with option –prefix. See install below.) |
Then, run the target you want (see Useful targets upside):
Run tests and install (use CMAKE_INSTALL_PREFIX or overwrite with –prefix):
+ ED247 Library
+ VA2.3.0_RC1
+
+ Implementation of ED247-A standard
+ |
+
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
+ + |
t |