You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
1.4 KiB

"""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()