pamoja.lorawan.firmware
Firmware management, TS006-1.0.0, on port PORT.
What a device is running, what upgrade image it holds and whether that image can be installed, and the single reboot a device keeps, set either as a moment in time or as a countdown.
>>> from pamoja.lorawan import firmware, package_encode, package_parse
>>> manager = firmware.Firmware(2, 7)
>>> manager.set_image(firmware.ImageStatus.VALID, 3)
>>> asked = package_encode(firmware.PORT, "dev_upgrade_image_req")
>>> package_parse(firmware.PORT, True, manager.heard(asked)).next_version
3
1"""Firmware management, TS006-1.0.0, on port :data:`PORT`. 2 3What a device is running, what upgrade image it holds and whether that image can be installed, 4and the single reboot a device keeps, set either as a moment in time or as a countdown. 5 6>>> from pamoja.lorawan import firmware, package_encode, package_parse 7>>> manager = firmware.Firmware(2, 7) 8>>> manager.set_image(firmware.ImageStatus.VALID, 3) 9>>> asked = package_encode(firmware.PORT, "dev_upgrade_image_req") 10>>> package_parse(firmware.PORT, True, manager.heard(asked)).next_version 113 12""" 13 14from __future__ import annotations 15 16import enum 17 18from pamoja._native import LORAWAN_FIRMWARE_PORT, LorawanFirmware 19 20__all__ = ["PORT", "Firmware", "ImageStatus"] 21 22#: The port this package is spoken on. 23PORT = LORAWAN_FIRMWARE_PORT 24 25#: The firmware management package running on a device. 26Firmware = LorawanFirmware 27 28 29class ImageStatus(str, enum.Enum): 30 """What a device makes of the firmware upgrade image it holds, table 10.""" 31 32 #: It is holding none. 33 NONE = "none" 34 #: One is there, but it is corrupt or its signature does not verify. 35 CORRUPT = "corrupt" 36 #: One is there and authentic, but it is not for this hardware. 37 WRONG_HARDWARE = "wrong_hardware" 38 #: One is there, and it can be installed. 39 VALID = "valid"
PORT =
203
Firmware =
<class 'builtins.LorawanFirmware'>
class
ImageStatus(builtins.str, enum.Enum):
30class ImageStatus(str, enum.Enum): 31 """What a device makes of the firmware upgrade image it holds, table 10.""" 32 33 #: It is holding none. 34 NONE = "none" 35 #: One is there, but it is corrupt or its signature does not verify. 36 CORRUPT = "corrupt" 37 #: One is there and authentic, but it is not for this hardware. 38 WRONG_HARDWARE = "wrong_hardware" 39 #: One is there, and it can be installed. 40 VALID = "valid"
What a device makes of the firmware upgrade image it holds, table 10.
NONE =
<ImageStatus.NONE: 'none'>
CORRUPT =
<ImageStatus.CORRUPT: 'corrupt'>
WRONG_HARDWARE =
<ImageStatus.WRONG_HARDWARE: 'wrong_hardware'>
VALID =
<ImageStatus.VALID: 'valid'>