Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

AmfiTrack extensions for the Amfiprot package.

Installation

Install (or update) with pip:

pip install -U amfiprot-amfitrack

Usage example

Instead of creating a generic amfiprot.Device, create an amfitrack.Device to get access to AmfiTrack specific functionality and payload interpretation:

import amfiprot
import amfiprot_amfitrack as amfitrack

VENDOR_ID = 0xC17
PRODUCT_ID_SENSOR = 0xD12
PRODUCT_ID_SOURCE = 0xD01

if __name__ == "__main__":
    conn = None
    try:
        conn = amfiprot.USBConnection(VENDOR_ID, PRODUCT_ID_SENSOR)
    except:
        try:
            conn = amfiprot.USBConnection(VENDOR_ID, PRODUCT_ID_SOURCE)
        except:
            print("No Amfitrack device found")
            exit()
            
    nodes = conn.find_nodes()
    Devs = []

    print(f"Found {len(nodes)} node(s).")
    for node in nodes:
        print(f"[{node.tx_id}] {node.name}")
        Devs.append(amfitrack.Device(node))

    conn.start()

    while True:
        for idx, Dev in enumerate(Devs):
            if Dev.packet_available():
                packet = Dev.get_packet()
                if type(packet.payload) == amfitrack.payload.EmfImuFrameIdPayload:
                    # Sensor measurement package 
                    payload: amfitrack.payload.EmfImuFrameIdPayload = packet.payload
                    print(payload.emf) # emf contains position and orientation
                elif type(packet.payload) == amfitrack.payload.SourceMeasurementPayload:
                    # Source measurement package
                    payload: amfitrack.payload.SourceMeasurementPayload = packet.payload
                    print("Source current:" + str(payload.current))
                elif type(packet.payload) == amfitrack.payload.SourceCalibrationPayload:
                    # Source calibration package (sent at 5Hz)
                    payload: amfitrack.payload.SourceCalibrationPayload = packet.payload
                    print("Source frequency:" + str(payload.frequency))
                else:
                    print(packet)

Metadata

Release files for amfiprot-amfitrack 0.0.1a15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for amfiprot-amfitrack 0.0.1a15
File Size Uploaded
amfiprot_amfitrack-0.0.1a15.tar.gz 7.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for amfiprot-amfitrack 0.0.1a15
File Interpreter ABI Platform
amfiprot_amfitrack-0.0.1a15-py3-none-any.whl Python 3 none any Details

Total release size: 14.7 kB

Release files / amfiprot_amfitrack-0.0.1a15.tar.gz

Download URL amfiprot_amfitrack-0.0.1a15.tar.gz
Size 7.4 kB
Tags Source
SHA-256 checksum
How to use checksums
bc006373646e4f56fe6356f9decda8d4cbad6e5f6bdf809ada949ee62267d4ed
BLAKE2b-256 checksum
How to use checksums
f76487ada58ffdc95c6cb5e5a2b8a45bda7f7f22a5d9d2f70786f2747b19bb84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / amfiprot_amfitrack-0.0.1a15-py3-none-any.whl

Download URL amfiprot_amfitrack-0.0.1a15-py3-none-any.whl
Size 7.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1fb125526f8ed9acfd22f6ce3daa66e313c353c9ae699526eb133ac91af9d627
BLAKE2b-256 checksum
How to use checksums
16745a8115993da073aaf7e49ee65bf1a65c66774974691266bc16b6a807bc1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page