Concept for Python API
lean on interface of established entry-level projects (i.e. wiring, arduino)
submodules as classes ⇾ basic configuration at instantiation
lib could be compiled for speed
do we need exact timestamps for start and stop or is a global trigger enough
hdf5 for fast storage, data can be segmented into several files, and written incrementally
later converters for csv, saleae logic-analyzer-format would be nice
try to separate between scenario and measurement (reuse-ability)
individualize target firmware by manipulating ELF-file: tx power and ID/softMAC as variable,
modules
harvesting-emulator: energy-trace(s), sampling-rate, playback (mirrored, loop)
or skip emulator by using constant voltage module
traces are file based, there will be a default-folder with pre-selected ones (already on beagle)
harvesting-recorder: save-path, capture-duration, start-timestamp, sampling-rate
includes current-recorder and switch for dummy-load
dc-emulation-modul: converter model parameter, capacitor parameters, pre-charge …
low-level model in PRU
target-module: path for trace-dumps,
submodules: firmware (+addressing by firmware-manipulation), uart, gpios
allow to disconnect all iO (document in logs with timestamp + Event)
bidirectional GPIO usage
allow to pass thread-function to nodes that handle reactions
start of measurement should be triggered by absolute timestamp and marks T=0
what if the absolute time was missed? ⇾ synced start whenever start-signal comes, should be enough
after that it seems easier to use relative time increments for controlling submodules
interact with cron-jobs or other linux-scheduler
currently implemented: absolute time start with scheduler, node needs no control after config