Более полная функция, чем recordScalar, которая хранит структурированные данные в виде значения вместо хранения двойного числа

#omnet

Вопрос:

Одной из наиболее широко используемых функций для генерации выходных данных в Omnet является recordScalar.

 virtual void recordScalar (cComponent *component, const char *name, double value, opp_string_map *attributes=nullptr)=0
 

Существует ли более полная функция, чем recordScalar, которая хранит структурированные данные в виде значения вместо хранения двойного числа? Или кодируем его сами.
Или кодирование аналогичной функции для записи упомянутых выходных данных в текстовый файл в формате JSON с помощью этой функции?

Под структурированными данными я подразумеваю тип данных структуры в c . подобный этому:

 struct logtype {
int src;
int dest;
int messagescount; // the count of messages transmitted between src and dest and vice versa
};
 

Спасибо

Комментарии:

1. Не могли бы вы уточнить, что вы подразумеваете под структурированными данными ? Не могли бы вы привести пример этих данных?

2. По словам @JerzyD. комментарий, я делаю вопрос более подробным.

Ответ №1:

OMNeT не содержит готового к использованию инструмента для хранения сложных структур. Однако OMNeT использует C , и можно написать собственный метод, который сохранит некоторые данные в текстовый файл, или в файл JSON, или в любой файл.

Комментарии:

1. Как можно написать собственный метод, который будет хранить некоторые данные в текстовом файле или формате JSON в любом месте моего проекта или пакета Inet и вызываться в любое время моделирования? Я ищу этот ответ в своем вопросе.

2. OMNeT — это в основном библиотека C . Ваш вопрос не относится к OMNeT , а скорее к C , т. Е. Как я могу написать функцию на C , которая записывает структурированные данные. И на этот вопрос есть мириады ответов. Используйте базу данных SQL (например, SQLITE или POSTRGRESQL) или используйте библиотеку XML или JSON, которая поддерживает сериализацию, или просто напишите свою собственную структуру данных в записи файла.