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>
|
<h4>Hardware</h4>
|
||||||
<p>
|
<p>
|
||||||
<strong>Board:</strong> {{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.name }}
|
<strong>Board:</strong> {{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.pretty_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 }})
|
(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 %}
|
{% if node.last_messages.CONFIG_BOARD.parsed.led %}
|
||||||
<br>
|
<br>
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
<select name="send_msg_type" style="display: inline-block; width: auto;" required>
|
<select name="send_msg_type" style="display: inline-block; width: auto;" required>
|
||||||
<option value="">select type</option>
|
<option value="">select type</option>
|
||||||
{% for msg_type in send_msg_types %}
|
{% 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 %}
|
{% endfor %}
|
||||||
</select>
|
</select>
|
||||||
<button type="submit">{% trans 'Send message' %}</button>
|
<button type="submit">{% trans 'Send message' %}</button>
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
<tr>
|
<tr>
|
||||||
<td><a href="{% url "control.mesh.node.detail" pk=node.address %}">{{ node }}</a></td>
|
<td><a href="{% url "control.mesh.node.detail" pk=node.address %}">{{ node }}</a></td>
|
||||||
<td>
|
<td>
|
||||||
{{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.name }}
|
{{ node.last_messages.CONFIG_BOARD.parsed.board_config.board.pretty_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_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>
|
||||||
<td>
|
<td>
|
||||||
{{ node.last_messages.CONFIG_FIRMWARE.parsed.app_desc.version }}
|
{{ node.last_messages.CONFIG_FIRMWARE.parsed.app_desc.version }}
|
||||||
|
|
|
@ -30,7 +30,7 @@ class MeshNodeListView(ControlPanelMixin, ListView):
|
||||||
def get_context_data(self, *args, **kwargs):
|
def get_context_data(self, *args, **kwargs):
|
||||||
return {
|
return {
|
||||||
**super().get_context_data(*args, **kwargs),
|
**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):
|
def post(self, request):
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import re
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from enum import IntEnum, unique
|
from enum import IntEnum, unique
|
||||||
|
|
||||||
|
@ -21,6 +22,10 @@ class LedType(IntEnum):
|
||||||
SERIAL = 1
|
SERIAL = 1
|
||||||
MULTIPIN = 2
|
MULTIPIN = 2
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pretty_name(self):
|
||||||
|
return self.name.lower()
|
||||||
|
|
||||||
|
|
||||||
@unique
|
@unique
|
||||||
class SerialLedType(IntEnum):
|
class SerialLedType(IntEnum):
|
||||||
|
@ -83,6 +88,18 @@ class BoardType(IntEnum):
|
||||||
C3NAV_LOCATION_PCB_REV_0_1 = 0x11
|
C3NAV_LOCATION_PCB_REV_0_1 = 0x11
|
||||||
C3NAV_LOCATION_PCB_REV_0_2 = 0x12
|
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
|
@dataclass
|
||||||
class BoardConfig(StructType, union_type_field="board"):
|
class BoardConfig(StructType, union_type_field="board"):
|
||||||
|
|
|
@ -124,9 +124,9 @@ class ConfigBoardMessageForm(MeshMessageForm):
|
||||||
msg_type = MeshMessageType.CONFIG_BOARD
|
msg_type = MeshMessageType.CONFIG_BOARD
|
||||||
|
|
||||||
# todo: don't use numerical values
|
# 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'))
|
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'))
|
label=_('LED type'))
|
||||||
led_serial_type = forms.ChoiceField(choices=((item.name, item.name) for item in SerialLedType),
|
led_serial_type = forms.ChoiceField(choices=((item.name, item.name) for item in SerialLedType),
|
||||||
label=_('serial LED type'), help_text=_('serial LED only'))
|
label=_('serial LED type'), help_text=_('serial LED only'))
|
||||||
|
|
|
@ -45,6 +45,10 @@ class MeshMessageType(IntEnum):
|
||||||
LOCATE_REQUEST_RANGE = 0x20
|
LOCATE_REQUEST_RANGE = 0x20
|
||||||
LOCATE_RANGE_RESULTS = 0x21
|
LOCATE_RANGE_RESULTS = 0x21
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pretty_name(self):
|
||||||
|
return self.name.replace('_', ' ').title()
|
||||||
|
|
||||||
|
|
||||||
M = TypeVar('M', bound='MeshMessage')
|
M = TypeVar('M', bound='MeshMessage')
|
||||||
|
|
||||||
|
@ -54,6 +58,10 @@ class ChipType(IntEnum):
|
||||||
ESP32_S2 = 2
|
ESP32_S2 = 2
|
||||||
ESP32_C3 = 5
|
ESP32_C3 = 5
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pretty_name(self):
|
||||||
|
return self.name.replace('_', '-')
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class MeshMessage(StructType, union_type_field="msg_id"):
|
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('_', '-')
|
return ChipType(self.chip).name.replace('_', '-')
|
||||||
|
|
||||||
|
|
||||||
@unique
|
|
||||||
class BoardType(IntEnum):
|
|
||||||
SERIAL = 1
|
|
||||||
MULTIPIN = 2
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class ConfigBoardMessage(MeshMessage, msg_id=MeshMessageType.CONFIG_BOARD):
|
class ConfigBoardMessage(MeshMessage, msg_id=MeshMessageType.CONFIG_BOARD):
|
||||||
""" set/respond board config """
|
""" set/respond board config """
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue