#!/usr/bin/env python3

import auxon_sdk
import time
from dataclasses import dataclass

@dataclass
class Config:
    # Configure this with PYTHON_EXAMPLE_ITERATIONS in the environment,
    # or 'iterations' in the reflector config toml
    iterations: int = 10

    # Configure this with PYTHON_EXAMPLE_DELAY in the environment,
    # or 'delay' in the reflector config toml
    delay: float = 1.0

cfg = auxon_sdk.PluginConfig(Config, "PYTHON_EXAMPLE_")
conn = cfg.connect_and_authenticate_ingest()
print("Connected!")

tl = auxon_sdk.TimelineId.allocate()
conn.switch_timeline(tl)
conn.send_timeline_attrs("counter", {"iterations": cfg.plugin.iterations})

for i in range(0, cfg.plugin.iterations):
    print("Tick...")
    conn.send_event("tick", i, {"num": i})
    time.sleep(cfg.plugin.delay)

print("Done")
