Как визуализировать данные из буфера протокола Google? - PullRequest
19 голосов
/ 17 мая 2011

Я хотел бы хранить данные с использованием буферов протокола Google (также будет работать другой сериализованный формат), а затем иметь пользовательский интерфейс для просмотра этих данных.Есть ли C ++ Framework / API, который позволил бы мне сделать это?

Например, он мог бы использовать интерфейс отражения protobuf, а затем заполнить данные в QtableView Qt (или из другого инструментария).Я мог бы написать такой код сам - однако, скорее, я бы повторно использовал существующий код, поэтому я прошу совета здесь!

Или есть более общие наборы инструментов пользовательского интерфейса, которые могут визуализировать данные, которые доступнычерез какое-то отражение API?

Ответы [ 8 ]

9 голосов
/ 25 мая 2011

Один графический интерфейс, с которым я только что столкнулся, - protobufeditor - он кажется довольно мощным для просмотра общих данных. Он написан на Java, поэтому нельзя легко использовать / расширять его из C ++. (И в этот момент он не особо отшлифован, например, необходимо развернуть главное окно, чтобы получить полуполезную компоновку подокон)

Screenshot protobufeditor

7 голосов
/ 25 мая 2011

Wireshark имеет плагин protobuf, который позволяет вам визуализировать содержимое сообщений protobuf. Я также покопался бы в DebugString () в google / protobuf / message.h или message_lite.h (я забыл, что у меня в голове) и посмотрел, сможете ли вы легко одеть это для презентации пользователю. 1001 *

http://code.google.com/p/protobuf-wireshark/

4 голосов
/ 24 мая 2011

Если вы хотите написать это самостоятельно, одним из вариантов может быть использование Python / PySide вместе с QML, обработка ваших данных и сохранение их в QAbstractListModel, который подключен к вашему QML ListView.Надеемся, что в зависимости от сложности ваших данных делегат представления списка должен иметь возможность его визуализировать.

Этот вопрос может быть полезен в этом случае: Как предоставить данные из подкласса PySide QAbstractItemModel в QML ListView?

Если XML является опцией, QML XmlListModel очень аккуратна и проста в использовании.

2 голосов
/ 18 октября 2016

Надеюсь, это приложение поможет вам [Только для macOS]

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/1165908879/osx/versioninfo/deliverable

enter image description here

2 голосов
/ 24 марта 2012

Я работал над таким решением в прошлом году, используя Qt.К сожалению, приложение еще не завершено, но я думаю, что я был в той точке, где можно было более или менее успешно визуализировать данные из общего потока буфера протокола.Вы можете проверить код по адресу

https://github.com/oneamtu/QProtoViewer

Опять же, это не готовое решение, и вам придется работать, чтобы оно соответствовало вашим собственным потребностям./ проект.Я буду более чем рад помочь, если вы решите это сделать.

1 голос
/ 11 января 2015

Один из вариантов - Инструмент буфера протокола . Приятной особенностью этого инструмента является то, что вы можете использовать его для простого преобразования JSON в закодированный буфер протокола и наоборот.

0 голосов
/ 21 мая 2014

Разрешить двоичное представление без схемы сложно. Но если вы хотите просто лучше рассмотреть текстовый формат pb или DebugString (), вы можете попробовать визуализатор Protobuf:

http://codingstory.com/pv

0 голосов
/ 04 мая 2014

Если вы хотите, вы можете использовать веб-интерфейс для создания сообщения protobuf

https://github.com/Groterik/protobuf-webui

Это проект Python, и в нем есть пример, который выполняет http-сервер, формирующий желаемый тип сообщения импортируемогомодуль protobuf.Но это Python, поэтому вы можете написать простой обходной путь, который динамически импортирует скомпилированный модуль protobuf и выбирает тип сообщения во время выполнения.

Вы можете перегрузить метод постобработки, чтобы он выполнял некоторую полезную работу с сообщением (сохранить в файл, отправитьпо сети и т. д.)

...