team-3/src/c3nav/mesh/utils.py

36 lines
924 B
Python
Raw Normal View History

from operator import attrgetter
2023-11-07 16:35:46 +01:00
def get_mesh_uplink_group(address):
return 'mesh_uplink_%s' % address.replace(':', '-')
MESH_ALL_UPLINKS_GROUP = "mesh_uplink_all"
MESH_ALL_OTA_GROUP = "mesh_ota_all"
2023-11-07 16:35:46 +01:00
UPLINK_PING = 5
UPLINK_TIMEOUT = UPLINK_PING+5
2023-10-04 22:25:15 +02:00
def indent_c(code):
return " "+code.replace("\n", "\n ")
2023-10-05 05:02:01 +02:00
def get_node_names():
from c3nav.mesh.models import MeshNode
return {
**{node.address: node.name for node in MeshNode.objects.all()},
'ff:ff:ff:ff:ff:ff': "broadcast",
'00:00:00:ff:ff:ff': "direct parent",
'00:00:00:00:00:00': "root",
}
def group_msg_type_choices(msg_types):
msg_types = sorted(msg_types, key=attrgetter('value'))
choices = {}
for msg_type in msg_types:
choices.setdefault(msg_type.name.split('_')[0].lower(), []).append(
(msg_type.name, msg_type.pretty_name)
)
return tuple(choices.items())