Вот содержимое найденного мной файла прототипа GPS:
Код: Выделить всё
package polar_data;
import "types.proto";
message PbExerciseRouteSamples {
repeated uint32 duration = 1 [packed=true];
repeated double latitude = 2 [packed=true];
repeated double longitude = 3 [packed=true];
repeated sint32 gps_altitude = 4 [packed=true];
repeated uint32 satellite_amount = 5 [packed=true];
repeated bool OBSOLETE_fix = 6 [packed=true];
repeated .PbSensorOffline OBSOLETE_gps_offline = 7 ;
repeated .PbSystemDateTime OBSOLETE_gps_date_time = 8 ;
optional .PbSystemDateTime first_location_time = 9 ;
}
Код: Выделить всё
# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler. DO NOT EDIT!
# NO CHECKED-IN PROTOBUF GENCODE
# source: exercise_samples.proto
# Protobuf Python Version: 5.27.2
"""Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor
from google.protobuf import descriptor_pool as _descriptor_pool
from google.protobuf import runtime_version as _runtime_version
from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import builder as _builder
_runtime_version.ValidateProtobufRuntimeVersion(
_runtime_version.Domain.PUBLIC,
5,
27,
2,
'',
'exercise_samples.proto'
)
# @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default()
import helper.pb.py.types_pb2 as types__pb2
import helper.pb.py.structures_pb2 as structures__pb2
import helper.pb.py.exercise_rr_samples_pb2 as exercise__rr__samples__pb2
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x16\x65xercise_samples.proto\x12\npolar_data\x1a\x0btypes.proto\x1a\x10structures.proto\x1a\x19\x65xercise_rr_samples.proto\"\xad\x02\n\x13PbPowerMeasurements\x12\x15\n\rcurrent_power\x18\x01 \x02(\x05\x12$\n\x1c\x63umulative_crank_revolutions\x18\x02 \x01(\r\x12\x1c\n\x14\x63umulative_timestamp\x18\x03 \x01(\r\x12\x1b\n\x13\x66orce_magnitude_min\x18\x04 \x01(\x11\x12\x1b\n\x13\x66orce_magnitude_max\x18\x05 \x01(\x05\x12!\n\x19\x66orce_magnitude_min_angle\x18\x06 \x01(\r\x12!\n\x19\x66orce_magnitude_max_angle\x18\x07 \x01(\r\x12\x1e\n\x16\x62ottom_dead_spot_angle\x18\x08 \x01(\r\x12\x1b\n\x13top_dead_spot_angle\x18\t \x01(\r\"{\n\x12PbCalibrationValue\x12\x13\n\x0bstart_index\x18\x01 \x02(\r\x12\r\n\x05value\x18\x02 \x02(\x02\x12#\n\toperation\x18\x03 \x02(\x0e\x32\x10.PbOperationType\x12\x1c\n\x05\x63\x61use\x18\x04 \x01(\x0e\x32\r.PbMovingType\"\xc4\n\n\x11PbExerciseSamples\x12\'\n\x12recording_interval\x18\x01 \x02(\x0b\x32\x0b.PbDuration\x12\x1e\n\x12heart_rate_samples\x18\x02 \x03(\rB\x02\x10\x01\x12,\n\x12heart_rate_offline\x18\x03 \x03(\x0b\x32\x10.PbSensorOffline\x12\x1b\n\x0f\x63\x61\x64\x65nce_samples\x18\x04 \x03(\rB\x02\x10\x01\x12)\n\x0f\x63\x61\x64\x65nce_offline\x18\x05 \x03(\x0b\x32\x10.PbSensorOffline\x12\x1c\n\x10\x61ltitude_samples\x18\x06 \x03(\x02\x42\x02\x10\x01\x12*\n\x10\x61ltitude_offline\x18\x12 \x03(\x0b\x32\x10.PbSensorOffline\x12 i f n o t _ d e s c r i p t o r . _ U S E _ C _ D E S C R I P T O R S : < b r / > D E S C R I P T O R . _ l o a d e d _ o p t i o n s = N o n e < b r / > _ g l o b a l s [ ' _ P B E X E R C I S E S A M P L E S ' ] . f i e l d s _ b y _ n a m e [ ' h e a r t_rate_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['heart_rate_samples']._serialized_options = b'\020\001'
_globals['_PBEXERCISESAMPLES'].fields_by_name['cadence_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['cadence_samples']._serialized_options = b'\020\001'
_globals['_PBEXERCISESAMPLES'].fields_by_name['altitude_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['altitude_samples']._serialized_options = b'\020\001'
_globals['_PBEXERCISESAMPLES'].fields_by_name['temperature_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['temperature_samples']._serialized_options = b'\020\001'
_globals['_PBEXERCISESAMPLES'].fields_by_name['speed_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['speed_samples']._serialized_options = b'\020\001'
_globals['_PBEXERCISESAMPLES'].fields_by_name['distance_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['distance_samples']._serialized_options = b'\020\001'
_globals['_PBEXERCISESAMPLES'].fields_by_name['stride_length_samples']._loaded_options = None
_globals['_PBEXERCISESAMPLES'].fields_by_name['stride_length_samples']._serialized_options = b'\020\001'
_globals['_PBPOWERMEASUREMENTS']._serialized_start=97
_globals['_PBPOWERMEASUREMENTS']._serialized_end=398
_globals['_PBCALIBRATIONVALUE']._serialized_start=400
_globals['_PBCALIBRATIONVALUE']._serialized_end=523
_globals['_PBEXERCISESAMPLES']._serialized_start=526
_globals['_PBEXERCISESAMPLES']._serialized_end=1874
# @@protoc_insertion_point(module_scope)
Код: Выделить всё
1F8B0800000000000203F212E562E778C12FC021212CC4C12128A028A1A1C020C1A8C5C822C4213B3DAEE39083978314C7D9FD0507759E6B3928003172703132E091647AC10E963DB72B721A4436E8AEA7A12E4CF6023F4E59362EA61DE260D9FA7B214B20B2D77F292D84EB5D200F96D5670AD804917D00607AB5410F2CCBC3C5D4A18E5356868BE947284E59292EA607B160D907AADE0720B26BFE170334431FA6F7442A5876D116F31F10D98A93421B0CC0B2002A5C4C1B72C1B2C1378CD80E8365AD22FE3F87C86A7031CD2805CB6E91D75482C87E5E6DE90091D5E1626AA805CBDEF8CA5D0691CDEB4BB800B1D780008BF9450B2358DAD2966912447AF191833B208E36E162BED003915EF3FEE57588F4F55F4A0B75C1D2165CCC3BA640A4CF1F3DA37D042C7D767FC1411D00B0B41517F38239106903DEC300B943A419BF5D5CA90D96B6E162EE5802919E14B23319226DA6633C490B2C6DC7C5FC613544FAF3ECF5F510699D8F0D009B34C1D24E5CCC373643A4D3FCA61F85484B56CB7C56074BBB70311FD80D91D6B8DBFC1722CDC6BAC3580D26BDE23044BA53A54AF22858BA628DCE13001598F484D310E9D9FDD9CE10E954B3132ACA6069372EE61F9720D26B7FC5E442A4CF2EEAFAAA00937E700B22CDE704507027447A978E9A993C58DA83008BF9C42388F4FE54A0D3C1D22BB61D2C9385496F7805916EFC62751E223DD52176BB3458DA8B8B79C62788F4E4789D9F1069B61717D3A560D20DBFD00075FF5D23DF210996F6E1627ED1C80496CEEFF45C0A91DE6FCD73002E7DA19309A76E3F2EE61D1321D2CECDEAECC7C0D2DB18A21E48C0A417CC84482F003D25AB0C91AEE8779380EBEE58089196A865CD449706DAFD01A01510E9CA23BF5B8E613AEDC606887497FEDB75C7D0FC0D943EB00322BD8EF502D37100B0B4EF94E9FCD230E9150720D2070A0EEA40A4A73AC46E874B4F3801916EFABF3605223DAF9A7FBA0C4CFAC77988F463B7250D10E9F749ED727230E90007D721D253B2E6F741A4377E2C0E83487B71319FB80F9176ED9B350722BD4B47CD4C1E26BDE139BA34D3CDD77721D21E5CCC33DEA31BCE2D326FAF02004CBAE13BBAD3000A3A909CAA08937EF10F226DACBCB208223D33479357092CEDC6C57CA18D192CADB863BB0744FA81C4FB2D70E91D7D10E9030507750020D26B1EF59E51064BBB70312F9806918ED73C2D0091366448B751814977CC8348FF7D78E5CB31B074C51A9D271069272EE60F4B21D2BEFB6E3E834800B3B1EE30568349DF580B917E53F6F814447A4AAC73B33A4CFAC056887497FEDB7510E9A72EBBB93461D200ADD80B91D67CF16D12447A235F9492164C007AC25188F489050CE51069FBF4A785DA30E91F6720D2DB4CF97D21D267F7171CD481493FB802910E7D27610891BEFE4B69A12E4CFAC41D8834D0B5EC0010E9D4E0751FF460D21B9E40A41BBF589D3F0A96AE3829B4C100263DE30D447A7FAADF7488F4C90D5DE64630E9862F10E93FD712E321D2923398F61B00C3A45FFC86485B7994AA43A49F262EBC660293BED00C100B583A0D68F611B074567D959B294C7A473744DAA9624B2144FADD9CE06D1069172EE605930021D2E78F9ED1C622DD311B22FDFBF4BB9387C1D2BBD23E9D3583497F580491B6B4659A04913EB270C95A7398F48D5510E9635D523E10E909D9CE472D0060D2073641A4B7C86B2A41A4672EFBBAC41226BD6217443AF886111B445AFD7FC3172BB0B41B17F38443E8D279ABDDE658C3A47F9C84482FDA62FEE300104060E96DE13C2E3630E90717F14A6F7888577AC64B88F4B95D91D320D253A6F34BDBC3A41B3E42A4F7F867E440A46F3B5F3D04977EF10322CDA393001B07915ECE5B72CB01267DA181154DFADD4ECB264798F48E0EBCD20B26A04B6FF450DB0597EE98C18AE63414E90FF321D2F5F742966031FCC6725634007FA3481F588F577AC27EDCD21E5CCC1BEEE1D53DE31944FADAAB190F0E82A54DD3FE6B3AC17437BC83488BC4AC590118445A47DBD70BAEFBC55774E900AC39094270E90B7F21D2C9161B6741A49FD6B52F728049EF6865034B6F16D9D6039156FE302B0B2EBDA0970D4DF772DE925B0E30A7754C45D75D7C5D00E813DCDF1FE6E0953EB0860D0049B0C1526C0B0000
С использованием "parser" .ParseFromString(bytes(data))", что приводит к ошибке:
google.protobuf.message.DecodeError: сообщение об ошибке анализа
Поскольку я думаю, что проблема связана с существующими файлами *.proto, «protoc --decode PbExercisionRouteSamples упражнения_route.proto < ROUTE.GZB» мне не помог.Буду благодарен за любые решения, подходы и вдохновение.
Подробнее здесь: https://stackoverflow.com/questions/790 ... 430-device