matrix_creator 0.0.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +7 -9
- data/config/matrix_creator.yml +26 -0
- data/lib/matrix_creator.rb +25 -2
- data/lib/matrix_creator/comm.rb +265 -0
- data/lib/matrix_creator/driver_base.rb +47 -0
- data/lib/matrix_creator/everloop.rb +48 -0
- data/lib/matrix_creator/everloop/animation.rb +67 -0
- data/lib/matrix_creator/everloop/color.rb +63 -0
- data/lib/matrix_creator/everloop/pulse.rb +62 -0
- data/lib/matrix_creator/everloop/spinner.rb +52 -0
- data/lib/matrix_creator/humidity.rb +48 -0
- data/lib/matrix_creator/imu.rb +48 -0
- data/lib/matrix_creator/pressure.rb +48 -0
- data/lib/matrix_creator/uv.rb +48 -0
- data/lib/matrix_creator/version.rb +3 -1
- data/lib/matrix_creator/vision.rb +174 -0
- data/lib/protos/malos/driver_pb.rb +339 -0
- data/lib/protos/vision/vision_pb.rb +132 -0
- data/lib/protos/vision/vision_service_pb.rb +19 -0
- metadata +96 -17
- data/.gitignore +0 -12
- data/.rspec +0 -2
- data/.travis.yml +0 -5
- data/CODE_OF_CONDUCT.md +0 -74
- data/Gemfile +0 -4
- data/LICENSE.txt +0 -21
- data/Rakefile +0 -6
- data/bin/console +0 -14
- data/bin/setup +0 -8
- data/matrix_creator.gemspec +0 -27
| @@ -0,0 +1,174 @@ | |
| 1 | 
            +
            # Load Protos
         | 
| 2 | 
            +
            require 'protos/malos/driver_pb'
         | 
| 3 | 
            +
            require 'protos/vision/vision_pb'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # Load Dependencies
         | 
| 6 | 
            +
            require 'matrix_creator/comm'
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            module MatrixCreator
         | 
| 9 | 
            +
              # Module: Vision
         | 
| 10 | 
            +
              #
         | 
| 11 | 
            +
              # Communicate with the vision driver
         | 
| 12 | 
            +
              module Vision
         | 
| 13 | 
            +
                # Configuration values for the Vision driver
         | 
| 14 | 
            +
                VISION_CONFIG = MatrixCreator.settings[:devices][:vision]
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                # Base port to send data to Vision driver
         | 
| 17 | 
            +
                BASE_PORT = VISION_CONFIG[:port]
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                # Camera width value
         | 
| 20 | 
            +
                CAMERA_WIDTH = 1280
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                # Camera height value
         | 
| 23 | 
            +
                CAMERA_HEIGHT = 720
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                ##
         | 
| 26 | 
            +
                # Detect a list of objects that are on detected by the camera, specifying
         | 
| 27 | 
            +
                # the amount of max responses or max seconds to detect elements on camera
         | 
| 28 | 
            +
                #
         | 
| 29 | 
            +
                # @param objects [Array] of MatrixMalos::EnumMalosEyeDetectionType
         | 
| 30 | 
            +
                # @param options [Hash] of keys and values that can contain max_resp and/or max_secs
         | 
| 31 | 
            +
                # @return [Array] elements detected in JSON format
         | 
| 32 | 
            +
                #
         | 
| 33 | 
            +
                # @example Detect thumbs up for ten ocurrances
         | 
| 34 | 
            +
                #   thumbs_up = MatrixMalos::EnumMalosEyeDetectionType::HAND_THUMB_UP
         | 
| 35 | 
            +
                #   MatrixMalos::Vision.detect_objects(thumbs_up, max_resp: 10)
         | 
| 36 | 
            +
                #
         | 
| 37 | 
            +
                # @example Detect face and palms for 30 seconds
         | 
| 38 | 
            +
                #   objects = [
         | 
| 39 | 
            +
                #     MatrixMalos::EnumMalosEyeDetectionType::HAND_PALM,
         | 
| 40 | 
            +
                #     MatrixMalos::EnumMalosEyeDetectionType::FACE
         | 
| 41 | 
            +
                #   ]
         | 
| 42 | 
            +
                #   MatrixCreator::Vision.detect_objects(objects, max_secs: 30)
         | 
| 43 | 
            +
                #
         | 
| 44 | 
            +
                # @example Detect face for 10 seconds and process data on each occurance when received
         | 
| 45 | 
            +
                #   objects = [MatrixMalos::EnumMalosEyeDetectionType::FACE]
         | 
| 46 | 
            +
                #   MatrixCreator::Vision.detect_objects(objects, max_secs: 10) { |data|
         | 
| 47 | 
            +
                #     // Do something with data
         | 
| 48 | 
            +
                #   }
         | 
| 49 | 
            +
                #
         | 
| 50 | 
            +
                def self.detect_objects(objects, options = {}, &block)
         | 
| 51 | 
            +
                  @vision_comm = MatrixCreator::Comm.new(BASE_PORT)
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  # Setup MalosEye configuration
         | 
| 54 | 
            +
                  malos_eye_config = MatrixMalos::MalosEyeConfig.new(
         | 
| 55 | 
            +
                    camera_config: MatrixMalos::CameraConfig.new(
         | 
| 56 | 
            +
                      camera_id: 0,
         | 
| 57 | 
            +
                      width: CAMERA_WIDTH,
         | 
| 58 | 
            +
                      height: CAMERA_HEIGHT
         | 
| 59 | 
            +
                    )
         | 
| 60 | 
            +
                  )
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                  # Generate driver configuration
         | 
| 63 | 
            +
                  config = MatrixMalos::DriverConfig.new(
         | 
| 64 | 
            +
                    malos_eye_config: malos_eye_config,
         | 
| 65 | 
            +
                    delay_between_updates: 0.1,
         | 
| 66 | 
            +
                    timeout_after_last_ping: 4
         | 
| 67 | 
            +
                  )
         | 
| 68 | 
            +
                  @vision_comm.send_configuration(config)
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                  # Setup objects to detect
         | 
| 71 | 
            +
                  malos_eye_config = MatrixMalos::MalosEyeConfig.new
         | 
| 72 | 
            +
                  objects.each do |object|
         | 
| 73 | 
            +
                    malos_eye_config.object_to_detect.push(object)
         | 
| 74 | 
            +
                  end
         | 
| 75 | 
            +
                  config = MatrixMalos::DriverConfig.new(
         | 
| 76 | 
            +
                    malos_eye_config: malos_eye_config
         | 
| 77 | 
            +
                  )
         | 
| 78 | 
            +
                  @vision_comm.send_configuration(config)
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                  # Query Demographics
         | 
| 81 | 
            +
                  result = @vision_comm.perform(AdmobilizeVision::VisionResult, options, block)
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                  # Stop capturing events
         | 
| 84 | 
            +
                  malos_eye_config = MatrixMalos::MalosEyeConfig.new
         | 
| 85 | 
            +
                  malos_eye_config.object_to_detect.push(MatrixMalos::EnumMalosEyeDetectionType::STOP)
         | 
| 86 | 
            +
                  config = MatrixMalos::DriverConfig.new(malos_eye_config: malos_eye_config)
         | 
| 87 | 
            +
                  @vision_comm.send_configuration(config)
         | 
| 88 | 
            +
             | 
| 89 | 
            +
                  # Destroy context
         | 
| 90 | 
            +
                  @vision_comm.destroy
         | 
| 91 | 
            +
             | 
| 92 | 
            +
                  result
         | 
| 93 | 
            +
                end
         | 
| 94 | 
            +
             | 
| 95 | 
            +
                ##
         | 
| 96 | 
            +
                # Detects an object once
         | 
| 97 | 
            +
                #
         | 
| 98 | 
            +
                # @example
         | 
| 99 | 
            +
                #   object = MatrixMalos::EnumMalosEyeDetectionType::HAND_FIST
         | 
| 100 | 
            +
                #   MatrixCreator::Vision.detect_once(object)
         | 
| 101 | 
            +
                #
         | 
| 102 | 
            +
                def self.detect_once(object)
         | 
| 103 | 
            +
                  result = nil
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                  # Loop until recDetection is returned
         | 
| 106 | 
            +
                  loop do
         | 
| 107 | 
            +
                    result = detect_objects([object], max_resp: 1).first
         | 
| 108 | 
            +
                    break unless result[:rectDetection].empty?
         | 
| 109 | 
            +
                  end
         | 
| 110 | 
            +
             | 
| 111 | 
            +
                  result
         | 
| 112 | 
            +
                end
         | 
| 113 | 
            +
             | 
| 114 | 
            +
                ##
         | 
| 115 | 
            +
                # Detect one face message
         | 
| 116 | 
            +
                #
         | 
| 117 | 
            +
                # @example
         | 
| 118 | 
            +
                #   MatrixCreator::Vision.detect_face
         | 
| 119 | 
            +
                #
         | 
| 120 | 
            +
                def self.detect_face
         | 
| 121 | 
            +
                  detect_once(MatrixMalos::EnumMalosEyeDetectionType::FACE)
         | 
| 122 | 
            +
                end
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                ##
         | 
| 125 | 
            +
                # Detect demographics of a face
         | 
| 126 | 
            +
                #
         | 
| 127 | 
            +
                # @example
         | 
| 128 | 
            +
                #   MatrixCreator::Vision.detect_demographics
         | 
| 129 | 
            +
                #
         | 
| 130 | 
            +
                def self.detect_demographics
         | 
| 131 | 
            +
                  detect_once(MatrixMalos::EnumMalosEyeDetectionType::FACE_DEMOGRAPHICS)
         | 
| 132 | 
            +
                end
         | 
| 133 | 
            +
             | 
| 134 | 
            +
                ##
         | 
| 135 | 
            +
                # Detect a thumbs up
         | 
| 136 | 
            +
                #
         | 
| 137 | 
            +
                # @example
         | 
| 138 | 
            +
                #   MatrixCreator::Vision.detect_thumbs_up
         | 
| 139 | 
            +
                #
         | 
| 140 | 
            +
                def self.detect_thumb_up
         | 
| 141 | 
            +
                  detect_once(MatrixMalos::EnumMalosEyeDetectionType::HAND_THUMB_UP)
         | 
| 142 | 
            +
                end
         | 
| 143 | 
            +
             | 
| 144 | 
            +
                ##
         | 
| 145 | 
            +
                # Detect a palm
         | 
| 146 | 
            +
                #
         | 
| 147 | 
            +
                # @example
         | 
| 148 | 
            +
                #   MatrixCreator::Vision.detect_palm
         | 
| 149 | 
            +
                #
         | 
| 150 | 
            +
                def self.detect_palm
         | 
| 151 | 
            +
                  detect_once(MatrixMalos::EnumMalosEyeDetectionType::HAND_PALM)
         | 
| 152 | 
            +
                end
         | 
| 153 | 
            +
             | 
| 154 | 
            +
                ##
         | 
| 155 | 
            +
                # Detect a pinch
         | 
| 156 | 
            +
                #
         | 
| 157 | 
            +
                # @example
         | 
| 158 | 
            +
                #   MatrixCreator::Vision.detect_pinch
         | 
| 159 | 
            +
                #
         | 
| 160 | 
            +
                def self.detect_pinch
         | 
| 161 | 
            +
                  detect_once(MatrixMalos::EnumMalosEyeDetectionType::HAND_PINCH)
         | 
| 162 | 
            +
                end
         | 
| 163 | 
            +
             | 
| 164 | 
            +
                ##
         | 
| 165 | 
            +
                # Detect a fist
         | 
| 166 | 
            +
                #
         | 
| 167 | 
            +
                # @example
         | 
| 168 | 
            +
                #   MatrixCreator::Vision.detect_fist
         | 
| 169 | 
            +
                #
         | 
| 170 | 
            +
                def self.detect_fist
         | 
| 171 | 
            +
                  detect_once(MatrixMalos::EnumMalosEyeDetectionType::HAND_FIST)
         | 
| 172 | 
            +
                end
         | 
| 173 | 
            +
              end
         | 
| 174 | 
            +
            end
         | 
| @@ -0,0 +1,339 @@ | |
| 1 | 
            +
            # Generated by the protocol buffer compiler.  DO NOT EDIT!
         | 
| 2 | 
            +
            # source: protos/malos/driver.proto
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            require 'google/protobuf'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Google::Protobuf::DescriptorPool.generated_pool.build do
         | 
| 7 | 
            +
              add_message "matrix_malos.DriverConfig" do
         | 
| 8 | 
            +
                optional :delay_between_updates, :float, 1
         | 
| 9 | 
            +
                optional :timeout_after_last_ping, :float, 2
         | 
| 10 | 
            +
                optional :image, :message, 3, "matrix_malos.EverloopImage"
         | 
| 11 | 
            +
                optional :malos_eye_config, :message, 4, "matrix_malos.MalosEyeConfig"
         | 
| 12 | 
            +
                optional :zigbee_message, :message, 5, "matrix_malos.ZigBeeMsg"
         | 
| 13 | 
            +
                optional :lirc, :message, 6, "matrix_malos.LircParams"
         | 
| 14 | 
            +
                optional :servo, :message, 7, "matrix_malos.ServoParams"
         | 
| 15 | 
            +
                optional :gpio, :message, 8, "matrix_malos.GpioParams"
         | 
| 16 | 
            +
                optional :humidity, :message, 9, "matrix_malos.HumidityParams"
         | 
| 17 | 
            +
                optional :micarray, :message, 10, "matrix_malos.MicArrayParams"
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
              add_message "matrix_malos.MalosEyeConfig" do
         | 
| 20 | 
            +
                optional :camera_config, :message, 1, "matrix_malos.CameraConfig"
         | 
| 21 | 
            +
                optional :detector_config, :message, 2, "matrix_malos.ObjectDetectorConfig"
         | 
| 22 | 
            +
                optional :tracker_config, :message, 3, "matrix_malos.TrackerConfig"
         | 
| 23 | 
            +
                optional :detection_server_config, :message, 4, "matrix_malos.DetectionServerConfig"
         | 
| 24 | 
            +
                repeated :object_to_detect, :enum, 21, "matrix_malos.EnumMalosEyeDetectionType"
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
              add_message "matrix_malos.CameraConfig" do
         | 
| 27 | 
            +
                optional :camera_id, :int32, 1
         | 
| 28 | 
            +
                optional :width, :int32, 2
         | 
| 29 | 
            +
                optional :height, :int32, 3
         | 
| 30 | 
            +
              end
         | 
| 31 | 
            +
              add_message "matrix_malos.ObjectDetectorConfig" do
         | 
| 32 | 
            +
                optional :cascade_path, :string, 1
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
              add_message "matrix_malos.TrackerConfig" do
         | 
| 35 | 
            +
                optional :frames_to_count, :int32, 1
         | 
| 36 | 
            +
                optional :frames_to_discard, :int32, 2
         | 
| 37 | 
            +
              end
         | 
| 38 | 
            +
              add_message "matrix_malos.DetectionServerConfig" do
         | 
| 39 | 
            +
                optional :detection_server_address, :string, 1
         | 
| 40 | 
            +
                optional :detection_server_timeout, :int32, 2
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
              add_message "matrix_malos.DriverInfo" do
         | 
| 43 | 
            +
                optional :driver_name, :string, 1
         | 
| 44 | 
            +
                optional :base_port, :int32, 2
         | 
| 45 | 
            +
                optional :provides_updates, :bool, 3
         | 
| 46 | 
            +
                optional :delay_between_updates, :int32, 4
         | 
| 47 | 
            +
                optional :needs_pings, :bool, 5
         | 
| 48 | 
            +
                optional :timeout_after_last_ping, :int32, 6
         | 
| 49 | 
            +
                optional :notes_for_human, :string, 7
         | 
| 50 | 
            +
              end
         | 
| 51 | 
            +
              add_message "matrix_malos.MalosDriverInfo" do
         | 
| 52 | 
            +
                repeated :info, :message, 1, "matrix_malos.DriverInfo"
         | 
| 53 | 
            +
              end
         | 
| 54 | 
            +
              add_message "matrix_malos.Dummy" do
         | 
| 55 | 
            +
                optional :value, :float, 1
         | 
| 56 | 
            +
              end
         | 
| 57 | 
            +
              add_message "matrix_malos.Humidity" do
         | 
| 58 | 
            +
                optional :humidity, :float, 1
         | 
| 59 | 
            +
                optional :temperature, :float, 2
         | 
| 60 | 
            +
                optional :temperature_raw, :float, 3
         | 
| 61 | 
            +
                optional :temperature_is_calibrated, :bool, 4
         | 
| 62 | 
            +
              end
         | 
| 63 | 
            +
              add_message "matrix_malos.HumidityParams" do
         | 
| 64 | 
            +
                optional :current_temperature, :float, 1
         | 
| 65 | 
            +
              end
         | 
| 66 | 
            +
              add_message "matrix_malos.UV" do
         | 
| 67 | 
            +
                optional :uv_index, :float, 1
         | 
| 68 | 
            +
                optional :oms_risk, :string, 2
         | 
| 69 | 
            +
              end
         | 
| 70 | 
            +
              add_message "matrix_malos.Pressure" do
         | 
| 71 | 
            +
                optional :pressure, :float, 1
         | 
| 72 | 
            +
                optional :altitude, :float, 2
         | 
| 73 | 
            +
                optional :temperature, :float, 3
         | 
| 74 | 
            +
              end
         | 
| 75 | 
            +
              add_message "matrix_malos.Imu" do
         | 
| 76 | 
            +
                optional :yaw, :float, 1
         | 
| 77 | 
            +
                optional :pitch, :float, 2
         | 
| 78 | 
            +
                optional :roll, :float, 3
         | 
| 79 | 
            +
                optional :accel_x, :float, 4
         | 
| 80 | 
            +
                optional :accel_y, :float, 5
         | 
| 81 | 
            +
                optional :accel_z, :float, 6
         | 
| 82 | 
            +
                optional :gyro_x, :float, 7
         | 
| 83 | 
            +
                optional :gyro_y, :float, 8
         | 
| 84 | 
            +
                optional :gyro_z, :float, 9
         | 
| 85 | 
            +
                optional :mag_x, :float, 10
         | 
| 86 | 
            +
                optional :mag_y, :float, 11
         | 
| 87 | 
            +
                optional :mag_z, :float, 12
         | 
| 88 | 
            +
              end
         | 
| 89 | 
            +
              add_message "matrix_malos.LedValue" do
         | 
| 90 | 
            +
                optional :red, :uint32, 1
         | 
| 91 | 
            +
                optional :green, :uint32, 2
         | 
| 92 | 
            +
                optional :blue, :uint32, 3
         | 
| 93 | 
            +
                optional :white, :uint32, 4
         | 
| 94 | 
            +
              end
         | 
| 95 | 
            +
              add_message "matrix_malos.EverloopImage" do
         | 
| 96 | 
            +
                repeated :led, :message, 1, "matrix_malos.LedValue"
         | 
| 97 | 
            +
              end
         | 
| 98 | 
            +
              add_message "matrix_malos.ZigBeeMsg" do
         | 
| 99 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.ZigBeeCmdType"
         | 
| 100 | 
            +
                optional :zcl_cmd, :message, 2, "matrix_malos.ZigBeeMsg.ZCLCmd"
         | 
| 101 | 
            +
                optional :network_mgmt_cmd, :message, 3, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd"
         | 
| 102 | 
            +
              end
         | 
| 103 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd" do
         | 
| 104 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.ZCLCmd.ZCLCmdType"
         | 
| 105 | 
            +
                optional :onoff_cmd, :message, 2, "matrix_malos.ZigBeeMsg.ZCLCmd.OnOffCmd"
         | 
| 106 | 
            +
                optional :level_cmd, :message, 3, "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd"
         | 
| 107 | 
            +
                optional :colorcontrol_cmd, :message, 4, "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd"
         | 
| 108 | 
            +
                optional :identify_cmd, :message, 5, "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd"
         | 
| 109 | 
            +
                optional :node_id, :uint32, 6
         | 
| 110 | 
            +
                optional :endpoint_index, :uint32, 7
         | 
| 111 | 
            +
              end
         | 
| 112 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.OnOffCmd" do
         | 
| 113 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.ZCLCmd.OnOffCmd.ZCLOnOffCmdType"
         | 
| 114 | 
            +
              end
         | 
| 115 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZCLCmd.OnOffCmd.ZCLOnOffCmdType" do
         | 
| 116 | 
            +
                value :ON, 0
         | 
| 117 | 
            +
                value :OFF, 1
         | 
| 118 | 
            +
                value :TOGGLE, 2
         | 
| 119 | 
            +
              end
         | 
| 120 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd" do
         | 
| 121 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.ZCLLevelCmdType"
         | 
| 122 | 
            +
                optional :move_to_level_params, :message, 2, "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.MoveToLevelCmdParams"
         | 
| 123 | 
            +
                optional :move_params, :message, 3, "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.MoveCmdParams"
         | 
| 124 | 
            +
              end
         | 
| 125 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.MoveToLevelCmdParams" do
         | 
| 126 | 
            +
                optional :level, :uint32, 1
         | 
| 127 | 
            +
                optional :transition_time, :uint32, 2
         | 
| 128 | 
            +
              end
         | 
| 129 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.MoveCmdParams" do
         | 
| 130 | 
            +
                optional :mode, :uint32, 1
         | 
| 131 | 
            +
                optional :rate, :uint32, 2
         | 
| 132 | 
            +
              end
         | 
| 133 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.ZCLLevelCmdType" do
         | 
| 134 | 
            +
                value :MOVE_TO_LEVEL, 0
         | 
| 135 | 
            +
                value :MOVE, 1
         | 
| 136 | 
            +
              end
         | 
| 137 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd" do
         | 
| 138 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.ZCLColorControlCmdType"
         | 
| 139 | 
            +
                optional :movetohue_params, :message, 2, "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueCmdParams"
         | 
| 140 | 
            +
                optional :movetosat_params, :message, 3, "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToSatCmdParams"
         | 
| 141 | 
            +
                optional :movetohueandsat_params, :message, 4, "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueAndSatCmdParams"
         | 
| 142 | 
            +
              end
         | 
| 143 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueCmdParams" do
         | 
| 144 | 
            +
                optional :hue, :uint32, 1
         | 
| 145 | 
            +
                optional :direction, :enum, 2, "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueCmdParams.DirectionParam"
         | 
| 146 | 
            +
                optional :transition_time, :uint32, 3
         | 
| 147 | 
            +
              end
         | 
| 148 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueCmdParams.DirectionParam" do
         | 
| 149 | 
            +
                value :SHORTEST_DISTANCE, 0
         | 
| 150 | 
            +
                value :LONGEST_DISTANCE, 1
         | 
| 151 | 
            +
                value :UP, 2
         | 
| 152 | 
            +
                value :DOWN, 3
         | 
| 153 | 
            +
              end
         | 
| 154 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToSatCmdParams" do
         | 
| 155 | 
            +
                optional :saturation, :uint32, 1
         | 
| 156 | 
            +
                optional :transition_time, :uint32, 2
         | 
| 157 | 
            +
              end
         | 
| 158 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueAndSatCmdParams" do
         | 
| 159 | 
            +
                optional :hue, :uint32, 1
         | 
| 160 | 
            +
                optional :saturation, :uint32, 2
         | 
| 161 | 
            +
                optional :transition_time, :uint32, 3
         | 
| 162 | 
            +
              end
         | 
| 163 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.ZCLColorControlCmdType" do
         | 
| 164 | 
            +
                value :MOVETOHUE, 0
         | 
| 165 | 
            +
                value :MOVETOSAT, 1
         | 
| 166 | 
            +
                value :MOVETOHUEANDSAT, 2
         | 
| 167 | 
            +
              end
         | 
| 168 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd" do
         | 
| 169 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.ZCLIdentifyCmdType"
         | 
| 170 | 
            +
                optional :identify_on_params, :message, 2, "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.IdentifyOnCmdParams"
         | 
| 171 | 
            +
                optional :identify_off_params, :message, 3, "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.IdentifyOffCmdParams"
         | 
| 172 | 
            +
              end
         | 
| 173 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.IdentifyOnCmdParams" do
         | 
| 174 | 
            +
                optional :endpoint, :uint32, 1
         | 
| 175 | 
            +
                optional :identify_time, :uint32, 2
         | 
| 176 | 
            +
              end
         | 
| 177 | 
            +
              add_message "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.IdentifyOffCmdParams" do
         | 
| 178 | 
            +
                optional :identify_time, :uint32, 1
         | 
| 179 | 
            +
              end
         | 
| 180 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.ZCLIdentifyCmdType" do
         | 
| 181 | 
            +
                value :IDENTIFY_ON, 0
         | 
| 182 | 
            +
                value :IDENTIFY_OFF, 1
         | 
| 183 | 
            +
              end
         | 
| 184 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZCLCmd.ZCLCmdType" do
         | 
| 185 | 
            +
                value :ON_OFF, 0
         | 
| 186 | 
            +
                value :LEVEL, 1
         | 
| 187 | 
            +
                value :COLOR_CONTROL, 2
         | 
| 188 | 
            +
                value :IDENTIFY, 3
         | 
| 189 | 
            +
              end
         | 
| 190 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd" do
         | 
| 191 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkMgmtCmdTypes"
         | 
| 192 | 
            +
                optional :permit_join_params, :message, 2, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.PermitJoinParams"
         | 
| 193 | 
            +
                optional :is_proxy_active, :bool, 3
         | 
| 194 | 
            +
                optional :node_leave_params, :message, 4, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeLeaveNetParams"
         | 
| 195 | 
            +
                optional :node_info, :message, 5, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeDescription"
         | 
| 196 | 
            +
                repeated :connected_nodes, :message, 6, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeDescription"
         | 
| 197 | 
            +
                optional :network_status, :message, 7, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkStatus"
         | 
| 198 | 
            +
              end
         | 
| 199 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.PermitJoinParams" do
         | 
| 200 | 
            +
                optional :time, :uint32, 1
         | 
| 201 | 
            +
              end
         | 
| 202 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeLeaveNetParams" do
         | 
| 203 | 
            +
                optional :node_id, :uint32, 1
         | 
| 204 | 
            +
              end
         | 
| 205 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.ClusterDescription" do
         | 
| 206 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.ClusterDescription.ClusterInOutType"
         | 
| 207 | 
            +
                optional :cluster_id, :uint32, 2
         | 
| 208 | 
            +
              end
         | 
| 209 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.ClusterDescription.ClusterInOutType" do
         | 
| 210 | 
            +
                value :SERVER_IN, 0
         | 
| 211 | 
            +
                value :CLIENT_OUT, 1
         | 
| 212 | 
            +
              end
         | 
| 213 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.EndPointDescription" do
         | 
| 214 | 
            +
                optional :endpoint_index, :uint32, 1
         | 
| 215 | 
            +
                optional :profile_id, :uint32, 2
         | 
| 216 | 
            +
                optional :device_id, :uint32, 3
         | 
| 217 | 
            +
                repeated :clusters, :message, 4, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.ClusterDescription"
         | 
| 218 | 
            +
              end
         | 
| 219 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeDescription" do
         | 
| 220 | 
            +
                optional :node_id, :uint32, 1
         | 
| 221 | 
            +
                optional :eui64, :uint64, 2
         | 
| 222 | 
            +
                repeated :endpoints, :message, 3, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.EndPointDescription"
         | 
| 223 | 
            +
              end
         | 
| 224 | 
            +
              add_message "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkStatus" do
         | 
| 225 | 
            +
                optional :type, :enum, 1, "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkStatus.Status"
         | 
| 226 | 
            +
              end
         | 
| 227 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkStatus.Status" do
         | 
| 228 | 
            +
                value :NO_NETWORK, 0
         | 
| 229 | 
            +
                value :JOINING_NETWORK, 1
         | 
| 230 | 
            +
                value :JOINED_NETWORK, 2
         | 
| 231 | 
            +
                value :JOINED_NETWORK_NO_PARENT, 3
         | 
| 232 | 
            +
                value :LEAVING_NETWORK, 4
         | 
| 233 | 
            +
              end
         | 
| 234 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkMgmtCmdTypes" do
         | 
| 235 | 
            +
                value :CREATE_NWK, 0
         | 
| 236 | 
            +
                value :LEAVE_NWK, 1
         | 
| 237 | 
            +
                value :NODE_LEAVE_NWK, 2
         | 
| 238 | 
            +
                value :PERMIT_JOIN, 3
         | 
| 239 | 
            +
                value :DISCOVERY_INFO, 4
         | 
| 240 | 
            +
                value :RESET_PROXY, 5
         | 
| 241 | 
            +
                value :IS_PROXY_ACTIVE, 6
         | 
| 242 | 
            +
                value :NETWORK_STATUS, 7
         | 
| 243 | 
            +
              end
         | 
| 244 | 
            +
              add_enum "matrix_malos.ZigBeeMsg.ZigBeeCmdType" do
         | 
| 245 | 
            +
                value :ZCL, 0
         | 
| 246 | 
            +
                value :NETWORK_MGMT, 1
         | 
| 247 | 
            +
              end
         | 
| 248 | 
            +
              add_message "matrix_malos.LircParams" do
         | 
| 249 | 
            +
                optional :device, :string, 1
         | 
| 250 | 
            +
                optional :command, :string, 2
         | 
| 251 | 
            +
                optional :config, :string, 3
         | 
| 252 | 
            +
              end
         | 
| 253 | 
            +
              add_message "matrix_malos.ServoParams" do
         | 
| 254 | 
            +
                optional :pin, :uint32, 1
         | 
| 255 | 
            +
                optional :angle, :uint32, 2
         | 
| 256 | 
            +
              end
         | 
| 257 | 
            +
              add_message "matrix_malos.GpioParams" do
         | 
| 258 | 
            +
                optional :pin, :uint32, 1
         | 
| 259 | 
            +
                optional :mode, :enum, 2, "matrix_malos.GpioParams.EnumMode"
         | 
| 260 | 
            +
                optional :value, :uint32, 3
         | 
| 261 | 
            +
                optional :values, :uint32, 4
         | 
| 262 | 
            +
              end
         | 
| 263 | 
            +
              add_enum "matrix_malos.GpioParams.EnumMode" do
         | 
| 264 | 
            +
                value :INPUT, 0
         | 
| 265 | 
            +
                value :OUTPUT, 1
         | 
| 266 | 
            +
              end
         | 
| 267 | 
            +
              add_message "matrix_malos.MicArrayParams" do
         | 
| 268 | 
            +
                optional :gain, :int32, 1
         | 
| 269 | 
            +
                optional :azimutal_angle, :float, 2
         | 
| 270 | 
            +
                optional :polar_angle, :float, 3
         | 
| 271 | 
            +
                optional :radial_distance_mm, :float, 4
         | 
| 272 | 
            +
                optional :sound_speed_mmseg, :float, 5
         | 
| 273 | 
            +
              end
         | 
| 274 | 
            +
              add_enum "matrix_malos.EnumMalosEyeDetectionType" do
         | 
| 275 | 
            +
                value :STOP, 0
         | 
| 276 | 
            +
                value :FACE, 20
         | 
| 277 | 
            +
                value :FACE_DEMOGRAPHICS, 21
         | 
| 278 | 
            +
                value :FACE_DESCRIPTOR, 30
         | 
| 279 | 
            +
                value :HAND_THUMB_UP, 40
         | 
| 280 | 
            +
                value :HAND_PALM, 41
         | 
| 281 | 
            +
                value :HAND_PINCH, 42
         | 
| 282 | 
            +
                value :HAND_FIST, 43
         | 
| 283 | 
            +
              end
         | 
| 284 | 
            +
            end
         | 
| 285 | 
            +
             | 
| 286 | 
            +
            module MatrixMalos
         | 
| 287 | 
            +
              DriverConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.DriverConfig").msgclass
         | 
| 288 | 
            +
              MalosEyeConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.MalosEyeConfig").msgclass
         | 
| 289 | 
            +
              CameraConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.CameraConfig").msgclass
         | 
| 290 | 
            +
              ObjectDetectorConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ObjectDetectorConfig").msgclass
         | 
| 291 | 
            +
              TrackerConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.TrackerConfig").msgclass
         | 
| 292 | 
            +
              DetectionServerConfig = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.DetectionServerConfig").msgclass
         | 
| 293 | 
            +
              DriverInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.DriverInfo").msgclass
         | 
| 294 | 
            +
              MalosDriverInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.MalosDriverInfo").msgclass
         | 
| 295 | 
            +
              Dummy = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.Dummy").msgclass
         | 
| 296 | 
            +
              Humidity = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.Humidity").msgclass
         | 
| 297 | 
            +
              HumidityParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.HumidityParams").msgclass
         | 
| 298 | 
            +
              UV = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.UV").msgclass
         | 
| 299 | 
            +
              Pressure = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.Pressure").msgclass
         | 
| 300 | 
            +
              Imu = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.Imu").msgclass
         | 
| 301 | 
            +
              LedValue = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.LedValue").msgclass
         | 
| 302 | 
            +
              EverloopImage = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.EverloopImage").msgclass
         | 
| 303 | 
            +
              ZigBeeMsg = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg").msgclass
         | 
| 304 | 
            +
              ZigBeeMsg::ZCLCmd = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd").msgclass
         | 
| 305 | 
            +
              ZigBeeMsg::ZCLCmd::OnOffCmd = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.OnOffCmd").msgclass
         | 
| 306 | 
            +
              ZigBeeMsg::ZCLCmd::OnOffCmd::ZCLOnOffCmdType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.OnOffCmd.ZCLOnOffCmdType").enummodule
         | 
| 307 | 
            +
              ZigBeeMsg::ZCLCmd::LevelCmd = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd").msgclass
         | 
| 308 | 
            +
              ZigBeeMsg::ZCLCmd::LevelCmd::MoveToLevelCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.MoveToLevelCmdParams").msgclass
         | 
| 309 | 
            +
              ZigBeeMsg::ZCLCmd::LevelCmd::MoveCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.MoveCmdParams").msgclass
         | 
| 310 | 
            +
              ZigBeeMsg::ZCLCmd::LevelCmd::ZCLLevelCmdType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.LevelCmd.ZCLLevelCmdType").enummodule
         | 
| 311 | 
            +
              ZigBeeMsg::ZCLCmd::ColorControlCmd = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd").msgclass
         | 
| 312 | 
            +
              ZigBeeMsg::ZCLCmd::ColorControlCmd::MoveToHueCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueCmdParams").msgclass
         | 
| 313 | 
            +
              ZigBeeMsg::ZCLCmd::ColorControlCmd::MoveToHueCmdParams::DirectionParam = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueCmdParams.DirectionParam").enummodule
         | 
| 314 | 
            +
              ZigBeeMsg::ZCLCmd::ColorControlCmd::MoveToSatCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToSatCmdParams").msgclass
         | 
| 315 | 
            +
              ZigBeeMsg::ZCLCmd::ColorControlCmd::MoveToHueAndSatCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.MoveToHueAndSatCmdParams").msgclass
         | 
| 316 | 
            +
              ZigBeeMsg::ZCLCmd::ColorControlCmd::ZCLColorControlCmdType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ColorControlCmd.ZCLColorControlCmdType").enummodule
         | 
| 317 | 
            +
              ZigBeeMsg::ZCLCmd::IdentifyCmd = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd").msgclass
         | 
| 318 | 
            +
              ZigBeeMsg::ZCLCmd::IdentifyCmd::IdentifyOnCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.IdentifyOnCmdParams").msgclass
         | 
| 319 | 
            +
              ZigBeeMsg::ZCLCmd::IdentifyCmd::IdentifyOffCmdParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.IdentifyOffCmdParams").msgclass
         | 
| 320 | 
            +
              ZigBeeMsg::ZCLCmd::IdentifyCmd::ZCLIdentifyCmdType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.IdentifyCmd.ZCLIdentifyCmdType").enummodule
         | 
| 321 | 
            +
              ZigBeeMsg::ZCLCmd::ZCLCmdType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZCLCmd.ZCLCmdType").enummodule
         | 
| 322 | 
            +
              ZigBeeMsg::NetworkMgmtCmd = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd").msgclass
         | 
| 323 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::PermitJoinParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.PermitJoinParams").msgclass
         | 
| 324 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::NodeLeaveNetParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeLeaveNetParams").msgclass
         | 
| 325 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::ClusterDescription = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.ClusterDescription").msgclass
         | 
| 326 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::ClusterDescription::ClusterInOutType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.ClusterDescription.ClusterInOutType").enummodule
         | 
| 327 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::EndPointDescription = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.EndPointDescription").msgclass
         | 
| 328 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::NodeDescription = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NodeDescription").msgclass
         | 
| 329 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::NetworkStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkStatus").msgclass
         | 
| 330 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::NetworkStatus::Status = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkStatus.Status").enummodule
         | 
| 331 | 
            +
              ZigBeeMsg::NetworkMgmtCmd::NetworkMgmtCmdTypes = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.NetworkMgmtCmd.NetworkMgmtCmdTypes").enummodule
         | 
| 332 | 
            +
              ZigBeeMsg::ZigBeeCmdType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ZigBeeMsg.ZigBeeCmdType").enummodule
         | 
| 333 | 
            +
              LircParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.LircParams").msgclass
         | 
| 334 | 
            +
              ServoParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.ServoParams").msgclass
         | 
| 335 | 
            +
              GpioParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.GpioParams").msgclass
         | 
| 336 | 
            +
              GpioParams::EnumMode = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.GpioParams.EnumMode").enummodule
         | 
| 337 | 
            +
              MicArrayParams = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.MicArrayParams").msgclass
         | 
| 338 | 
            +
              EnumMalosEyeDetectionType = Google::Protobuf::DescriptorPool.generated_pool.lookup("matrix_malos.EnumMalosEyeDetectionType").enummodule
         | 
| 339 | 
            +
            end
         |