import compLib.CompLib_pb2 as CompLib_pb2 from compLib.CompLibClient import CompLibClient class Encoder(object): """Klasse zum Zugriff auf die Encoder der einzelnen Motoren """ @staticmethod def read_all_positions(): """Lesen aller absoluten Positionen der einzelnen Encoder :return: Tupel mit allen aktuellen Encoderpositionen """ request = CompLib_pb2.EncoderReadPositionsRequest() request.header.message_type = request.DESCRIPTOR.full_name response = CompLib_pb2.EncoderReadPositionsResponse() response.ParseFromString(CompLibClient.send( request.SerializeToString(), request.ByteSize())) return tuple(i for i in response.positions) @staticmethod def read_all_velocities(): """Lesen der Geschwindigkeit aller angeschlossenen Motoren. :return: Tupel aller aktuellen Motorgeschwindigkeiten in Radianten pro Sekunde """ request = CompLib_pb2.EncoderReadVelocitiesRequest() request.header.message_type = request.DESCRIPTOR.full_name response = CompLib_pb2.EncoderReadVelocitiesResponse() response.ParseFromString(CompLibClient.send( request.SerializeToString(), request.ByteSize())) return tuple(i for i in response.velocities)