From 2675c8434560ce9229d39362e23223fc03407d98 Mon Sep 17 00:00:00 2001 From: Simon Birkholz Date: Mon, 30 Oct 2023 17:07:09 +0100 Subject: [PATCH 1/5] added an mandatory length parameter to measurement_get_data_string --- interface/cuvis.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/interface/cuvis.hpp b/interface/cuvis.hpp index 7bd9ffe..4d54e41 100644 --- a/interface/cuvis.hpp +++ b/interface/cuvis.hpp @@ -1376,7 +1376,7 @@ namespace cuvis if (meta.measurement_flags & flag) { CUVIS_CHAR value[CUVIS_MAXBUF]; - chk(cuvis_measurement_get_data_string(*_mesu, key.c_str(), value)); + chk(cuvis_measurement_get_data_string(*_mesu, key.c_str(), value, CUVIS_MAXBUF)); _meta->measurement_flags.emplace(key, value); } }; @@ -1488,8 +1488,8 @@ namespace cuvis } break; case cuvis_data_type_t::data_type_string: { - CUVIS_CHAR value[CUVIS_MAXBUF]; - chk(cuvis_measurement_get_data_string(*_mesu, key, value)); + CUVIS_CHAR value[CUVIS_MAXBUF*8]; + chk(cuvis_measurement_get_data_string(*_mesu, key, value, CUVIS_MAXBUF*8)); _string_data->emplace(std::string(key), std::string(value)); } break; From 9c8316aae8eb879fa1a9ee42332b9b422052d41e Mon Sep 17 00:00:00 2001 From: Simon Birkholz Date: Mon, 30 Oct 2023 17:17:25 +0100 Subject: [PATCH 2/5] moved to seperate define --- interface/cuvis.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/interface/cuvis.hpp b/interface/cuvis.hpp index 4d54e41..8d72b69 100644 --- a/interface/cuvis.hpp +++ b/interface/cuvis.hpp @@ -1488,8 +1488,8 @@ namespace cuvis } break; case cuvis_data_type_t::data_type_string: { - CUVIS_CHAR value[CUVIS_MAXBUF*8]; - chk(cuvis_measurement_get_data_string(*_mesu, key, value, CUVIS_MAXBUF*8)); + CUVIS_CHAR value[CUVIS_LONGBUF]; + chk(cuvis_measurement_get_data_string(*_mesu, key, value, CUVIS_LONGBUF)); _string_data->emplace(std::string(key), std::string(value)); } break; From 8287d61b73ac93654b750fe852b2ab7883c4c369 Mon Sep 17 00:00:00 2001 From: Simon Birkholz Date: Tue, 14 May 2024 12:08:36 +0200 Subject: [PATCH 3/5] updated syntax for long strings --- interface/cuvis.hpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/interface/cuvis.hpp b/interface/cuvis.hpp index 8d72b69..468172f 100644 --- a/interface/cuvis.hpp +++ b/interface/cuvis.hpp @@ -1488,9 +1488,13 @@ namespace cuvis } break; case cuvis_data_type_t::data_type_string: { - CUVIS_CHAR value[CUVIS_LONGBUF]; - chk(cuvis_measurement_get_data_string(*_mesu, key, value, CUVIS_LONGBUF)); + CUVIS_SIZE buffer_length; + chk(cuvis_measurement_get_data_string_length(*_mesu, key, &buffer_length)); + + CUVIS_CHAR* value = new CUVIS_CHAR[buffer_length]; + chk(cuvis_measurement_get_data_string(*_mesu, key, value, buffer_length)); _string_data->emplace(std::string(key), std::string(value)); + delete[] value; } break; default: // unknown or unsupported From 243f8256716fe94961e440191d001faa40cda006 Mon Sep 17 00:00:00 2001 From: Simon Birkholz Date: Tue, 14 May 2024 17:12:05 +0200 Subject: [PATCH 4/5] wip --- interface/cuvis.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/cuvis.hpp b/interface/cuvis.hpp index 270944b..cadcfef 100644 --- a/interface/cuvis.hpp +++ b/interface/cuvis.hpp @@ -1402,7 +1402,7 @@ namespace cuvis if (meta.measurement_flags & flag) { CUVIS_CHAR value[CUVIS_MAXBUF]; - chk(cuvis_measurement_get_data_string(*_mesu, key.c_str(), value, CUVIS_MAXBUF)); + chk(cuvis_measurement_get_data_string(*_mesu, key.c_str(), CUVIS_MAXBUF, value)); _meta->measurement_flags.emplace(key, value); } }; From c4f6edd7eb677912afb4651ab74f5cfc78b5f311 Mon Sep 17 00:00:00 2001 From: Simon Birkholz Date: Tue, 14 May 2024 17:12:50 +0200 Subject: [PATCH 5/5] wip --- interface/cuvis.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/cuvis.hpp b/interface/cuvis.hpp index cadcfef..b8f1fe5 100644 --- a/interface/cuvis.hpp +++ b/interface/cuvis.hpp @@ -1518,7 +1518,7 @@ namespace cuvis chk(cuvis_measurement_get_data_string_length(*_mesu, key, &buffer_length)); CUVIS_CHAR* value = new CUVIS_CHAR[buffer_length]; - chk(cuvis_measurement_get_data_string(*_mesu, key, value, buffer_length)); + chk(cuvis_measurement_get_data_string(*_mesu, key, buffer_length, value)); _string_data->emplace(std::string(key), std::string(value)); delete[] value; }