full support for the raw ftm stuff

This commit is contained in:
Laura Klünder 2023-10-28 19:56:03 +02:00
parent 6abdd6d959
commit f2f0186e33
6 changed files with 38 additions and 3 deletions

View file

@ -89,6 +89,33 @@
{% endfor %} {% endfor %}
</ul> </ul>
{% elif msg.message_type == "LOCATE_RAW_FTM_RESULTS" %}
<strong>peer:</strong> {{ msg.parsed.peer }}<br>
<table class="smalltable">
<tr>
<th>i</th>
<th>token</th>
<th>rssi</th>
<th>rtt</th>
<th>t1</th>
<th>t2</th>
<th>t3</th>
<th>t4</th>
</tr>
{% for entry in msg.parsed.results %}
<tr>
<td>{{ forloop.counter0 }}</td>
<td>{{ entry.dlog_token }}</td>
<td>{{ entry.rssi }}</td>
<td>{{ entry.rtt }}</td>
<td>{{ entry.t1 }}</td>
<td>{{ entry.t2 }}</td>
<td>{{ entry.t3 }}</td>
<td>{{ entry.t4 }}</td>
</tr>
{% endfor %}
</table>
{% else %} {% else %}
{% for key, value in msg.data.items %} {% for key, value in msg.data.items %}
{% if key != "src" and key != "dst" and key != "msg_type" %} {% if key != "src" and key != "dst" and key != "msg_type" %}

View file

@ -79,7 +79,7 @@ class SimpleFormat(BaseFormat):
"b": "int8_t", "b": "int8_t",
"h": "int16_t", "h": "int16_t",
"i": "int32_t", "i": "int32_t",
"q": "uint64_t", "q": "int64_t",
"s": "char", "s": "char",
} }

View file

@ -56,6 +56,8 @@ class MeshConsumer(WebsocketConsumer):
traceback.print_exc() traceback.print_exc()
return return
print(msg)
if msg.dst != messages.MESH_ROOT_ADDRESS and msg.dst != messages.MESH_PARENT_ADDRESS: if msg.dst != messages.MESH_ROOT_ADDRESS and msg.dst != messages.MESH_PARENT_ADDRESS:
# message not adressed to us, forward it # message not adressed to us, forward it
print('Received message for forwarding:', msg) print('Received message for forwarding:', msg)

View file

@ -144,7 +144,7 @@ class RangeResultItem(StructType):
@dataclass @dataclass
class RawFTMEntry(StructType, existing_c_struct="wifi_ftm_report_entry_t"): class RawFTMEntry(StructType):
dlog_token: int = field(metadata={"format": SimpleFormat('B')}) dlog_token: int = field(metadata={"format": SimpleFormat('B')})
rssi: int = field(metadata={"format": SimpleFormat('b')}) rssi: int = field(metadata={"format": SimpleFormat('b')})
rtt: int = field(metadata={"format": SimpleFormat('I')}) rtt: int = field(metadata={"format": SimpleFormat('I')})

View file

@ -347,5 +347,5 @@ class LocateRangeResults(MeshMessage, msg_type=MeshMessageType.LOCATE_RANGE_RESU
@dataclass @dataclass
class LocateRawFTMResults(MeshMessage, msg_type=MeshMessageType.LOCATE_RAW_FTM_RESULTS): class LocateRawFTMResults(MeshMessage, msg_type=MeshMessageType.LOCATE_RAW_FTM_RESULTS):
""" reports distance to given nodes """ """ reports distance to given nodes """
distribute_to: str = field(metadata={"format": MacAddressFormat()}) peer: str = field(metadata={"format": MacAddressFormat()})
results: list[RawFTMEntry] = field(metadata={"format": VarArrayFormat(RawFTMEntry)}) results: list[RawFTMEntry] = field(metadata={"format": VarArrayFormat(RawFTMEntry)})

View file

@ -1359,3 +1359,9 @@ button + button {
margin-bottom: 0.5rem; margin-bottom: 0.5rem;
font-size: 80%; font-size: 80%;
} }
.smalltable {
font-size:80%;
td, th {
padding: 2px;
}
}