FlexTail-Entwicklungsworkflow

Flex CLI Beispiel

Flex CLI verbindet sich über Bluetooth Low Energy oder USB-Seriell mit FlexTail und streamt Messungen, konvertiert Aufzeichnungen und berechnet Kennzahlen ohne eigene Anwendung.

1. Erkennen

Verfügbaren Sensor finden

Scannen Sie beide Übertragungswege automatisch oder wählen Sie BLE beziehungsweise USB-Seriell gezielt aus, wenn ein Workflow eine eindeutige Geräteauswahl erfordert.

flex scan --transport auto

2. Streamen

Livedaten über stdout an Python senden

Führen Sie flex connect aus, um rohe CSV-Messungen direkt in ein Python-Skript zu streamen. Dieses Beispiel verarbeitet jede Zeile mit flexlib und berechnet die Lendenbeugung.

Stream-Befehl

flex connect | python analyze_live.py

analyze_live.py

import flexlib
import sys

for line in sys.stdin:
    measurement = flexlib.CSVReader.parse_string(line).measurements[0]
    lumbar_bend = measurement.angles.bend
    print(f"lumbar bend: {lumbar_bend:.1f}")

3. Veröffentlichen

Live-Messungen an MQTT weiterleiten

Leiten Sie denselben Stream an einen kleinen Python-Publisher weiter, um jede Messung an ein MQTT-Topic zu senden. Dieses Beispiel erwartet einen Broker unter localhost:1883 sowie das Paket paho-mqtt.

Stream-Befehl

flex connect | python publish_mqtt.py

publish_mqtt.py

import csv
import json
import sys

import paho.mqtt.client as mqtt
from paho.mqtt.enums import CallbackAPIVersion

client = mqtt.Client(CallbackAPIVersion.VERSION2)
client.connect("localhost", 1883)
client.loop_start()

for sample in csv.DictReader(sys.stdin):
    client.publish("flextail/live", json.dumps(sample))

client.disconnect()
client.loop_stop()

4. Umwandeln

Aufzeichnungen konvertieren und prüfen

Batch-Workflows können CSV, JSON, Arrow, Parquet oder RSF exportieren. Ergänzen Sie Winkel und dreidimensionale Koordinaten für nachgelagerte Analysen und geben Sie Haltungs- und Bewegungsaggregate als JSON aus.

flex convert session.rsf session.parquet --angles --coordinates
flex stats session.csv --json

Python-SDK-Pfad

Erfasste Pakete direkt verarbeiten

Das enthaltene Python-BLE-Beispiel akzeptiert auch Paket-Hexdaten über stdin. Dieser niedrigere Abstraktionsweg eignet sich, um erfasste Pakete über das native FlexTail SDK wiederzugeben, ohne eine Bluetooth-Verbindung zu öffnen.

cat captured_packets.hex | python examples/python/ble-stream/flex_ble_stream.py --stdin-hex --no-ble