update firmware api with more endpoints and parse firmware image headers
This commit is contained in:
parent
2d97f9bb87
commit
14e39b2377
6 changed files with 209 additions and 43 deletions
|
@ -14,8 +14,8 @@ from django.utils import timezone
|
|||
from django.utils.text import slugify
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from c3nav.mesh.dataformats import BoardType
|
||||
from c3nav.mesh.messages import ChipType, ConfigFirmwareMessage, ConfigHardwareMessage
|
||||
from c3nav.mesh.dataformats import BoardType, ChipType, FirmwareImage
|
||||
from c3nav.mesh.messages import ConfigFirmwareMessage, ConfigHardwareMessage
|
||||
from c3nav.mesh.messages import MeshMessage as MeshMessage
|
||||
from c3nav.mesh.messages import MeshMessageType
|
||||
from c3nav.mesh.utils import UPLINK_TIMEOUT
|
||||
|
@ -410,6 +410,11 @@ class FirmwareBuild(models.Model):
|
|||
for board in self.boards
|
||||
]
|
||||
|
||||
@cached_property
|
||||
def firmware_image(self) -> FirmwareImage:
|
||||
firmware_image, remaining = FirmwareImage.decode(self.binary.open('rb').read()[:FirmwareImage.get_min_size()])
|
||||
return firmware_image
|
||||
|
||||
|
||||
class FirmwareBuildBoard(models.Model):
|
||||
BOARDS = [(boardtype.name, boardtype.pretty_name) for boardtype in BoardType]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue