MCPcopy Create free account
hub / github.com/bitcraze/crazyflie-lib-python / Toc

Class Toc

cflib/crazyflie/toc.py:55–108  ·  view source on GitHub ↗

Container for TocElements.

Source from the content-addressed store, hash-verified

53
54
55class Toc:
56 """Container for TocElements."""
57
58 def __init__(self):
59 self.toc = {}
60
61 def clear(self):
62 """Clear the TOC"""
63 self.toc = {}
64
65 def add_element(self, element):
66 """Add a new TocElement to the TOC container."""
67 try:
68 self.toc[element.group][element.name] = element
69 except KeyError:
70 self.toc[element.group] = {}
71 self.toc[element.group][element.name] = element
72
73 def get_element_by_complete_name(self, complete_name):
74 """Get a TocElement element identified by complete name from the
75 container."""
76 try:
77 return self.get_element_by_id(self.get_element_id(complete_name))
78 except ValueError:
79 # Item not found
80 return None
81
82 def get_element_id(self, complete_name):
83 """Get the TocElement element id-number of the element with the
84 supplied name."""
85 [group, name] = complete_name.split('.')
86 element = self.get_element(group, name)
87 if element:
88 return element.ident
89 else:
90 logger.warning('Unable to find variable [%s]', complete_name)
91 return None
92
93 def get_element(self, group, name):
94 """Get a TocElement element identified by name and group from the
95 container."""
96 try:
97 return self.toc[group][name]
98 except KeyError:
99 return None
100
101 def get_element_by_id(self, ident):
102 """Get a TocElement element identified by index number from the
103 container."""
104 for group in list(self.toc.keys()):
105 for name in list(self.toc[group].keys()):
106 if self.toc[group][name].ident == ident:
107 return self.toc[group][name]
108 return None
109
110
111class TocFetcher:

Callers 3

_new_packet_cbMethod · 0.85
__init__Method · 0.85
_disconnectedMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected