- Add mutex to prevent interleaved log output from concurrent goroutines
- Make logMsg delegate to logPrintf for consistent synchronization
- Buffer events channel to size 1 with select/drop when full
- Close events channel on ListenForTrainer exit so process terminates
Introduce structured CLI argument parsing using Cobra with three
configurable flags:
--vendor: USB vendor ID (default: 0x0fcf)
--product: USB product ID (default: 0x1008)
--device: ANT+ device number (default: 3001)
Add timestamped logging for all log statements with format
YYYY-MM-DD HH:MM:SS. Log vendor, product, and device values at
startup in both hex and decimal.
Remove hardcoded USB identifiers from main.go and consolidate all
startup logic into cli.go with a dedicated Config struct.
Update ant.go ListenForTrainer signature to accept uint16 for
vendor and product IDs.