Testing
How Tinkerbus is tested, including the reference downloads that fix the device load plans.
Tinkerbus is one Go module (tinkerbus) with a Wails desktop front end. The command line tools and the application call the
same packages. Nothing in the source tree is a server: there is no web UI and no HTTP API.
| Path | Contents |
|---|---|
main.go, app*.go | The Wails application. App has the methods the interface calls: catalog, diagnostics, discovery, edits, exchange, feedback reports, network, new projects, online catalog, programming, recording, reports, routing. |
catalog.go, onlinecatalog.go, settings*.go | Local catalog store, the client for knxprod-index, and the settings file. |
backup.go, downloads.go, feedback.go | Backups of project files before Save, the record of which devices were downloaded, and the fixed-field reports to the project. |
cmd/ | The five command line tools. |
frontend/ | React 18, TypeScript and Vite. About thirty components in src/components, plus helper modules for the network layout, routing, place tree, telegram handling and the online catalog. |
build/ | Wails packaging files for Windows and macOS, and the build output. |
internal/project | Opening, creating, editing and saving .knxproj: topology, devices, parameters, group objects, locations, network graph, routing, change list, group address exchange, password handling, and an archive package for the zip layers. |
internal/knxprod, internal/masterdata | Reading .knxprod product data and knx_master.xml. |
internal/dpt | Datapoint type decoding and encoding. |
internal/falcon | The protocol stack: apdu, cemi, knxnetip (search, tunnel, device management, routing, UDP and TCP transports), usb and remote (read and write management services). |
internal/download | Builds device images, load plans and executes them, per mask family. |
internal/programming | The check, backup, write and verify procedure, shared by the application and knxprogram. |
internal/monitor | The telegram recorder. |
internal/capture | Reads pcap and pcapng captures and turns the KNXnet/IP tunnelling traffic of an ETS download into an anonymized transcript of ETS and one device. |
internal/report | The HTML project report. |
internal/send | The send gate: off by default, with a minimum interval. |
internal/download builds a plan (a list of operations) from the project and the device’s
facts; the same plan can be printed (knxdownload -plan), compared against the device, or executed. This is how the
dry run and the write cannot disagree.internal/falcon knows nothing about projects or windows, so the tools and the
application share it.internal/send; writes go through a client that must be told which device it
may write to.feedback.go names every field a report may hold; the open
project is never read for it, and the application only shows the text, so the user copies it or opens the issue form.See also Testing and Contributing.
How Tinkerbus is tested, including the reference downloads that fix the device load plans.
How to report problems, propose changes and add support for more devices.