diff --git a/api/icsneo/icsneo.cpp b/api/icsneo/icsneo.cpp index 2c34594..0466c71 100644 --- a/api/icsneo/icsneo.cpp +++ b/api/icsneo/icsneo.cpp @@ -367,4 +367,13 @@ ICSNEO_API icsneo_error_t icsneo_is_message_valid(icsneo_message_t* message, boo }) == g_messages.end(); return icsneo_error_success; -} \ No newline at end of file +} + +ICSNEO_API icsneo_error_t icsneo_message_get_type(icsneo_message_t* message, uint32_t* type) { + if (!message || !type) { + return icsneo_error_invalid_parameters; + } + *type = (uint32_t)message->message->type; + + return icsneo_error_success; +} diff --git a/examples/c/simple/src/main.c b/examples/c/simple/src/main.c index dac7c87..833f84d 100644 --- a/examples/c/simple/src/main.c +++ b/examples/c/simple/src/main.c @@ -88,8 +88,8 @@ int main(int argc, char* argv[]) { return print_error_code("Failed to open device", res); }; - printf("Waiting 3 seconds for messages...\n"); - sleep_ms(3000); + printf("Waiting 1 second for messages...\n"); + sleep_ms(1000); icsneo_message_t* messages[20000] = {0}; uint32_t message_count = 20000; @@ -99,6 +99,15 @@ int main(int argc, char* argv[]) { }; printf("Received %u messages\n", message_count); + for (uint32_t i = 0; i < message_count; i++) { + icsneo_message_t* message = messages[i]; + uint32_t type = 0; + res = icsneo_message_get_type(message, &type); + if (res != icsneo_error_success) { + return print_error_code("Failed to get message type", res); + } + printf("%d Message type: %u\n", i, type); + } printf("Closing device: %s...\n", description); res = icsneo_close(device); if (res != icsneo_error_success) { diff --git a/include/icsneo/icsneo.h b/include/icsneo/icsneo.h index 6731811..488cc07 100644 --- a/include/icsneo/icsneo.h +++ b/include/icsneo/icsneo.h @@ -285,6 +285,8 @@ ICSNEO_API icsneo_error_t icsneo_get_messages(icsneo_device_t* device, icsneo_me */ ICSNEO_API icsneo_error_t icsneo_is_message_valid(icsneo_message_t* message, bool* is_valid); +ICSNEO_API icsneo_error_t icsneo_message_get_type(icsneo_message_t* message, uint32_t* type); + #ifdef __cplusplus } #endif \ No newline at end of file