protobuf.js версии:^6.2.1Protobuf Невозможно декодировать буфер
буфер
083515604859581840220a0d6048595815bdf426422a0a0d7047595815bdf426
код:
protobuf.load("PulseFlagData.proto", function(err, root) {
if (err) {
callback(err);
}
var pulse = root.lookup("PulseFlagData");
callback(null, pulse.decode(parsed_data.payload));
});
.proto файл:
syntax = "proto3";
message PulseFlagSample {
required fixed32 timestamp = 1;
required uint32 input = 2;
required bool flag = 3;
}
message PulseFlagData {
required uint32 config_version = 1;
required fixed32 device_time = 2;
required PulseFlagSample current = 3;
optional PulseFlagSample last_hour = 4;
}
ошибка:
/home/deck/NetBeansProjects/lora/node_modules/protobufjs/src/reader.js:390 бросок indexOutOfRange (это, длина); ^
RangeError: индекс вне диапазона: 23 + 10> 32 на RangeError (родной) в indexOutOfRange (/home/deck/NetBeansProjects/lora/node_modules/protobufjs/src/reader.js:13:12) в BufferReader.skip (/home/deck/NetBeansProjects/lora/node_modules/protobufjs/src/reader.js:390:19) в BufferReader.ReaderPrototype.skipType (/ home/deck/NetBeansProjects/lora/node_modules/protobufjs /src/reader.js:410:18) at Type._PulseFlagSample $ decode [в качестве декодирования] (eval at eof (/home/deck/NetBeansProjects/lora/node_modules/protobufjs/node_modules/@protobufjs/codegen/index.js : 102: 25),: 19: 7) в Type.decode_setup [в качестве декодирования] (/ home/deck/NetBeansProjects/lora/node_modules/pr otobufjs/src/type.js: 370: 7) at Type._PulseFlagData $ decode [в качестве декодирования] (eval at eof (/ home/deck/NetBeansProjects/lora/node_modules/protobufjs/node_modules/@ protobufjs/codegen/index. js: 102: 25),: 16: 27) в Type.decode_setup [в качестве декодирования] (/home/deck/NetBeansProjects/lora/node_modules/protobufjs/src/type.js:370:7) at/home/палубные/NetBeansProjects/лора/server.js: 42: 50 на финише (/home/deck/NetBeansProjects/lora/node_modules/protobufjs/src/root.js:84:9)
ты прав! Я потерял последний байт. и получил неверное описание данных от поставщика. Спасибо! – levide