File size: 1,443 Bytes
700dd75 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | """Prints the palm position of each hand, every frame. When a device is
connected we set the tracking mode to desktop and then generate logs for
every tracking frame received. The events of creating a connection to the
server and a device being plugged in also generate logs.
"""
import time
import leap
class MyListener(leap.Listener):
def on_connection_event(self, event):
print("Connected")
def on_device_event(self, event):
try:
with event.device.open():
info = event.device.get_info()
except leap.LeapCannotOpenDeviceError:
info = event.device.get_info()
print(f"Found device {info.serial}")
def on_tracking_event(self, event):
print(f"Frame {event.tracking_frame_id} with {len(event.hands)} hands.")
for hand in event.hands:
hand_type = "left" if str(hand.type) == "HandType.Left" else "right"
print(
f"Hand id {hand.id} is a {hand_type} hand with position ({hand.palm.position.x}, "
f"{hand.palm.position.y}, {hand.palm.position.z})."
)
def main():
my_listener = MyListener()
connection = leap.Connection()
connection.add_listener(my_listener)
running = True
with connection.open():
connection.set_tracking_mode(leap.TrackingMode.Desktop)
while running:
time.sleep(1)
if __name__ == "__main__":
main()
|