@@ -112,13 +112,20 @@ def __init__(self):
112112 for sensor in encoder_sensors :
113113 self .encoder_services [sensor ] = rospy .ServiceProxy ('/mirte/get_encoder_' + encoder_sensors [sensor ]["name" ], GetEncoder , persistent = True )
114114
115- # Services for keypad sensores
115+ # Services for keypad sensors
116116 if rospy .has_param ("/mirte/keypad" ):
117117 keypad_sensors = rospy .get_param ("/mirte/keypad" )
118118 self .keypad_services = {}
119119 for sensor in keypad_sensors :
120120 self .keypad_services [sensor ] = rospy .ServiceProxy ('/mirte/get_keypad_' + keypad_sensors [sensor ]["name" ], GetKeypad , persistent = True )
121121
122+ # Services for color sensors
123+ if rospy .has_param ("/mirte/color" ):
124+ color_sensors = rospy .get_param ("/mirte/color" )
125+ self .color_services = {}
126+ for sensor in color_sensors :
127+ self .color_services [sensor ] = rospy .ServiceProxy ('/mirte/get_color_' + color_sensors [sensor ]["name" ], GetColor , persistent = True )
128+
122129 self .get_pin_value_service = rospy .ServiceProxy ('/mirte/get_pin_value' , GetPinValue , persistent = True )
123130 self .set_pin_value_service = rospy .ServiceProxy ('/mirte/set_pin_value' , SetPinValue , persistent = True )
124131
@@ -209,6 +216,19 @@ def getKeypad(self, keypad):
209216 value = self .keypad_services [keypad ]()
210217 return value .data
211218
219+ def getColor (self , sensor ):
220+ """Gets the value of the color sensor.
221+
222+ Parameters:
223+ sensor (str): The name of the sensor as defined in the configuration.
224+
225+ Returns:
226+ {r, g, b, w}: Raw (0-65536) values per R(ed), G(reen), B(lue), and W(hite).
227+ """
228+
229+ value = self .color_services [sensor ]()
230+ return {'r' : value .color .r , 'g' : value .color .g , 'b' : value .color .b , 'w' : value .color .w }
231+
212232 def getAnalogPinValue (self , pin ):
213233 """Gets the input value of an analog pin.
214234
0 commit comments