37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
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)
|