From d701c7fe7fd6be9c3478c89021b56b505d378cd6 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Mon, 20 Jan 2025 21:58:31 +0100 Subject: [PATCH 1/3] Update VPE dependencies and rebuild interface --- .../visual_pinball_engine/platform_pb2.py | 1404 +---------------- .../platform_pb2_grpc.py | 93 +- pyproject.toml | 8 +- 3 files changed, 153 insertions(+), 1352 deletions(-) diff --git a/mpf/platforms/visual_pinball_engine/platform_pb2.py b/mpf/platforms/visual_pinball_engine/platform_pb2.py index 2e0cf64ea..4da680a28 100644 --- a/mpf/platforms/visual_pinball_engine/platform_pb2.py +++ b/mpf/platforms/visual_pinball_engine/platform_pb2.py @@ -1,11 +1,22 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE # source: platform.proto +# Protobuf Python Version: 5.29.0 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from google.protobuf import reflection as _reflection +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, + 29, + 0, + '', + 'platform.proto' +) # @@protoc_insertion_point(imports) _sym_db = _symbol_database.Default() @@ -13,1334 +24,63 @@ -DESCRIPTOR = _descriptor.FileDescriptor( - name='platform.proto', - package='mpf.vpe', - syntax='proto3', - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_pb=b'\n\x0eplatform.proto\x12\x07mpf.vpe\"\x0e\n\x0c\x45mptyRequest\"\x0f\n\rEmptyResponse\"\r\n\x0bQuitRequest\"\x99\x01\n\x0cMachineState\x12M\n\x15initial_switch_states\x18\x01 \x03(\x0b\x32..mpf.vpe.MachineState.InitialSwitchStatesEntry\x1a:\n\x18InitialSwitchStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"O\n\x11SwitchDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\x12\x13\n\x0bswitch_type\x18\x03 \x01(\t\"8\n\x0f\x43oilDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\"a\n\x10LightDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17hardware_channel_number\x18\x02 \x01(\t\x12\x1e\n\x16hardware_channel_color\x18\x03 \x01(\t\"\x9b\x01\n\x0e\x44mdDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\rcolor_mapping\x18\x02 \x01(\x0e\x32$.mpf.vpe.DmdDescription.ColorMapping\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\"\x1f\n\x0c\x43olorMapping\x12\x06\n\x02\x42W\x10\x00\x12\x07\n\x03RGB\x10\x01\"8\n\x19SegmentDisplayDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\"\xfb\x01\n\x12MachineDescription\x12,\n\x08switches\x18\x01 \x03(\x0b\x32\x1a.mpf.vpe.SwitchDescription\x12\'\n\x05\x63oils\x18\x02 \x03(\x0b\x32\x18.mpf.vpe.CoilDescription\x12)\n\x06lights\x18\x03 \x03(\x0b\x32\x19.mpf.vpe.LightDescription\x12%\n\x04\x64mds\x18\x04 \x03(\x0b\x32\x17.mpf.vpe.DmdDescription\x12<\n\x10segment_displays\x18\x05 \x03(\x0b\x32\".mpf.vpe.SegmentDisplayDescription\"Q\n\rSwitchChanges\x12\x15\n\rswitch_number\x18\x01 \x01(\t\x12\x14\n\x0cswitch_state\x18\x02 \x01(\x08\x12\x13\n\x0b\x63hange_time\x18\x03 \x01(\x04\"E\n\x12SetDmdFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12\x12\n\nbrightness\x18\x03 \x01(\x02\"\xc0\x01\n\x1dSetSegmentDisplayFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12J\n\x06\x63olors\x18\x03 \x03(\x0b\x32:.mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor\x1a\x36\n\x13SegmentDisplayColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\"\xf8\x03\n\x08\x43ommands\x12/\n\nfade_light\x18\x01 \x01(\x0b\x32\x19.mpf.vpe.FadeLightRequestH\x00\x12/\n\npulse_coil\x18\x02 \x01(\x0b\x32\x19.mpf.vpe.PulseCoilRequestH\x00\x12\x31\n\x0b\x65nable_coil\x18\x03 \x01(\x0b\x32\x1a.mpf.vpe.EnableCoilRequestH\x00\x12\x33\n\x0c\x64isable_coil\x18\x04 \x01(\x0b\x32\x1b.mpf.vpe.DisableCoilRequestH\x00\x12H\n\x17\x63onfigure_hardware_rule\x18\x05 \x01(\x0b\x32%.mpf.vpe.ConfigureHardwareRuleRequestH\x00\x12\x42\n\x14remove_hardware_rule\x18\x06 \x01(\x0b\x32\".mpf.vpe.RemoveHardwareRuleRequestH\x00\x12\x38\n\x11\x64md_frame_request\x18\x07 \x01(\x0b\x32\x1b.mpf.vpe.SetDmdFrameRequestH\x00\x12O\n\x1dsegment_display_frame_request\x18\x08 \x01(\x0b\x32&.mpf.vpe.SetSegmentDisplayFrameRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x01\n\x10\x46\x61\x64\x65LightRequest\x12\x16\n\x0e\x63ommon_fade_ms\x18\x01 \x01(\r\x12\x34\n\x05\x66\x61\x64\x65s\x18\x02 \x03(\x0b\x32%.mpf.vpe.FadeLightRequest.ChannelFade\x1a>\n\x0b\x43hannelFade\x12\x14\n\x0clight_number\x18\x01 \x01(\t\x12\x19\n\x11target_brightness\x18\x02 \x01(\x02\"N\n\x10PulseCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\"c\n\x11\x45nableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\x12\x12\n\nhold_power\x18\x04 \x01(\x02\")\n\x12\x44isableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\"\x85\x01\n\x1c\x43onfigureHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\x12\x10\n\x08pulse_ms\x18\x03 \x01(\r\x12\x13\n\x0bpulse_power\x18\x04 \x01(\x02\x12\x12\n\nhold_power\x18\x05 \x01(\x02\"G\n\x19RemoveHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t2\x93\x02\n\x12MpfHardwareService\x12\x33\n\x05Start\x12\x15.mpf.vpe.MachineState\x1a\x11.mpf.vpe.Commands0\x01\x12K\n\x15GetMachineDescription\x12\x15.mpf.vpe.EmptyRequest\x1a\x1b.mpf.vpe.MachineDescription\x12\x45\n\x11SendSwitchChanges\x12\x16.mpf.vpe.SwitchChanges\x1a\x16.mpf.vpe.EmptyResponse(\x01\x12\x34\n\x04Quit\x12\x14.mpf.vpe.QuitRequest\x1a\x16.mpf.vpe.EmptyResponseb\x06proto3' -) - - - -_DMDDESCRIPTION_COLORMAPPING = _descriptor.EnumDescriptor( - name='ColorMapping', - full_name='mpf.vpe.DmdDescription.ColorMapping', - filename=None, - file=DESCRIPTOR, - create_key=_descriptor._internal_create_key, - values=[ - _descriptor.EnumValueDescriptor( - name='BW', index=0, number=0, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - _descriptor.EnumValueDescriptor( - name='RGB', index=1, number=1, - serialized_options=None, - type=None, - create_key=_descriptor._internal_create_key), - ], - containing_type=None, - serialized_options=None, - serialized_start=594, - serialized_end=625, -) -_sym_db.RegisterEnumDescriptor(_DMDDESCRIPTION_COLORMAPPING) - - -_EMPTYREQUEST = _descriptor.Descriptor( - name='EmptyRequest', - full_name='mpf.vpe.EmptyRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=27, - serialized_end=41, -) - - -_EMPTYRESPONSE = _descriptor.Descriptor( - name='EmptyResponse', - full_name='mpf.vpe.EmptyResponse', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=43, - serialized_end=58, -) - - -_QUITREQUEST = _descriptor.Descriptor( - name='QuitRequest', - full_name='mpf.vpe.QuitRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=60, - serialized_end=73, -) - - -_MACHINESTATE_INITIALSWITCHSTATESENTRY = _descriptor.Descriptor( - name='InitialSwitchStatesEntry', - full_name='mpf.vpe.MachineState.InitialSwitchStatesEntry', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='key', full_name='mpf.vpe.MachineState.InitialSwitchStatesEntry.key', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='value', full_name='mpf.vpe.MachineState.InitialSwitchStatesEntry.value', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=b'8\001', - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=171, - serialized_end=229, -) - -_MACHINESTATE = _descriptor.Descriptor( - name='MachineState', - full_name='mpf.vpe.MachineState', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='initial_switch_states', full_name='mpf.vpe.MachineState.initial_switch_states', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_MACHINESTATE_INITIALSWITCHSTATESENTRY, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=76, - serialized_end=229, -) - - -_SWITCHDESCRIPTION = _descriptor.Descriptor( - name='SwitchDescription', - full_name='mpf.vpe.SwitchDescription', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.SwitchDescription.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='hardware_number', full_name='mpf.vpe.SwitchDescription.hardware_number', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='switch_type', full_name='mpf.vpe.SwitchDescription.switch_type', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=231, - serialized_end=310, -) - - -_COILDESCRIPTION = _descriptor.Descriptor( - name='CoilDescription', - full_name='mpf.vpe.CoilDescription', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.CoilDescription.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='hardware_number', full_name='mpf.vpe.CoilDescription.hardware_number', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=312, - serialized_end=368, -) - - -_LIGHTDESCRIPTION = _descriptor.Descriptor( - name='LightDescription', - full_name='mpf.vpe.LightDescription', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.LightDescription.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='hardware_channel_number', full_name='mpf.vpe.LightDescription.hardware_channel_number', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='hardware_channel_color', full_name='mpf.vpe.LightDescription.hardware_channel_color', index=2, - number=3, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=370, - serialized_end=467, -) - - -_DMDDESCRIPTION = _descriptor.Descriptor( - name='DmdDescription', - full_name='mpf.vpe.DmdDescription', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.DmdDescription.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='color_mapping', full_name='mpf.vpe.DmdDescription.color_mapping', index=1, - number=2, type=14, cpp_type=8, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='width', full_name='mpf.vpe.DmdDescription.width', index=2, - number=3, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='height', full_name='mpf.vpe.DmdDescription.height', index=3, - number=4, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - _DMDDESCRIPTION_COLORMAPPING, - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=470, - serialized_end=625, -) - - -_SEGMENTDISPLAYDESCRIPTION = _descriptor.Descriptor( - name='SegmentDisplayDescription', - full_name='mpf.vpe.SegmentDisplayDescription', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.SegmentDisplayDescription.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='width', full_name='mpf.vpe.SegmentDisplayDescription.width', index=1, - number=2, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=627, - serialized_end=683, -) - - -_MACHINEDESCRIPTION = _descriptor.Descriptor( - name='MachineDescription', - full_name='mpf.vpe.MachineDescription', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='switches', full_name='mpf.vpe.MachineDescription.switches', index=0, - number=1, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='coils', full_name='mpf.vpe.MachineDescription.coils', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='lights', full_name='mpf.vpe.MachineDescription.lights', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='dmds', full_name='mpf.vpe.MachineDescription.dmds', index=3, - number=4, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='segment_displays', full_name='mpf.vpe.MachineDescription.segment_displays', index=4, - number=5, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=686, - serialized_end=937, -) - - -_SWITCHCHANGES = _descriptor.Descriptor( - name='SwitchChanges', - full_name='mpf.vpe.SwitchChanges', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='switch_number', full_name='mpf.vpe.SwitchChanges.switch_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='switch_state', full_name='mpf.vpe.SwitchChanges.switch_state', index=1, - number=2, type=8, cpp_type=7, label=1, - has_default_value=False, default_value=False, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='change_time', full_name='mpf.vpe.SwitchChanges.change_time', index=2, - number=3, type=4, cpp_type=4, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=939, - serialized_end=1020, -) - - -_SETDMDFRAMEREQUEST = _descriptor.Descriptor( - name='SetDmdFrameRequest', - full_name='mpf.vpe.SetDmdFrameRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.SetDmdFrameRequest.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='frame', full_name='mpf.vpe.SetDmdFrameRequest.frame', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='brightness', full_name='mpf.vpe.SetDmdFrameRequest.brightness', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1022, - serialized_end=1091, -) - - -_SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR = _descriptor.Descriptor( - name='SegmentDisplayColor', - full_name='mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='r', full_name='mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor.r', index=0, - number=1, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='g', full_name='mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor.g', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='b', full_name='mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor.b', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1232, - serialized_end=1286, -) - -_SETSEGMENTDISPLAYFRAMEREQUEST = _descriptor.Descriptor( - name='SetSegmentDisplayFrameRequest', - full_name='mpf.vpe.SetSegmentDisplayFrameRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='name', full_name='mpf.vpe.SetSegmentDisplayFrameRequest.name', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='frame', full_name='mpf.vpe.SetSegmentDisplayFrameRequest.frame', index=1, - number=2, type=12, cpp_type=9, label=1, - has_default_value=False, default_value=b"", - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='colors', full_name='mpf.vpe.SetSegmentDisplayFrameRequest.colors', index=2, - number=3, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1094, - serialized_end=1286, -) - - -_COMMANDS = _descriptor.Descriptor( - name='Commands', - full_name='mpf.vpe.Commands', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='fade_light', full_name='mpf.vpe.Commands.fade_light', index=0, - number=1, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_coil', full_name='mpf.vpe.Commands.pulse_coil', index=1, - number=2, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='enable_coil', full_name='mpf.vpe.Commands.enable_coil', index=2, - number=3, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='disable_coil', full_name='mpf.vpe.Commands.disable_coil', index=3, - number=4, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='configure_hardware_rule', full_name='mpf.vpe.Commands.configure_hardware_rule', index=4, - number=5, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='remove_hardware_rule', full_name='mpf.vpe.Commands.remove_hardware_rule', index=5, - number=6, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='dmd_frame_request', full_name='mpf.vpe.Commands.dmd_frame_request', index=6, - number=7, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='segment_display_frame_request', full_name='mpf.vpe.Commands.segment_display_frame_request', index=7, - number=8, type=11, cpp_type=10, label=1, - has_default_value=False, default_value=None, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - _descriptor.OneofDescriptor( - name='command', full_name='mpf.vpe.Commands.command', - index=0, containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[]), - ], - serialized_start=1289, - serialized_end=1793, -) - - -_FADELIGHTREQUEST_CHANNELFADE = _descriptor.Descriptor( - name='ChannelFade', - full_name='mpf.vpe.FadeLightRequest.ChannelFade', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='light_number', full_name='mpf.vpe.FadeLightRequest.ChannelFade.light_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='target_brightness', full_name='mpf.vpe.FadeLightRequest.ChannelFade.target_brightness', index=1, - number=2, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1894, - serialized_end=1956, -) - -_FADELIGHTREQUEST = _descriptor.Descriptor( - name='FadeLightRequest', - full_name='mpf.vpe.FadeLightRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='common_fade_ms', full_name='mpf.vpe.FadeLightRequest.common_fade_ms', index=0, - number=1, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='fades', full_name='mpf.vpe.FadeLightRequest.fades', index=1, - number=2, type=11, cpp_type=10, label=3, - has_default_value=False, default_value=[], - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[_FADELIGHTREQUEST_CHANNELFADE, ], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1796, - serialized_end=1956, -) - - -_PULSECOILREQUEST = _descriptor.Descriptor( - name='PulseCoilRequest', - full_name='mpf.vpe.PulseCoilRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='coil_number', full_name='mpf.vpe.PulseCoilRequest.coil_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_ms', full_name='mpf.vpe.PulseCoilRequest.pulse_ms', index=1, - number=2, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_power', full_name='mpf.vpe.PulseCoilRequest.pulse_power', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=1958, - serialized_end=2036, -) - - -_ENABLECOILREQUEST = _descriptor.Descriptor( - name='EnableCoilRequest', - full_name='mpf.vpe.EnableCoilRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='coil_number', full_name='mpf.vpe.EnableCoilRequest.coil_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_ms', full_name='mpf.vpe.EnableCoilRequest.pulse_ms', index=1, - number=2, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_power', full_name='mpf.vpe.EnableCoilRequest.pulse_power', index=2, - number=3, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='hold_power', full_name='mpf.vpe.EnableCoilRequest.hold_power', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2038, - serialized_end=2137, -) - - -_DISABLECOILREQUEST = _descriptor.Descriptor( - name='DisableCoilRequest', - full_name='mpf.vpe.DisableCoilRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='coil_number', full_name='mpf.vpe.DisableCoilRequest.coil_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2139, - serialized_end=2180, -) - - -_CONFIGUREHARDWARERULEREQUEST = _descriptor.Descriptor( - name='ConfigureHardwareRuleRequest', - full_name='mpf.vpe.ConfigureHardwareRuleRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='coil_number', full_name='mpf.vpe.ConfigureHardwareRuleRequest.coil_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='switch_number', full_name='mpf.vpe.ConfigureHardwareRuleRequest.switch_number', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_ms', full_name='mpf.vpe.ConfigureHardwareRuleRequest.pulse_ms', index=2, - number=3, type=13, cpp_type=3, label=1, - has_default_value=False, default_value=0, - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='pulse_power', full_name='mpf.vpe.ConfigureHardwareRuleRequest.pulse_power', index=3, - number=4, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='hold_power', full_name='mpf.vpe.ConfigureHardwareRuleRequest.hold_power', index=4, - number=5, type=2, cpp_type=6, label=1, - has_default_value=False, default_value=float(0), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2183, - serialized_end=2316, -) - - -_REMOVEHARDWARERULEREQUEST = _descriptor.Descriptor( - name='RemoveHardwareRuleRequest', - full_name='mpf.vpe.RemoveHardwareRuleRequest', - filename=None, - file=DESCRIPTOR, - containing_type=None, - create_key=_descriptor._internal_create_key, - fields=[ - _descriptor.FieldDescriptor( - name='coil_number', full_name='mpf.vpe.RemoveHardwareRuleRequest.coil_number', index=0, - number=1, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - _descriptor.FieldDescriptor( - name='switch_number', full_name='mpf.vpe.RemoveHardwareRuleRequest.switch_number', index=1, - number=2, type=9, cpp_type=9, label=1, - has_default_value=False, default_value=b"".decode('utf-8'), - message_type=None, enum_type=None, containing_type=None, - is_extension=False, extension_scope=None, - serialized_options=None, file=DESCRIPTOR, create_key=_descriptor._internal_create_key), - ], - extensions=[ - ], - nested_types=[], - enum_types=[ - ], - serialized_options=None, - is_extendable=False, - syntax='proto3', - extension_ranges=[], - oneofs=[ - ], - serialized_start=2318, - serialized_end=2389, -) - -_MACHINESTATE_INITIALSWITCHSTATESENTRY.containing_type = _MACHINESTATE -_MACHINESTATE.fields_by_name['initial_switch_states'].message_type = _MACHINESTATE_INITIALSWITCHSTATESENTRY -_DMDDESCRIPTION.fields_by_name['color_mapping'].enum_type = _DMDDESCRIPTION_COLORMAPPING -_DMDDESCRIPTION_COLORMAPPING.containing_type = _DMDDESCRIPTION -_MACHINEDESCRIPTION.fields_by_name['switches'].message_type = _SWITCHDESCRIPTION -_MACHINEDESCRIPTION.fields_by_name['coils'].message_type = _COILDESCRIPTION -_MACHINEDESCRIPTION.fields_by_name['lights'].message_type = _LIGHTDESCRIPTION -_MACHINEDESCRIPTION.fields_by_name['dmds'].message_type = _DMDDESCRIPTION -_MACHINEDESCRIPTION.fields_by_name['segment_displays'].message_type = _SEGMENTDISPLAYDESCRIPTION -_SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR.containing_type = _SETSEGMENTDISPLAYFRAMEREQUEST -_SETSEGMENTDISPLAYFRAMEREQUEST.fields_by_name['colors'].message_type = _SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR -_COMMANDS.fields_by_name['fade_light'].message_type = _FADELIGHTREQUEST -_COMMANDS.fields_by_name['pulse_coil'].message_type = _PULSECOILREQUEST -_COMMANDS.fields_by_name['enable_coil'].message_type = _ENABLECOILREQUEST -_COMMANDS.fields_by_name['disable_coil'].message_type = _DISABLECOILREQUEST -_COMMANDS.fields_by_name['configure_hardware_rule'].message_type = _CONFIGUREHARDWARERULEREQUEST -_COMMANDS.fields_by_name['remove_hardware_rule'].message_type = _REMOVEHARDWARERULEREQUEST -_COMMANDS.fields_by_name['dmd_frame_request'].message_type = _SETDMDFRAMEREQUEST -_COMMANDS.fields_by_name['segment_display_frame_request'].message_type = _SETSEGMENTDISPLAYFRAMEREQUEST -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['fade_light']) -_COMMANDS.fields_by_name['fade_light'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['pulse_coil']) -_COMMANDS.fields_by_name['pulse_coil'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['enable_coil']) -_COMMANDS.fields_by_name['enable_coil'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['disable_coil']) -_COMMANDS.fields_by_name['disable_coil'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['configure_hardware_rule']) -_COMMANDS.fields_by_name['configure_hardware_rule'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['remove_hardware_rule']) -_COMMANDS.fields_by_name['remove_hardware_rule'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['dmd_frame_request']) -_COMMANDS.fields_by_name['dmd_frame_request'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_COMMANDS.oneofs_by_name['command'].fields.append( - _COMMANDS.fields_by_name['segment_display_frame_request']) -_COMMANDS.fields_by_name['segment_display_frame_request'].containing_oneof = _COMMANDS.oneofs_by_name['command'] -_FADELIGHTREQUEST_CHANNELFADE.containing_type = _FADELIGHTREQUEST -_FADELIGHTREQUEST.fields_by_name['fades'].message_type = _FADELIGHTREQUEST_CHANNELFADE -DESCRIPTOR.message_types_by_name['EmptyRequest'] = _EMPTYREQUEST -DESCRIPTOR.message_types_by_name['EmptyResponse'] = _EMPTYRESPONSE -DESCRIPTOR.message_types_by_name['QuitRequest'] = _QUITREQUEST -DESCRIPTOR.message_types_by_name['MachineState'] = _MACHINESTATE -DESCRIPTOR.message_types_by_name['SwitchDescription'] = _SWITCHDESCRIPTION -DESCRIPTOR.message_types_by_name['CoilDescription'] = _COILDESCRIPTION -DESCRIPTOR.message_types_by_name['LightDescription'] = _LIGHTDESCRIPTION -DESCRIPTOR.message_types_by_name['DmdDescription'] = _DMDDESCRIPTION -DESCRIPTOR.message_types_by_name['SegmentDisplayDescription'] = _SEGMENTDISPLAYDESCRIPTION -DESCRIPTOR.message_types_by_name['MachineDescription'] = _MACHINEDESCRIPTION -DESCRIPTOR.message_types_by_name['SwitchChanges'] = _SWITCHCHANGES -DESCRIPTOR.message_types_by_name['SetDmdFrameRequest'] = _SETDMDFRAMEREQUEST -DESCRIPTOR.message_types_by_name['SetSegmentDisplayFrameRequest'] = _SETSEGMENTDISPLAYFRAMEREQUEST -DESCRIPTOR.message_types_by_name['Commands'] = _COMMANDS -DESCRIPTOR.message_types_by_name['FadeLightRequest'] = _FADELIGHTREQUEST -DESCRIPTOR.message_types_by_name['PulseCoilRequest'] = _PULSECOILREQUEST -DESCRIPTOR.message_types_by_name['EnableCoilRequest'] = _ENABLECOILREQUEST -DESCRIPTOR.message_types_by_name['DisableCoilRequest'] = _DISABLECOILREQUEST -DESCRIPTOR.message_types_by_name['ConfigureHardwareRuleRequest'] = _CONFIGUREHARDWARERULEREQUEST -DESCRIPTOR.message_types_by_name['RemoveHardwareRuleRequest'] = _REMOVEHARDWARERULEREQUEST -_sym_db.RegisterFileDescriptor(DESCRIPTOR) - -EmptyRequest = _reflection.GeneratedProtocolMessageType('EmptyRequest', (_message.Message,), { - 'DESCRIPTOR' : _EMPTYREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.EmptyRequest) - }) -_sym_db.RegisterMessage(EmptyRequest) - -EmptyResponse = _reflection.GeneratedProtocolMessageType('EmptyResponse', (_message.Message,), { - 'DESCRIPTOR' : _EMPTYRESPONSE, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.EmptyResponse) - }) -_sym_db.RegisterMessage(EmptyResponse) - -QuitRequest = _reflection.GeneratedProtocolMessageType('QuitRequest', (_message.Message,), { - 'DESCRIPTOR' : _QUITREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.QuitRequest) - }) -_sym_db.RegisterMessage(QuitRequest) - -MachineState = _reflection.GeneratedProtocolMessageType('MachineState', (_message.Message,), { - - 'InitialSwitchStatesEntry' : _reflection.GeneratedProtocolMessageType('InitialSwitchStatesEntry', (_message.Message,), { - 'DESCRIPTOR' : _MACHINESTATE_INITIALSWITCHSTATESENTRY, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.MachineState.InitialSwitchStatesEntry) - }) - , - 'DESCRIPTOR' : _MACHINESTATE, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.MachineState) - }) -_sym_db.RegisterMessage(MachineState) -_sym_db.RegisterMessage(MachineState.InitialSwitchStatesEntry) - -SwitchDescription = _reflection.GeneratedProtocolMessageType('SwitchDescription', (_message.Message,), { - 'DESCRIPTOR' : _SWITCHDESCRIPTION, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.SwitchDescription) - }) -_sym_db.RegisterMessage(SwitchDescription) - -CoilDescription = _reflection.GeneratedProtocolMessageType('CoilDescription', (_message.Message,), { - 'DESCRIPTOR' : _COILDESCRIPTION, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.CoilDescription) - }) -_sym_db.RegisterMessage(CoilDescription) - -LightDescription = _reflection.GeneratedProtocolMessageType('LightDescription', (_message.Message,), { - 'DESCRIPTOR' : _LIGHTDESCRIPTION, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.LightDescription) - }) -_sym_db.RegisterMessage(LightDescription) - -DmdDescription = _reflection.GeneratedProtocolMessageType('DmdDescription', (_message.Message,), { - 'DESCRIPTOR' : _DMDDESCRIPTION, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.DmdDescription) - }) -_sym_db.RegisterMessage(DmdDescription) - -SegmentDisplayDescription = _reflection.GeneratedProtocolMessageType('SegmentDisplayDescription', (_message.Message,), { - 'DESCRIPTOR' : _SEGMENTDISPLAYDESCRIPTION, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.SegmentDisplayDescription) - }) -_sym_db.RegisterMessage(SegmentDisplayDescription) - -MachineDescription = _reflection.GeneratedProtocolMessageType('MachineDescription', (_message.Message,), { - 'DESCRIPTOR' : _MACHINEDESCRIPTION, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.MachineDescription) - }) -_sym_db.RegisterMessage(MachineDescription) - -SwitchChanges = _reflection.GeneratedProtocolMessageType('SwitchChanges', (_message.Message,), { - 'DESCRIPTOR' : _SWITCHCHANGES, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.SwitchChanges) - }) -_sym_db.RegisterMessage(SwitchChanges) - -SetDmdFrameRequest = _reflection.GeneratedProtocolMessageType('SetDmdFrameRequest', (_message.Message,), { - 'DESCRIPTOR' : _SETDMDFRAMEREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.SetDmdFrameRequest) - }) -_sym_db.RegisterMessage(SetDmdFrameRequest) - -SetSegmentDisplayFrameRequest = _reflection.GeneratedProtocolMessageType('SetSegmentDisplayFrameRequest', (_message.Message,), { - - 'SegmentDisplayColor' : _reflection.GeneratedProtocolMessageType('SegmentDisplayColor', (_message.Message,), { - 'DESCRIPTOR' : _SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor) - }) - , - 'DESCRIPTOR' : _SETSEGMENTDISPLAYFRAMEREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.SetSegmentDisplayFrameRequest) - }) -_sym_db.RegisterMessage(SetSegmentDisplayFrameRequest) -_sym_db.RegisterMessage(SetSegmentDisplayFrameRequest.SegmentDisplayColor) - -Commands = _reflection.GeneratedProtocolMessageType('Commands', (_message.Message,), { - 'DESCRIPTOR' : _COMMANDS, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.Commands) - }) -_sym_db.RegisterMessage(Commands) - -FadeLightRequest = _reflection.GeneratedProtocolMessageType('FadeLightRequest', (_message.Message,), { - - 'ChannelFade' : _reflection.GeneratedProtocolMessageType('ChannelFade', (_message.Message,), { - 'DESCRIPTOR' : _FADELIGHTREQUEST_CHANNELFADE, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.FadeLightRequest.ChannelFade) - }) - , - 'DESCRIPTOR' : _FADELIGHTREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.FadeLightRequest) - }) -_sym_db.RegisterMessage(FadeLightRequest) -_sym_db.RegisterMessage(FadeLightRequest.ChannelFade) - -PulseCoilRequest = _reflection.GeneratedProtocolMessageType('PulseCoilRequest', (_message.Message,), { - 'DESCRIPTOR' : _PULSECOILREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.PulseCoilRequest) - }) -_sym_db.RegisterMessage(PulseCoilRequest) - -EnableCoilRequest = _reflection.GeneratedProtocolMessageType('EnableCoilRequest', (_message.Message,), { - 'DESCRIPTOR' : _ENABLECOILREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.EnableCoilRequest) - }) -_sym_db.RegisterMessage(EnableCoilRequest) - -DisableCoilRequest = _reflection.GeneratedProtocolMessageType('DisableCoilRequest', (_message.Message,), { - 'DESCRIPTOR' : _DISABLECOILREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.DisableCoilRequest) - }) -_sym_db.RegisterMessage(DisableCoilRequest) - -ConfigureHardwareRuleRequest = _reflection.GeneratedProtocolMessageType('ConfigureHardwareRuleRequest', (_message.Message,), { - 'DESCRIPTOR' : _CONFIGUREHARDWARERULEREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.ConfigureHardwareRuleRequest) - }) -_sym_db.RegisterMessage(ConfigureHardwareRuleRequest) - -RemoveHardwareRuleRequest = _reflection.GeneratedProtocolMessageType('RemoveHardwareRuleRequest', (_message.Message,), { - 'DESCRIPTOR' : _REMOVEHARDWARERULEREQUEST, - '__module__' : 'platform_pb2' - # @@protoc_insertion_point(class_scope:mpf.vpe.RemoveHardwareRuleRequest) - }) -_sym_db.RegisterMessage(RemoveHardwareRuleRequest) - - -_MACHINESTATE_INITIALSWITCHSTATESENTRY._options = None - -_MPFHARDWARESERVICE = _descriptor.ServiceDescriptor( - name='MpfHardwareService', - full_name='mpf.vpe.MpfHardwareService', - file=DESCRIPTOR, - index=0, - serialized_options=None, - create_key=_descriptor._internal_create_key, - serialized_start=2392, - serialized_end=2667, - methods=[ - _descriptor.MethodDescriptor( - name='Start', - full_name='mpf.vpe.MpfHardwareService.Start', - index=0, - containing_service=None, - input_type=_MACHINESTATE, - output_type=_COMMANDS, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='GetMachineDescription', - full_name='mpf.vpe.MpfHardwareService.GetMachineDescription', - index=1, - containing_service=None, - input_type=_EMPTYREQUEST, - output_type=_MACHINEDESCRIPTION, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='SendSwitchChanges', - full_name='mpf.vpe.MpfHardwareService.SendSwitchChanges', - index=2, - containing_service=None, - input_type=_SWITCHCHANGES, - output_type=_EMPTYRESPONSE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), - _descriptor.MethodDescriptor( - name='Quit', - full_name='mpf.vpe.MpfHardwareService.Quit', - index=3, - containing_service=None, - input_type=_QUITREQUEST, - output_type=_EMPTYRESPONSE, - serialized_options=None, - create_key=_descriptor._internal_create_key, - ), -]) -_sym_db.RegisterServiceDescriptor(_MPFHARDWARESERVICE) - -DESCRIPTOR.services_by_name['MpfHardwareService'] = _MPFHARDWARESERVICE - +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eplatform.proto\x12\x07mpf.vpe\"\x0e\n\x0c\x45mptyRequest\"\x0f\n\rEmptyResponse\"\r\n\x0bQuitRequest\"\x99\x01\n\x0cMachineState\x12M\n\x15initial_switch_states\x18\x01 \x03(\x0b\x32..mpf.vpe.MachineState.InitialSwitchStatesEntry\x1a:\n\x18InitialSwitchStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"O\n\x11SwitchDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\x12\x13\n\x0bswitch_type\x18\x03 \x01(\t\"8\n\x0f\x43oilDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\"a\n\x10LightDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17hardware_channel_number\x18\x02 \x01(\t\x12\x1e\n\x16hardware_channel_color\x18\x03 \x01(\t\"\x9b\x01\n\x0e\x44mdDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\rcolor_mapping\x18\x02 \x01(\x0e\x32$.mpf.vpe.DmdDescription.ColorMapping\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\"\x1f\n\x0c\x43olorMapping\x12\x06\n\x02\x42W\x10\x00\x12\x07\n\x03RGB\x10\x01\"8\n\x19SegmentDisplayDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\"\xfb\x01\n\x12MachineDescription\x12,\n\x08switches\x18\x01 \x03(\x0b\x32\x1a.mpf.vpe.SwitchDescription\x12\'\n\x05\x63oils\x18\x02 \x03(\x0b\x32\x18.mpf.vpe.CoilDescription\x12)\n\x06lights\x18\x03 \x03(\x0b\x32\x19.mpf.vpe.LightDescription\x12%\n\x04\x64mds\x18\x04 \x03(\x0b\x32\x17.mpf.vpe.DmdDescription\x12<\n\x10segment_displays\x18\x05 \x03(\x0b\x32\".mpf.vpe.SegmentDisplayDescription\"Q\n\rSwitchChanges\x12\x15\n\rswitch_number\x18\x01 \x01(\t\x12\x14\n\x0cswitch_state\x18\x02 \x01(\x08\x12\x13\n\x0b\x63hange_time\x18\x03 \x01(\x04\"E\n\x12SetDmdFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12\x12\n\nbrightness\x18\x03 \x01(\x02\"\xc0\x01\n\x1dSetSegmentDisplayFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12J\n\x06\x63olors\x18\x03 \x03(\x0b\x32:.mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor\x1a\x36\n\x13SegmentDisplayColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\"\xf8\x03\n\x08\x43ommands\x12/\n\nfade_light\x18\x01 \x01(\x0b\x32\x19.mpf.vpe.FadeLightRequestH\x00\x12/\n\npulse_coil\x18\x02 \x01(\x0b\x32\x19.mpf.vpe.PulseCoilRequestH\x00\x12\x31\n\x0b\x65nable_coil\x18\x03 \x01(\x0b\x32\x1a.mpf.vpe.EnableCoilRequestH\x00\x12\x33\n\x0c\x64isable_coil\x18\x04 \x01(\x0b\x32\x1b.mpf.vpe.DisableCoilRequestH\x00\x12H\n\x17\x63onfigure_hardware_rule\x18\x05 \x01(\x0b\x32%.mpf.vpe.ConfigureHardwareRuleRequestH\x00\x12\x42\n\x14remove_hardware_rule\x18\x06 \x01(\x0b\x32\".mpf.vpe.RemoveHardwareRuleRequestH\x00\x12\x38\n\x11\x64md_frame_request\x18\x07 \x01(\x0b\x32\x1b.mpf.vpe.SetDmdFrameRequestH\x00\x12O\n\x1dsegment_display_frame_request\x18\x08 \x01(\x0b\x32&.mpf.vpe.SetSegmentDisplayFrameRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x01\n\x10\x46\x61\x64\x65LightRequest\x12\x16\n\x0e\x63ommon_fade_ms\x18\x01 \x01(\r\x12\x34\n\x05\x66\x61\x64\x65s\x18\x02 \x03(\x0b\x32%.mpf.vpe.FadeLightRequest.ChannelFade\x1a>\n\x0b\x43hannelFade\x12\x14\n\x0clight_number\x18\x01 \x01(\t\x12\x19\n\x11target_brightness\x18\x02 \x01(\x02\"N\n\x10PulseCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\"c\n\x11\x45nableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\x12\x12\n\nhold_power\x18\x04 \x01(\x02\")\n\x12\x44isableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\"\x85\x01\n\x1c\x43onfigureHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\x12\x10\n\x08pulse_ms\x18\x03 \x01(\r\x12\x13\n\x0bpulse_power\x18\x04 \x01(\x02\x12\x12\n\nhold_power\x18\x05 \x01(\x02\"G\n\x19RemoveHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t2\x93\x02\n\x12MpfHardwareService\x12\x33\n\x05Start\x12\x15.mpf.vpe.MachineState\x1a\x11.mpf.vpe.Commands0\x01\x12K\n\x15GetMachineDescription\x12\x15.mpf.vpe.EmptyRequest\x1a\x1b.mpf.vpe.MachineDescription\x12\x45\n\x11SendSwitchChanges\x12\x16.mpf.vpe.SwitchChanges\x1a\x16.mpf.vpe.EmptyResponse(\x01\x12\x34\n\x04Quit\x12\x14.mpf.vpe.QuitRequest\x1a\x16.mpf.vpe.EmptyResponseb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'platform_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + DESCRIPTOR._loaded_options = None + _globals['_MACHINESTATE_INITIALSWITCHSTATESENTRY']._loaded_options = None + _globals['_MACHINESTATE_INITIALSWITCHSTATESENTRY']._serialized_options = b'8\001' + _globals['_EMPTYREQUEST']._serialized_start=27 + _globals['_EMPTYREQUEST']._serialized_end=41 + _globals['_EMPTYRESPONSE']._serialized_start=43 + _globals['_EMPTYRESPONSE']._serialized_end=58 + _globals['_QUITREQUEST']._serialized_start=60 + _globals['_QUITREQUEST']._serialized_end=73 + _globals['_MACHINESTATE']._serialized_start=76 + _globals['_MACHINESTATE']._serialized_end=229 + _globals['_MACHINESTATE_INITIALSWITCHSTATESENTRY']._serialized_start=171 + _globals['_MACHINESTATE_INITIALSWITCHSTATESENTRY']._serialized_end=229 + _globals['_SWITCHDESCRIPTION']._serialized_start=231 + _globals['_SWITCHDESCRIPTION']._serialized_end=310 + _globals['_COILDESCRIPTION']._serialized_start=312 + _globals['_COILDESCRIPTION']._serialized_end=368 + _globals['_LIGHTDESCRIPTION']._serialized_start=370 + _globals['_LIGHTDESCRIPTION']._serialized_end=467 + _globals['_DMDDESCRIPTION']._serialized_start=470 + _globals['_DMDDESCRIPTION']._serialized_end=625 + _globals['_DMDDESCRIPTION_COLORMAPPING']._serialized_start=594 + _globals['_DMDDESCRIPTION_COLORMAPPING']._serialized_end=625 + _globals['_SEGMENTDISPLAYDESCRIPTION']._serialized_start=627 + _globals['_SEGMENTDISPLAYDESCRIPTION']._serialized_end=683 + _globals['_MACHINEDESCRIPTION']._serialized_start=686 + _globals['_MACHINEDESCRIPTION']._serialized_end=937 + _globals['_SWITCHCHANGES']._serialized_start=939 + _globals['_SWITCHCHANGES']._serialized_end=1020 + _globals['_SETDMDFRAMEREQUEST']._serialized_start=1022 + _globals['_SETDMDFRAMEREQUEST']._serialized_end=1091 + _globals['_SETSEGMENTDISPLAYFRAMEREQUEST']._serialized_start=1094 + _globals['_SETSEGMENTDISPLAYFRAMEREQUEST']._serialized_end=1286 + _globals['_SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR']._serialized_start=1232 + _globals['_SETSEGMENTDISPLAYFRAMEREQUEST_SEGMENTDISPLAYCOLOR']._serialized_end=1286 + _globals['_COMMANDS']._serialized_start=1289 + _globals['_COMMANDS']._serialized_end=1793 + _globals['_FADELIGHTREQUEST']._serialized_start=1796 + _globals['_FADELIGHTREQUEST']._serialized_end=1956 + _globals['_FADELIGHTREQUEST_CHANNELFADE']._serialized_start=1894 + _globals['_FADELIGHTREQUEST_CHANNELFADE']._serialized_end=1956 + _globals['_PULSECOILREQUEST']._serialized_start=1958 + _globals['_PULSECOILREQUEST']._serialized_end=2036 + _globals['_ENABLECOILREQUEST']._serialized_start=2038 + _globals['_ENABLECOILREQUEST']._serialized_end=2137 + _globals['_DISABLECOILREQUEST']._serialized_start=2139 + _globals['_DISABLECOILREQUEST']._serialized_end=2180 + _globals['_CONFIGUREHARDWARERULEREQUEST']._serialized_start=2183 + _globals['_CONFIGUREHARDWARERULEREQUEST']._serialized_end=2316 + _globals['_REMOVEHARDWARERULEREQUEST']._serialized_start=2318 + _globals['_REMOVEHARDWARERULEREQUEST']._serialized_end=2389 + _globals['_MPFHARDWARESERVICE']._serialized_start=2392 + _globals['_MPFHARDWARESERVICE']._serialized_end=2667 # @@protoc_insertion_point(module_scope) diff --git a/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py b/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py index 79cfa5b58..9c7b7b31b 100644 --- a/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py +++ b/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py @@ -1,9 +1,29 @@ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! """Client and server classes corresponding to protobuf-defined services.""" import grpc +import warnings from . import platform_pb2 as platform__pb2 +GRPC_GENERATED_VERSION = '1.69.0' +GRPC_VERSION = grpc.__version__ +_version_not_supported = False + +try: + from grpc._utilities import first_version_is_lower + _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION) +except ImportError: + _version_not_supported = True + +if _version_not_supported: + raise RuntimeError( + f'The grpc package installed is at version {GRPC_VERSION},' + + f' but the generated code in platform_pb2_grpc.py depends on' + + f' grpcio>={GRPC_GENERATED_VERSION}.' + + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}' + + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.' + ) + class MpfHardwareServiceStub(object): """Missing associated documentation comment in .proto file.""" @@ -18,22 +38,22 @@ def __init__(self, channel): '/mpf.vpe.MpfHardwareService/Start', request_serializer=platform__pb2.MachineState.SerializeToString, response_deserializer=platform__pb2.Commands.FromString, - ) + _registered_method=True) self.GetMachineDescription = channel.unary_unary( '/mpf.vpe.MpfHardwareService/GetMachineDescription', request_serializer=platform__pb2.EmptyRequest.SerializeToString, response_deserializer=platform__pb2.MachineDescription.FromString, - ) + _registered_method=True) self.SendSwitchChanges = channel.stream_unary( '/mpf.vpe.MpfHardwareService/SendSwitchChanges', request_serializer=platform__pb2.SwitchChanges.SerializeToString, response_deserializer=platform__pb2.EmptyResponse.FromString, - ) + _registered_method=True) self.Quit = channel.unary_unary( '/mpf.vpe.MpfHardwareService/Quit', request_serializer=platform__pb2.QuitRequest.SerializeToString, response_deserializer=platform__pb2.EmptyResponse.FromString, - ) + _registered_method=True) class MpfHardwareServiceServicer(object): @@ -90,6 +110,7 @@ def add_MpfHardwareServiceServicer_to_server(servicer, server): generic_handler = grpc.method_handlers_generic_handler( 'mpf.vpe.MpfHardwareService', rpc_method_handlers) server.add_generic_rpc_handlers((generic_handler,)) + server.add_registered_method_handlers('mpf.vpe.MpfHardwareService', rpc_method_handlers) # This class is part of an EXPERIMENTAL API. @@ -107,11 +128,21 @@ def Start(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_stream(request, target, '/mpf.vpe.MpfHardwareService/Start', + return grpc.experimental.unary_stream( + request, + target, + '/mpf.vpe.MpfHardwareService/Start', platform__pb2.MachineState.SerializeToString, platform__pb2.Commands.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def GetMachineDescription(request, @@ -124,11 +155,21 @@ def GetMachineDescription(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/mpf.vpe.MpfHardwareService/GetMachineDescription', + return grpc.experimental.unary_unary( + request, + target, + '/mpf.vpe.MpfHardwareService/GetMachineDescription', platform__pb2.EmptyRequest.SerializeToString, platform__pb2.MachineDescription.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def SendSwitchChanges(request_iterator, @@ -141,11 +182,21 @@ def SendSwitchChanges(request_iterator, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.stream_unary(request_iterator, target, '/mpf.vpe.MpfHardwareService/SendSwitchChanges', + return grpc.experimental.stream_unary( + request_iterator, + target, + '/mpf.vpe.MpfHardwareService/SendSwitchChanges', platform__pb2.SwitchChanges.SerializeToString, platform__pb2.EmptyResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) @staticmethod def Quit(request, @@ -158,8 +209,18 @@ def Quit(request, wait_for_ready=None, timeout=None, metadata=None): - return grpc.experimental.unary_unary(request, target, '/mpf.vpe.MpfHardwareService/Quit', + return grpc.experimental.unary_unary( + request, + target, + '/mpf.vpe.MpfHardwareService/Quit', platform__pb2.QuitRequest.SerializeToString, platform__pb2.EmptyResponse.FromString, - options, channel_credentials, - insecure, call_credentials, compression, wait_for_ready, timeout, metadata) + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/pyproject.toml b/pyproject.toml index df38af30c..ab0d873fb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -45,14 +45,14 @@ pin2dmd = ['pyusb==1.1.0'] rpi = ['apigpio-mpf==0.0.4'] # uvloop must be optional, because non-Cython derivatives don't support it. uvloop = ['uvloop==0.19.0'] # Oct 4 2023, msin asyncio loop -vpe = ['grpcio_tools==1.34.0', - 'grpcio==1.34.0', - 'protobuf==3.14.0',] +vpe = ['grpcio_tools==1.69.0', + 'grpcio==1.69.0', + 'protobuf==5.29.3',] all = [ # currently no way to just use the names from above afaik? 'prompt_toolkit==3.0.43', 'asciimatics==1.15.0', 'terminaltables==3.1.0', 'requests==2.28.2', 'irc==19.0.1', 'smbus2_asyncio==0.0.5', 'python-osc==1.8.3', 'pyusb==1.1.0', 'apigpio-mpf==0.0.4', - 'grpcio_tools==1.34.0', 'grpcio==1.34.0', 'protobuf==3.14.0', + 'grpcio_tools==1.69.0', 'grpcio==1.69.0', 'protobuf==5.29.3', 'uvloop==0.19.0' ] From e3870ef1b97f80ad0cfb267f21253461d7d64b59 Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sat, 25 Jan 2025 11:44:41 +0100 Subject: [PATCH 2/3] Add ping RPC to VPE service --- .../visual_pinball_engine/platform_pb2.py | 4 +- .../platform_pb2_grpc.py | 43 +++++++++++++++++++ .../protobuf/platform.proto | 1 + .../visual_pinball_engine/service.py | 3 ++ 4 files changed, 49 insertions(+), 2 deletions(-) diff --git a/mpf/platforms/visual_pinball_engine/platform_pb2.py b/mpf/platforms/visual_pinball_engine/platform_pb2.py index 4da680a28..eaf4f3199 100644 --- a/mpf/platforms/visual_pinball_engine/platform_pb2.py +++ b/mpf/platforms/visual_pinball_engine/platform_pb2.py @@ -24,7 +24,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eplatform.proto\x12\x07mpf.vpe\"\x0e\n\x0c\x45mptyRequest\"\x0f\n\rEmptyResponse\"\r\n\x0bQuitRequest\"\x99\x01\n\x0cMachineState\x12M\n\x15initial_switch_states\x18\x01 \x03(\x0b\x32..mpf.vpe.MachineState.InitialSwitchStatesEntry\x1a:\n\x18InitialSwitchStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"O\n\x11SwitchDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\x12\x13\n\x0bswitch_type\x18\x03 \x01(\t\"8\n\x0f\x43oilDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\"a\n\x10LightDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17hardware_channel_number\x18\x02 \x01(\t\x12\x1e\n\x16hardware_channel_color\x18\x03 \x01(\t\"\x9b\x01\n\x0e\x44mdDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\rcolor_mapping\x18\x02 \x01(\x0e\x32$.mpf.vpe.DmdDescription.ColorMapping\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\"\x1f\n\x0c\x43olorMapping\x12\x06\n\x02\x42W\x10\x00\x12\x07\n\x03RGB\x10\x01\"8\n\x19SegmentDisplayDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\"\xfb\x01\n\x12MachineDescription\x12,\n\x08switches\x18\x01 \x03(\x0b\x32\x1a.mpf.vpe.SwitchDescription\x12\'\n\x05\x63oils\x18\x02 \x03(\x0b\x32\x18.mpf.vpe.CoilDescription\x12)\n\x06lights\x18\x03 \x03(\x0b\x32\x19.mpf.vpe.LightDescription\x12%\n\x04\x64mds\x18\x04 \x03(\x0b\x32\x17.mpf.vpe.DmdDescription\x12<\n\x10segment_displays\x18\x05 \x03(\x0b\x32\".mpf.vpe.SegmentDisplayDescription\"Q\n\rSwitchChanges\x12\x15\n\rswitch_number\x18\x01 \x01(\t\x12\x14\n\x0cswitch_state\x18\x02 \x01(\x08\x12\x13\n\x0b\x63hange_time\x18\x03 \x01(\x04\"E\n\x12SetDmdFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12\x12\n\nbrightness\x18\x03 \x01(\x02\"\xc0\x01\n\x1dSetSegmentDisplayFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12J\n\x06\x63olors\x18\x03 \x03(\x0b\x32:.mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor\x1a\x36\n\x13SegmentDisplayColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\"\xf8\x03\n\x08\x43ommands\x12/\n\nfade_light\x18\x01 \x01(\x0b\x32\x19.mpf.vpe.FadeLightRequestH\x00\x12/\n\npulse_coil\x18\x02 \x01(\x0b\x32\x19.mpf.vpe.PulseCoilRequestH\x00\x12\x31\n\x0b\x65nable_coil\x18\x03 \x01(\x0b\x32\x1a.mpf.vpe.EnableCoilRequestH\x00\x12\x33\n\x0c\x64isable_coil\x18\x04 \x01(\x0b\x32\x1b.mpf.vpe.DisableCoilRequestH\x00\x12H\n\x17\x63onfigure_hardware_rule\x18\x05 \x01(\x0b\x32%.mpf.vpe.ConfigureHardwareRuleRequestH\x00\x12\x42\n\x14remove_hardware_rule\x18\x06 \x01(\x0b\x32\".mpf.vpe.RemoveHardwareRuleRequestH\x00\x12\x38\n\x11\x64md_frame_request\x18\x07 \x01(\x0b\x32\x1b.mpf.vpe.SetDmdFrameRequestH\x00\x12O\n\x1dsegment_display_frame_request\x18\x08 \x01(\x0b\x32&.mpf.vpe.SetSegmentDisplayFrameRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x01\n\x10\x46\x61\x64\x65LightRequest\x12\x16\n\x0e\x63ommon_fade_ms\x18\x01 \x01(\r\x12\x34\n\x05\x66\x61\x64\x65s\x18\x02 \x03(\x0b\x32%.mpf.vpe.FadeLightRequest.ChannelFade\x1a>\n\x0b\x43hannelFade\x12\x14\n\x0clight_number\x18\x01 \x01(\t\x12\x19\n\x11target_brightness\x18\x02 \x01(\x02\"N\n\x10PulseCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\"c\n\x11\x45nableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\x12\x12\n\nhold_power\x18\x04 \x01(\x02\")\n\x12\x44isableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\"\x85\x01\n\x1c\x43onfigureHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\x12\x10\n\x08pulse_ms\x18\x03 \x01(\r\x12\x13\n\x0bpulse_power\x18\x04 \x01(\x02\x12\x12\n\nhold_power\x18\x05 \x01(\x02\"G\n\x19RemoveHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t2\x93\x02\n\x12MpfHardwareService\x12\x33\n\x05Start\x12\x15.mpf.vpe.MachineState\x1a\x11.mpf.vpe.Commands0\x01\x12K\n\x15GetMachineDescription\x12\x15.mpf.vpe.EmptyRequest\x1a\x1b.mpf.vpe.MachineDescription\x12\x45\n\x11SendSwitchChanges\x12\x16.mpf.vpe.SwitchChanges\x1a\x16.mpf.vpe.EmptyResponse(\x01\x12\x34\n\x04Quit\x12\x14.mpf.vpe.QuitRequest\x1a\x16.mpf.vpe.EmptyResponseb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eplatform.proto\x12\x07mpf.vpe\"\x0e\n\x0c\x45mptyRequest\"\x0f\n\rEmptyResponse\"\r\n\x0bQuitRequest\"\x99\x01\n\x0cMachineState\x12M\n\x15initial_switch_states\x18\x01 \x03(\x0b\x32..mpf.vpe.MachineState.InitialSwitchStatesEntry\x1a:\n\x18InitialSwitchStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"O\n\x11SwitchDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\x12\x13\n\x0bswitch_type\x18\x03 \x01(\t\"8\n\x0f\x43oilDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\"a\n\x10LightDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17hardware_channel_number\x18\x02 \x01(\t\x12\x1e\n\x16hardware_channel_color\x18\x03 \x01(\t\"\x9b\x01\n\x0e\x44mdDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\rcolor_mapping\x18\x02 \x01(\x0e\x32$.mpf.vpe.DmdDescription.ColorMapping\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\"\x1f\n\x0c\x43olorMapping\x12\x06\n\x02\x42W\x10\x00\x12\x07\n\x03RGB\x10\x01\"8\n\x19SegmentDisplayDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\"\xfb\x01\n\x12MachineDescription\x12,\n\x08switches\x18\x01 \x03(\x0b\x32\x1a.mpf.vpe.SwitchDescription\x12\'\n\x05\x63oils\x18\x02 \x03(\x0b\x32\x18.mpf.vpe.CoilDescription\x12)\n\x06lights\x18\x03 \x03(\x0b\x32\x19.mpf.vpe.LightDescription\x12%\n\x04\x64mds\x18\x04 \x03(\x0b\x32\x17.mpf.vpe.DmdDescription\x12<\n\x10segment_displays\x18\x05 \x03(\x0b\x32\".mpf.vpe.SegmentDisplayDescription\"Q\n\rSwitchChanges\x12\x15\n\rswitch_number\x18\x01 \x01(\t\x12\x14\n\x0cswitch_state\x18\x02 \x01(\x08\x12\x13\n\x0b\x63hange_time\x18\x03 \x01(\x04\"E\n\x12SetDmdFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12\x12\n\nbrightness\x18\x03 \x01(\x02\"\xc0\x01\n\x1dSetSegmentDisplayFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12J\n\x06\x63olors\x18\x03 \x03(\x0b\x32:.mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor\x1a\x36\n\x13SegmentDisplayColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\"\xf8\x03\n\x08\x43ommands\x12/\n\nfade_light\x18\x01 \x01(\x0b\x32\x19.mpf.vpe.FadeLightRequestH\x00\x12/\n\npulse_coil\x18\x02 \x01(\x0b\x32\x19.mpf.vpe.PulseCoilRequestH\x00\x12\x31\n\x0b\x65nable_coil\x18\x03 \x01(\x0b\x32\x1a.mpf.vpe.EnableCoilRequestH\x00\x12\x33\n\x0c\x64isable_coil\x18\x04 \x01(\x0b\x32\x1b.mpf.vpe.DisableCoilRequestH\x00\x12H\n\x17\x63onfigure_hardware_rule\x18\x05 \x01(\x0b\x32%.mpf.vpe.ConfigureHardwareRuleRequestH\x00\x12\x42\n\x14remove_hardware_rule\x18\x06 \x01(\x0b\x32\".mpf.vpe.RemoveHardwareRuleRequestH\x00\x12\x38\n\x11\x64md_frame_request\x18\x07 \x01(\x0b\x32\x1b.mpf.vpe.SetDmdFrameRequestH\x00\x12O\n\x1dsegment_display_frame_request\x18\x08 \x01(\x0b\x32&.mpf.vpe.SetSegmentDisplayFrameRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x01\n\x10\x46\x61\x64\x65LightRequest\x12\x16\n\x0e\x63ommon_fade_ms\x18\x01 \x01(\r\x12\x34\n\x05\x66\x61\x64\x65s\x18\x02 \x03(\x0b\x32%.mpf.vpe.FadeLightRequest.ChannelFade\x1a>\n\x0b\x43hannelFade\x12\x14\n\x0clight_number\x18\x01 \x01(\t\x12\x19\n\x11target_brightness\x18\x02 \x01(\x02\"N\n\x10PulseCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\"c\n\x11\x45nableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\x12\x12\n\nhold_power\x18\x04 \x01(\x02\")\n\x12\x44isableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\"\x85\x01\n\x1c\x43onfigureHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\x12\x10\n\x08pulse_ms\x18\x03 \x01(\r\x12\x13\n\x0bpulse_power\x18\x04 \x01(\x02\x12\x12\n\nhold_power\x18\x05 \x01(\x02\"G\n\x19RemoveHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t2\xc9\x02\n\x12MpfHardwareService\x12\x33\n\x05Start\x12\x15.mpf.vpe.MachineState\x1a\x11.mpf.vpe.Commands0\x01\x12K\n\x15GetMachineDescription\x12\x15.mpf.vpe.EmptyRequest\x1a\x1b.mpf.vpe.MachineDescription\x12\x45\n\x11SendSwitchChanges\x12\x16.mpf.vpe.SwitchChanges\x1a\x16.mpf.vpe.EmptyResponse(\x01\x12\x34\n\x04Quit\x12\x14.mpf.vpe.QuitRequest\x1a\x16.mpf.vpe.EmptyResponse\x12\x34\n\x04Ping\x12\x15.mpf.vpe.EmptyRequest\x1a\x15.mpf.vpe.EmptyRequestb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -82,5 +82,5 @@ _globals['_REMOVEHARDWARERULEREQUEST']._serialized_start=2318 _globals['_REMOVEHARDWARERULEREQUEST']._serialized_end=2389 _globals['_MPFHARDWARESERVICE']._serialized_start=2392 - _globals['_MPFHARDWARESERVICE']._serialized_end=2667 + _globals['_MPFHARDWARESERVICE']._serialized_end=2721 # @@protoc_insertion_point(module_scope) diff --git a/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py b/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py index 9c7b7b31b..2e61c01cc 100644 --- a/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py +++ b/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py @@ -54,6 +54,11 @@ def __init__(self, channel): request_serializer=platform__pb2.QuitRequest.SerializeToString, response_deserializer=platform__pb2.EmptyResponse.FromString, _registered_method=True) + self.Ping = channel.unary_unary( + '/mpf.vpe.MpfHardwareService/Ping', + request_serializer=platform__pb2.EmptyRequest.SerializeToString, + response_deserializer=platform__pb2.EmptyRequest.FromString, + _registered_method=True) class MpfHardwareServiceServicer(object): @@ -83,6 +88,12 @@ def Quit(self, request, context): context.set_details('Method not implemented!') raise NotImplementedError('Method not implemented!') + def Ping(self, request, context): + """Missing associated documentation comment in .proto file.""" + context.set_code(grpc.StatusCode.UNIMPLEMENTED) + context.set_details('Method not implemented!') + raise NotImplementedError('Method not implemented!') + def add_MpfHardwareServiceServicer_to_server(servicer, server): rpc_method_handlers = { @@ -106,6 +117,11 @@ def add_MpfHardwareServiceServicer_to_server(servicer, server): request_deserializer=platform__pb2.QuitRequest.FromString, response_serializer=platform__pb2.EmptyResponse.SerializeToString, ), + 'Ping': grpc.unary_unary_rpc_method_handler( + servicer.Ping, + request_deserializer=platform__pb2.EmptyRequest.FromString, + response_serializer=platform__pb2.EmptyRequest.SerializeToString, + ), } generic_handler = grpc.method_handlers_generic_handler( 'mpf.vpe.MpfHardwareService', rpc_method_handlers) @@ -224,3 +240,30 @@ def Quit(request, timeout, metadata, _registered_method=True) + + @staticmethod + def Ping(request, + target, + options=(), + channel_credentials=None, + call_credentials=None, + insecure=False, + compression=None, + wait_for_ready=None, + timeout=None, + metadata=None): + return grpc.experimental.unary_unary( + request, + target, + '/mpf.vpe.MpfHardwareService/Ping', + platform__pb2.EmptyRequest.SerializeToString, + platform__pb2.EmptyRequest.FromString, + options, + channel_credentials, + insecure, + call_credentials, + compression, + wait_for_ready, + timeout, + metadata, + _registered_method=True) diff --git a/mpf/platforms/visual_pinball_engine/protobuf/platform.proto b/mpf/platforms/visual_pinball_engine/protobuf/platform.proto index ebe6e610f..9240d5e04 100644 --- a/mpf/platforms/visual_pinball_engine/protobuf/platform.proto +++ b/mpf/platforms/visual_pinball_engine/protobuf/platform.proto @@ -7,6 +7,7 @@ service MpfHardwareService { rpc GetMachineDescription(EmptyRequest) returns (MachineDescription); rpc SendSwitchChanges(stream SwitchChanges) returns (EmptyResponse); rpc Quit(QuitRequest) returns (EmptyResponse); + rpc Ping(EmptyRequest) returns (EmptyRequest); } message EmptyRequest {} diff --git a/mpf/platforms/visual_pinball_engine/service.py b/mpf/platforms/visual_pinball_engine/service.py index e20227658..5fd14695d 100644 --- a/mpf/platforms/visual_pinball_engine/service.py +++ b/mpf/platforms/visual_pinball_engine/service.py @@ -110,3 +110,6 @@ async def Quit(self, request, context): # noqa """Stop MPF.""" self.machine.stop(reason="VPE exited.") return platform_pb2.EmptyResponse() + + async def Ping(self, request, context): + return platform_pb2.EmptyResponse(); From da439f9f28d5e2fcfdd560b565aaca1fd14d6f0c Mon Sep 17 00:00:00 2001 From: arthurkehrwald <50906979+arthurkehrwald@users.noreply.github.com> Date: Sat, 25 Jan 2025 19:26:30 +0100 Subject: [PATCH 3/3] Send version to MPF when pinged --- mpf/platforms/visual_pinball_engine/platform_pb2.py | 8 +++++--- mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py | 6 +++--- .../visual_pinball_engine/protobuf/platform.proto | 6 +++++- mpf/platforms/visual_pinball_engine/service.py | 5 +++-- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/mpf/platforms/visual_pinball_engine/platform_pb2.py b/mpf/platforms/visual_pinball_engine/platform_pb2.py index eaf4f3199..e483a06c9 100644 --- a/mpf/platforms/visual_pinball_engine/platform_pb2.py +++ b/mpf/platforms/visual_pinball_engine/platform_pb2.py @@ -24,7 +24,7 @@ -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eplatform.proto\x12\x07mpf.vpe\"\x0e\n\x0c\x45mptyRequest\"\x0f\n\rEmptyResponse\"\r\n\x0bQuitRequest\"\x99\x01\n\x0cMachineState\x12M\n\x15initial_switch_states\x18\x01 \x03(\x0b\x32..mpf.vpe.MachineState.InitialSwitchStatesEntry\x1a:\n\x18InitialSwitchStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"O\n\x11SwitchDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\x12\x13\n\x0bswitch_type\x18\x03 \x01(\t\"8\n\x0f\x43oilDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\"a\n\x10LightDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17hardware_channel_number\x18\x02 \x01(\t\x12\x1e\n\x16hardware_channel_color\x18\x03 \x01(\t\"\x9b\x01\n\x0e\x44mdDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\rcolor_mapping\x18\x02 \x01(\x0e\x32$.mpf.vpe.DmdDescription.ColorMapping\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\"\x1f\n\x0c\x43olorMapping\x12\x06\n\x02\x42W\x10\x00\x12\x07\n\x03RGB\x10\x01\"8\n\x19SegmentDisplayDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\"\xfb\x01\n\x12MachineDescription\x12,\n\x08switches\x18\x01 \x03(\x0b\x32\x1a.mpf.vpe.SwitchDescription\x12\'\n\x05\x63oils\x18\x02 \x03(\x0b\x32\x18.mpf.vpe.CoilDescription\x12)\n\x06lights\x18\x03 \x03(\x0b\x32\x19.mpf.vpe.LightDescription\x12%\n\x04\x64mds\x18\x04 \x03(\x0b\x32\x17.mpf.vpe.DmdDescription\x12<\n\x10segment_displays\x18\x05 \x03(\x0b\x32\".mpf.vpe.SegmentDisplayDescription\"Q\n\rSwitchChanges\x12\x15\n\rswitch_number\x18\x01 \x01(\t\x12\x14\n\x0cswitch_state\x18\x02 \x01(\x08\x12\x13\n\x0b\x63hange_time\x18\x03 \x01(\x04\"E\n\x12SetDmdFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12\x12\n\nbrightness\x18\x03 \x01(\x02\"\xc0\x01\n\x1dSetSegmentDisplayFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12J\n\x06\x63olors\x18\x03 \x03(\x0b\x32:.mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor\x1a\x36\n\x13SegmentDisplayColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\"\xf8\x03\n\x08\x43ommands\x12/\n\nfade_light\x18\x01 \x01(\x0b\x32\x19.mpf.vpe.FadeLightRequestH\x00\x12/\n\npulse_coil\x18\x02 \x01(\x0b\x32\x19.mpf.vpe.PulseCoilRequestH\x00\x12\x31\n\x0b\x65nable_coil\x18\x03 \x01(\x0b\x32\x1a.mpf.vpe.EnableCoilRequestH\x00\x12\x33\n\x0c\x64isable_coil\x18\x04 \x01(\x0b\x32\x1b.mpf.vpe.DisableCoilRequestH\x00\x12H\n\x17\x63onfigure_hardware_rule\x18\x05 \x01(\x0b\x32%.mpf.vpe.ConfigureHardwareRuleRequestH\x00\x12\x42\n\x14remove_hardware_rule\x18\x06 \x01(\x0b\x32\".mpf.vpe.RemoveHardwareRuleRequestH\x00\x12\x38\n\x11\x64md_frame_request\x18\x07 \x01(\x0b\x32\x1b.mpf.vpe.SetDmdFrameRequestH\x00\x12O\n\x1dsegment_display_frame_request\x18\x08 \x01(\x0b\x32&.mpf.vpe.SetSegmentDisplayFrameRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x01\n\x10\x46\x61\x64\x65LightRequest\x12\x16\n\x0e\x63ommon_fade_ms\x18\x01 \x01(\r\x12\x34\n\x05\x66\x61\x64\x65s\x18\x02 \x03(\x0b\x32%.mpf.vpe.FadeLightRequest.ChannelFade\x1a>\n\x0b\x43hannelFade\x12\x14\n\x0clight_number\x18\x01 \x01(\t\x12\x19\n\x11target_brightness\x18\x02 \x01(\x02\"N\n\x10PulseCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\"c\n\x11\x45nableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\x12\x12\n\nhold_power\x18\x04 \x01(\x02\")\n\x12\x44isableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\"\x85\x01\n\x1c\x43onfigureHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\x12\x10\n\x08pulse_ms\x18\x03 \x01(\r\x12\x13\n\x0bpulse_power\x18\x04 \x01(\x02\x12\x12\n\nhold_power\x18\x05 \x01(\x02\"G\n\x19RemoveHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t2\xc9\x02\n\x12MpfHardwareService\x12\x33\n\x05Start\x12\x15.mpf.vpe.MachineState\x1a\x11.mpf.vpe.Commands0\x01\x12K\n\x15GetMachineDescription\x12\x15.mpf.vpe.EmptyRequest\x1a\x1b.mpf.vpe.MachineDescription\x12\x45\n\x11SendSwitchChanges\x12\x16.mpf.vpe.SwitchChanges\x1a\x16.mpf.vpe.EmptyResponse(\x01\x12\x34\n\x04Quit\x12\x14.mpf.vpe.QuitRequest\x1a\x16.mpf.vpe.EmptyResponse\x12\x34\n\x04Ping\x12\x15.mpf.vpe.EmptyRequest\x1a\x15.mpf.vpe.EmptyRequestb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0eplatform.proto\x12\x07mpf.vpe\"\x0e\n\x0c\x45mptyRequest\"\x0f\n\rEmptyResponse\"\r\n\x0bQuitRequest\"\x99\x01\n\x0cMachineState\x12M\n\x15initial_switch_states\x18\x01 \x03(\x0b\x32..mpf.vpe.MachineState.InitialSwitchStatesEntry\x1a:\n\x18InitialSwitchStatesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\"O\n\x11SwitchDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\x12\x13\n\x0bswitch_type\x18\x03 \x01(\t\"8\n\x0f\x43oilDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x17\n\x0fhardware_number\x18\x02 \x01(\t\"a\n\x10LightDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1f\n\x17hardware_channel_number\x18\x02 \x01(\t\x12\x1e\n\x16hardware_channel_color\x18\x03 \x01(\t\"\x9b\x01\n\x0e\x44mdDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12;\n\rcolor_mapping\x18\x02 \x01(\x0e\x32$.mpf.vpe.DmdDescription.ColorMapping\x12\r\n\x05width\x18\x03 \x01(\r\x12\x0e\n\x06height\x18\x04 \x01(\r\"\x1f\n\x0c\x43olorMapping\x12\x06\n\x02\x42W\x10\x00\x12\x07\n\x03RGB\x10\x01\"8\n\x19SegmentDisplayDescription\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05width\x18\x02 \x01(\r\"\xfb\x01\n\x12MachineDescription\x12,\n\x08switches\x18\x01 \x03(\x0b\x32\x1a.mpf.vpe.SwitchDescription\x12\'\n\x05\x63oils\x18\x02 \x03(\x0b\x32\x18.mpf.vpe.CoilDescription\x12)\n\x06lights\x18\x03 \x03(\x0b\x32\x19.mpf.vpe.LightDescription\x12%\n\x04\x64mds\x18\x04 \x03(\x0b\x32\x17.mpf.vpe.DmdDescription\x12<\n\x10segment_displays\x18\x05 \x03(\x0b\x32\".mpf.vpe.SegmentDisplayDescription\"Q\n\rSwitchChanges\x12\x15\n\rswitch_number\x18\x01 \x01(\t\x12\x14\n\x0cswitch_state\x18\x02 \x01(\x08\x12\x13\n\x0b\x63hange_time\x18\x03 \x01(\x04\"E\n\x12SetDmdFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12\x12\n\nbrightness\x18\x03 \x01(\x02\"\xc0\x01\n\x1dSetSegmentDisplayFrameRequest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x66rame\x18\x02 \x01(\x0c\x12J\n\x06\x63olors\x18\x03 \x03(\x0b\x32:.mpf.vpe.SetSegmentDisplayFrameRequest.SegmentDisplayColor\x1a\x36\n\x13SegmentDisplayColor\x12\t\n\x01r\x18\x01 \x01(\x02\x12\t\n\x01g\x18\x02 \x01(\x02\x12\t\n\x01\x62\x18\x03 \x01(\x02\"\xf8\x03\n\x08\x43ommands\x12/\n\nfade_light\x18\x01 \x01(\x0b\x32\x19.mpf.vpe.FadeLightRequestH\x00\x12/\n\npulse_coil\x18\x02 \x01(\x0b\x32\x19.mpf.vpe.PulseCoilRequestH\x00\x12\x31\n\x0b\x65nable_coil\x18\x03 \x01(\x0b\x32\x1a.mpf.vpe.EnableCoilRequestH\x00\x12\x33\n\x0c\x64isable_coil\x18\x04 \x01(\x0b\x32\x1b.mpf.vpe.DisableCoilRequestH\x00\x12H\n\x17\x63onfigure_hardware_rule\x18\x05 \x01(\x0b\x32%.mpf.vpe.ConfigureHardwareRuleRequestH\x00\x12\x42\n\x14remove_hardware_rule\x18\x06 \x01(\x0b\x32\".mpf.vpe.RemoveHardwareRuleRequestH\x00\x12\x38\n\x11\x64md_frame_request\x18\x07 \x01(\x0b\x32\x1b.mpf.vpe.SetDmdFrameRequestH\x00\x12O\n\x1dsegment_display_frame_request\x18\x08 \x01(\x0b\x32&.mpf.vpe.SetSegmentDisplayFrameRequestH\x00\x42\t\n\x07\x63ommand\"\xa0\x01\n\x10\x46\x61\x64\x65LightRequest\x12\x16\n\x0e\x63ommon_fade_ms\x18\x01 \x01(\r\x12\x34\n\x05\x66\x61\x64\x65s\x18\x02 \x03(\x0b\x32%.mpf.vpe.FadeLightRequest.ChannelFade\x1a>\n\x0b\x43hannelFade\x12\x14\n\x0clight_number\x18\x01 \x01(\t\x12\x19\n\x11target_brightness\x18\x02 \x01(\x02\"N\n\x10PulseCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\"c\n\x11\x45nableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x10\n\x08pulse_ms\x18\x02 \x01(\r\x12\x13\n\x0bpulse_power\x18\x03 \x01(\x02\x12\x12\n\nhold_power\x18\x04 \x01(\x02\")\n\x12\x44isableCoilRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\"\x85\x01\n\x1c\x43onfigureHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\x12\x10\n\x08pulse_ms\x18\x03 \x01(\r\x12\x13\n\x0bpulse_power\x18\x04 \x01(\x02\x12\x12\n\nhold_power\x18\x05 \x01(\x02\"G\n\x19RemoveHardwareRuleRequest\x12\x13\n\x0b\x63oil_number\x18\x01 \x01(\t\x12\x15\n\rswitch_number\x18\x02 \x01(\t\"#\n\x0cPingResponse\x12\x13\n\x0bmpf_version\x18\x01 \x01(\t2\xc9\x02\n\x12MpfHardwareService\x12\x33\n\x05Start\x12\x15.mpf.vpe.MachineState\x1a\x11.mpf.vpe.Commands0\x01\x12K\n\x15GetMachineDescription\x12\x15.mpf.vpe.EmptyRequest\x1a\x1b.mpf.vpe.MachineDescription\x12\x45\n\x11SendSwitchChanges\x12\x16.mpf.vpe.SwitchChanges\x1a\x16.mpf.vpe.EmptyResponse(\x01\x12\x34\n\x04Quit\x12\x14.mpf.vpe.QuitRequest\x1a\x16.mpf.vpe.EmptyResponse\x12\x34\n\x04Ping\x12\x15.mpf.vpe.EmptyRequest\x1a\x15.mpf.vpe.PingResponseb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -81,6 +81,8 @@ _globals['_CONFIGUREHARDWARERULEREQUEST']._serialized_end=2316 _globals['_REMOVEHARDWARERULEREQUEST']._serialized_start=2318 _globals['_REMOVEHARDWARERULEREQUEST']._serialized_end=2389 - _globals['_MPFHARDWARESERVICE']._serialized_start=2392 - _globals['_MPFHARDWARESERVICE']._serialized_end=2721 + _globals['_PINGRESPONSE']._serialized_start=2391 + _globals['_PINGRESPONSE']._serialized_end=2426 + _globals['_MPFHARDWARESERVICE']._serialized_start=2429 + _globals['_MPFHARDWARESERVICE']._serialized_end=2758 # @@protoc_insertion_point(module_scope) diff --git a/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py b/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py index 2e61c01cc..b2b34b6cf 100644 --- a/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py +++ b/mpf/platforms/visual_pinball_engine/platform_pb2_grpc.py @@ -57,7 +57,7 @@ def __init__(self, channel): self.Ping = channel.unary_unary( '/mpf.vpe.MpfHardwareService/Ping', request_serializer=platform__pb2.EmptyRequest.SerializeToString, - response_deserializer=platform__pb2.EmptyRequest.FromString, + response_deserializer=platform__pb2.PingResponse.FromString, _registered_method=True) @@ -120,7 +120,7 @@ def add_MpfHardwareServiceServicer_to_server(servicer, server): 'Ping': grpc.unary_unary_rpc_method_handler( servicer.Ping, request_deserializer=platform__pb2.EmptyRequest.FromString, - response_serializer=platform__pb2.EmptyRequest.SerializeToString, + response_serializer=platform__pb2.PingResponse.SerializeToString, ), } generic_handler = grpc.method_handlers_generic_handler( @@ -257,7 +257,7 @@ def Ping(request, target, '/mpf.vpe.MpfHardwareService/Ping', platform__pb2.EmptyRequest.SerializeToString, - platform__pb2.EmptyRequest.FromString, + platform__pb2.PingResponse.FromString, options, channel_credentials, insecure, diff --git a/mpf/platforms/visual_pinball_engine/protobuf/platform.proto b/mpf/platforms/visual_pinball_engine/protobuf/platform.proto index 9240d5e04..f69026a5a 100644 --- a/mpf/platforms/visual_pinball_engine/protobuf/platform.proto +++ b/mpf/platforms/visual_pinball_engine/protobuf/platform.proto @@ -7,7 +7,7 @@ service MpfHardwareService { rpc GetMachineDescription(EmptyRequest) returns (MachineDescription); rpc SendSwitchChanges(stream SwitchChanges) returns (EmptyResponse); rpc Quit(QuitRequest) returns (EmptyResponse); - rpc Ping(EmptyRequest) returns (EmptyRequest); + rpc Ping(EmptyRequest) returns (PingResponse); } message EmptyRequest {} @@ -145,3 +145,7 @@ message RemoveHardwareRuleRequest { string coil_number = 1; string switch_number = 2; } + +message PingResponse { + string mpf_version = 1; +} \ No newline at end of file diff --git a/mpf/platforms/visual_pinball_engine/service.py b/mpf/platforms/visual_pinball_engine/service.py index 5fd14695d..c800b8183 100644 --- a/mpf/platforms/visual_pinball_engine/service.py +++ b/mpf/platforms/visual_pinball_engine/service.py @@ -5,6 +5,7 @@ import asyncio from mpf.platforms.visual_pinball_engine import platform_pb2_grpc from mpf.platforms.visual_pinball_engine import platform_pb2 +from mpf._version import __version__ class MpfHardwareService(platform_pb2_grpc.MpfHardwareServiceServicer): @@ -110,6 +111,6 @@ async def Quit(self, request, context): # noqa """Stop MPF.""" self.machine.stop(reason="VPE exited.") return platform_pb2.EmptyResponse() - + async def Ping(self, request, context): - return platform_pb2.EmptyResponse(); + return platform_pb2.PingResponse(mpf_version=__version__)