prettier names in mesh view

This commit is contained in:
Laura Klünder 2023-10-20 15:04:36 +02:00
parent 6a35c6767b
commit 7f7ea64fd3
6 changed files with 33 additions and 14 deletions

View file

@ -42,8 +42,8 @@
<h4>Hardware</h4>
<p>
<strong>Board:</strong> {{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.name }}
(with {{ node.last_messages.CONFIG_HARDWARE.parsed.chip.name }} rev{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_major }}.{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_minor }})
<strong>Board:</strong> {{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.pretty_name }}
(with {{ node.last_messages.CONFIG_HARDWARE.parsed.chip.pretty_name }} rev{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_major }}.{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_minor }})
{% if node.last_messages.CONFIG_BOARD.parsed.led %}
<br>

View file

@ -18,7 +18,7 @@
<select name="send_msg_type" style="display: inline-block; width: auto;" required>
<option value="">select type</option>
{% for msg_type in send_msg_types %}
<option value="{{ msg_type }}">{{ msg_type }}</option>
<option value="{{ msg_type.name }}">{{ msg_type.pretty_name }}</option>
{% endfor %}
</select>
<button type="submit">{% trans 'Send message' %}</button>
@ -45,8 +45,8 @@
<tr>
<td><a href="{% url "control.mesh.node.detail" pk=node.address %}">{{ node }}</a></td>
<td>
{{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.name }}
({{ node.last_messages.CONFIG_HARDWARE.parsed.get_chip_display }} <small>rev{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_major }}.{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_minor }}</small>)
{{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.pretty_name }}
({{ node.last_messages.CONFIG_HARDWARE.parsed.chip.pretty_name }} <small>rev{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_major }}.{{ node.last_messages.CONFIG_HARDWARE.parsed.revision_minor }}</small>)
</td>
<td>
{{ node.last_messages.CONFIG_FIRMWARE.parsed.app_desc.version }}

View file

@ -30,7 +30,7 @@ class MeshNodeListView(ControlPanelMixin, ListView):
def get_context_data(self, *args, **kwargs):
return {
**super().get_context_data(*args, **kwargs),
"send_msg_types": [msg_type.name for msg_type in MeshMessageForm.msg_types.keys()],
"send_msg_types": {msg_type for msg_type in MeshMessageForm.msg_types.keys()}
}
def post(self, request):

View file

@ -1,3 +1,4 @@
import re
from dataclasses import dataclass, field
from enum import IntEnum, unique
@ -21,6 +22,10 @@ class LedType(IntEnum):
SERIAL = 1
MULTIPIN = 2
@property
def pretty_name(self):
return self.name.lower()
@unique
class SerialLedType(IntEnum):
@ -83,6 +88,18 @@ class BoardType(IntEnum):
C3NAV_LOCATION_PCB_REV_0_1 = 0x11
C3NAV_LOCATION_PCB_REV_0_2 = 0x12
@property
def pretty_name(self):
if self.name.startswith('ESP32'):
return self.name.replace('_', '-').replace('DEVKIT-', 'DevKit')
if self.name.startswith('C3NAV'):
name = self.name.replace('_', ' ').lower()
name = name.replace('uwb', 'UWB').replace('pcb', 'PCB')
name = re.sub(r'[0-9]+( [0-9+])+', lambda s: s[0].replace(' ', '.'), name)
name = re.sub(r'rev.*', lambda s: s[0].replace(' ', ''), name)
return name
return self.name
@dataclass
class BoardConfig(StructType, union_type_field="board"):

View file

@ -124,9 +124,9 @@ class ConfigBoardMessageForm(MeshMessageForm):
msg_type = MeshMessageType.CONFIG_BOARD
# todo: don't use numerical values
board = forms.ChoiceField(choices=((item.name, item.name) for item in BoardType),
board = forms.ChoiceField(choices=((item.name, item.pretty_name) for item in BoardType),
label=_('board'))
led_type = forms.ChoiceField(choices=((item.name, item.name) for item in LedType),
led_type = forms.ChoiceField(choices=((item.name, item.pretty_name) for item in LedType),
label=_('LED type'))
led_serial_type = forms.ChoiceField(choices=((item.name, item.name) for item in SerialLedType),
label=_('serial LED type'), help_text=_('serial LED only'))

View file

@ -45,6 +45,10 @@ class MeshMessageType(IntEnum):
LOCATE_REQUEST_RANGE = 0x20
LOCATE_RANGE_RESULTS = 0x21
@property
def pretty_name(self):
return self.name.replace('_', ' ').title()
M = TypeVar('M', bound='MeshMessage')
@ -54,6 +58,10 @@ class ChipType(IntEnum):
ESP32_S2 = 2
ESP32_C3 = 5
@property
def pretty_name(self):
return self.name.replace('_', '-')
@dataclass
class MeshMessage(StructType, union_type_field="msg_id"):
@ -218,12 +226,6 @@ class ConfigHardwareMessage(MeshMessage, msg_id=MeshMessageType.CONFIG_HARDWARE)
return ChipType(self.chip).name.replace('_', '-')
@unique
class BoardType(IntEnum):
SERIAL = 1
MULTIPIN = 2
@dataclass
class ConfigBoardMessage(MeshMessage, msg_id=MeshMessageType.CONFIG_BOARD):
""" set/respond board config """