Class FirmwareWriter

extends ServiceResourceProxy
The FirmwareWriter supports incrementally building up a new firmware in a separate partition.
Once the firmware has been built, the firmware must be committed before a call to upgrade or a reboot will start running it.
It is common that newly installed firmware boots with pending validation; see is-validation-pending.

Class summary


Constructors

Methods

close -> none

commit --checksum/ByteArray=null -> none

copy mapping/FirmwareMapping [progress] -> none
Copy all bytes from mapping into the target firmware.
As the copying progresses and writes to the firmware are performed, the progress block is invoked and passed the non-accumulated number of bytes written.

operator == other/any -> bool
Whether this object is equal to the other.
By default, identical is used for equality.
Inheritance
Classes overwrite this operator to get an equality specific to their needs. Equality operators often compare the type and field contents. For example:

class Pin:
  number/int

  constructor .number:

  operator == other:
    if other is not Pin: return false
    return number == other.number
A class doesn't have to follow the above format, but it must keep the operator in sync with any hash-code method. That is, if a class has a hash-code member, then the equality and hash-code must agree. If two instances are equal (a == b), then their hash codes must also be equal (a.hash-code == b.hash-code).

pad size/int --value/int=0 -> none

Stringifies this object.
Inheritance
Objects that need a human-friendly string representation should overwrite this method. The default string is based on the internal class-ID.

write bytes/ByteArray -> none
Write the bytes into the target firmware.
If bytes is an external byte array, the byte array will be transferred without copying and thus neutered as part of the call. Such a byte array will be turned into an empty byte array.