prettier names in mesh view
This commit is contained in:
parent
6a35c6767b
commit
7f7ea64fd3
6 changed files with 33 additions and 14 deletions
|
@ -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>
|
||||
|
|
|
@ -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 }}
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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"):
|
||||
|
|
|
@ -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'))
|
||||
|
|
|
@ -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 """
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue