diff --git a/src/c3nav/control/templates/control/mesh_messages.html b/src/c3nav/control/templates/control/mesh_messages.html
index 19d3b867..5825ec79 100644
--- a/src/c3nav/control/templates/control/mesh_messages.html
+++ b/src/c3nav/control/templates/control/mesh_messages.html
@@ -89,6 +89,33 @@
{% endfor %}
+ {% elif msg.message_type == "LOCATE_RAW_FTM_RESULTS" %}
+ peer: {{ msg.parsed.peer }}
+
+
+ i |
+ token |
+ rssi |
+ rtt |
+ t1 |
+ t2 |
+ t3 |
+ t4 |
+
+ {% for entry in msg.parsed.results %}
+
+ {{ forloop.counter0 }} |
+ {{ entry.dlog_token }} |
+ {{ entry.rssi }} |
+ {{ entry.rtt }} |
+ {{ entry.t1 }} |
+ {{ entry.t2 }} |
+ {{ entry.t3 }} |
+ {{ entry.t4 }} |
+
+ {% endfor %}
+
+
{% else %}
{% for key, value in msg.data.items %}
{% if key != "src" and key != "dst" and key != "msg_type" %}
diff --git a/src/c3nav/mesh/baseformats.py b/src/c3nav/mesh/baseformats.py
index 469c1ab9..33571dd8 100644
--- a/src/c3nav/mesh/baseformats.py
+++ b/src/c3nav/mesh/baseformats.py
@@ -79,7 +79,7 @@ class SimpleFormat(BaseFormat):
"b": "int8_t",
"h": "int16_t",
"i": "int32_t",
- "q": "uint64_t",
+ "q": "int64_t",
"s": "char",
}
diff --git a/src/c3nav/mesh/consumers.py b/src/c3nav/mesh/consumers.py
index 8a6b55fd..e4295eb3 100644
--- a/src/c3nav/mesh/consumers.py
+++ b/src/c3nav/mesh/consumers.py
@@ -56,6 +56,8 @@ class MeshConsumer(WebsocketConsumer):
traceback.print_exc()
return
+ print(msg)
+
if msg.dst != messages.MESH_ROOT_ADDRESS and msg.dst != messages.MESH_PARENT_ADDRESS:
# message not adressed to us, forward it
print('Received message for forwarding:', msg)
diff --git a/src/c3nav/mesh/dataformats.py b/src/c3nav/mesh/dataformats.py
index 0c247dc4..a2c4876a 100644
--- a/src/c3nav/mesh/dataformats.py
+++ b/src/c3nav/mesh/dataformats.py
@@ -144,7 +144,7 @@ class RangeResultItem(StructType):
@dataclass
-class RawFTMEntry(StructType, existing_c_struct="wifi_ftm_report_entry_t"):
+class RawFTMEntry(StructType):
dlog_token: int = field(metadata={"format": SimpleFormat('B')})
rssi: int = field(metadata={"format": SimpleFormat('b')})
rtt: int = field(metadata={"format": SimpleFormat('I')})
diff --git a/src/c3nav/mesh/messages.py b/src/c3nav/mesh/messages.py
index ea2f876d..09aac4f7 100644
--- a/src/c3nav/mesh/messages.py
+++ b/src/c3nav/mesh/messages.py
@@ -347,5 +347,5 @@ class LocateRangeResults(MeshMessage, msg_type=MeshMessageType.LOCATE_RANGE_RESU
@dataclass
class LocateRawFTMResults(MeshMessage, msg_type=MeshMessageType.LOCATE_RAW_FTM_RESULTS):
""" 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)})
diff --git a/src/c3nav/site/static/site/css/c3nav.scss b/src/c3nav/site/static/site/css/c3nav.scss
index c793ac9a..3a24fb79 100644
--- a/src/c3nav/site/static/site/css/c3nav.scss
+++ b/src/c3nav/site/static/site/css/c3nav.scss
@@ -1359,3 +1359,9 @@ button + button {
margin-bottom: 0.5rem;
font-size: 80%;
}
+.smalltable {
+ font-size:80%;
+ td, th {
+ padding: 2px;
+ }
+}