2011-04-24 4 views
0

Je suis intéressé de connaître les bibliothèques, les outils ou les frameworks nécessaires pour avoir des données d'enregistrement de programme C++ en vue d'une analyse et d'une extraction ultérieures. Je fournis une description de ce que je prévois donner une idée de ce que je cherche à faire, mais vos suggestions ne correspondent pas exactement.Logiciel d'enregistrement et d'extraction de données pour C++

Je voudrais spécifier différents types d'enregistrements pour mon programme à enregistrer. Par exemple, il peut y avoir un type d'enregistrement distinct pour chaque type de message que je reçois d'un périphérique, un type d'enregistrement pour les résultats des principaux algorithmes, un type d'enregistrement pour chaque type d'entrée d'opérateur. Idéalement, les changements de code pour l'ajout d'un nouveau type d'enregistrement seraient assez minimes: Définir une structure pour les données à enregistrer, corréler avec un ID de type d'enregistrement et ajouter le code pour enregistrer les instances dans un fichier. Après l'exécution du programme principal, je voudrais exécuter un outil d'extraction de données qui pourrait donner un résumé des données enregistrées et me permettre d'extraire des types d'enregistrements spécifiques sur une période de temps spécifiée de la course. Je pourrais fournir l'exec à l'outil et il utiliserait certains des mêmes hooks qu'un outil de débogage utilise pour trouver les noms des champs dans la structure à utiliser dans le rapport d'extraction. Ce serait bien si le rapport d'extraction pouvait être spécifié comme .txt, .xml, .csv (pour l'ouverture dans Excel), ou .hdf (pour l'ouverture dans Matlab).

Ce serait pour le compilateur Linux et GCC. Idéalement, les suggestions seraient des logiciels libres, mais les solutions propriétaires sont également les bienvenues. Faites le moi savoir!

Répondre

1

Ce que vous avez décrit n'est rien de spécial. Simplement la sérialisation générique et la désérialisation. Si vous voulez une bibliothèque spécifique, vous devez décrire exactement ce que vous voulez faire avec les données enregistrées. Pour la prise en charge de la sérialisation, voir Boost::Serialization et s11n.

Questions connexes