Partial downloads

Load only the parameters, only the group communication, or both, with knxprogram -partial.

A full download writes the application program, the parameters and the group address links. A partial download writes only part of that, which is faster and leaves the application program in place. Use it when the device already holds the right application program: this is not checked.

Choose the scope with -partial par|grp|both on knxprogram or with the Load selector in the application.

ScopeMeaning
parParameters only
grpGroup communication only: group addresses and the links of group objects
bothParameters and group communication

When parameters change the group objects (for example, enabling a channel), the reference downloads load group communication too. knxprogram checks the object table of the device for that.

How the plans are built

The plans follow the partial downloads ETS makes, as recorded in reference downloads, and equal them in the tests for masks 0x0021, 0x0705, 0x07B0 and 0x0012, and for the IP router.

  • 0x0021 and 0x0705. Load state machines 1 and 2 are unloaded and loaded whole if group communication is loaded; 3 is not unloaded and gets no segments: Load, the object table range for group communication, the octets parameters occupy as separate writes for parameters, then LoadCompleted. Identity octets are not written.
  • 0x07B0. Parameters are load state machine 4, group communication is 1, 2 and 3; 5 stays. 1 and 2 are written whole. 3 and 4 get their segment with only the octets that differ from what the device holds (read by knxprogram).
  • 0x0012. Own steps: association pointer, group addresses with association table, object table, parameter runs, then the usual ends; each compared in chunks of 12 and written where it differs. The reference downloads did the group communication ranges also for “parameters”.
  • 0x091A (router). The whole load procedure also runs for par and both, as in the reference downloads. grp is the lighter procedure that clears and writes the filter table.

Limits

  • The scope is chosen by hand. ETS decides from the change flags of the device (the loaded flags in the project); Tinkerbus does not.
  • Larger tables (several group addresses on 0x0012, runs spanning several APDUs on 0x07B0) are not covered by a reference download.
  • For 0x07B0 the checksums of the load images are not compared after a partial load, because the device sums up what was written; the memory is compared.
  • Partial downloads have not been tried with a changed project on real hardware. See Status.