Мы используем библиотеку protobuf-net
для декодирования MQTT-сообщений, предоставляемых из программного обеспечения Inductive Automation - Ignition
, основанного на полезной нагрузке sparkplug_b.proto
.
Мы создали код c # с отличным онлайн-протогеноминструмент.Так что теперь мы можем декодировать объекты сообщений бинарного типа, например, в читаемый человеком JSON :-) Но десериализованный объект содержит («бесполезные»?) Объекты, которые перегружают экземпляр объекта.
Почему объектне «отфильтрованы», чтобы обеспечить «худой» экземпляр объекта?
Например:
{
"Body": null,
"Metrics": [
{
"Alias": 0,
"BooleanValue": false,
"BytesValue": null,
"DatasetValue": null,
"Datatype": 4,
"DoubleValue": 0,
"ExtensionValue": null,
"FloatValue": 0,
"IntValue": 0,
"IsHistorical": false,
"IsNull": false,
"IsTransient": false,
"LongValue": 0,
"Metadata": null,
"Name": "bdSeq",
"Properties": null,
"StringValue": "",
"TemplateValue": null,
"Timestamp": 1538568112852
}
],
"Seq": 18446744073709551615,
"Timestamp": 1538568112852,
"Uuid": ""
}