pycasx.connectors.protocols
Protocols for connectors.
Module Contents
Classes
A dictionary of properties returned. |
|
Protocol for a connection to the FlightGear Property Tree. |
- class pycasx.connectors.protocols.PropsDict
Bases:
TypedDictA dictionary of properties returned.
This dictionary is returned by the
list_propsmethod of thePropsConnectionprotocol.
- class pycasx.connectors.protocols.PropsConnection
Bases:
ProtocolProtocol for a connection to the FlightGear Property Tree.
- get_prop(prop_str)
Get a property from FlightGear.
For all general available properties, this works the same as
PropsConnection.get_prop(). But as we assume we do not have ADS-B data from the intruder aka the AI, we will use object detection to get the properties under/ai/models/aircraft/.- Parameters:
prop_str (str) – location of the property, should always be relative to the root (
/)- Returns:
- the value of the property. If FG tells us what the type
is we will pre-convert it (i.e. make an int from a string)
- Return type:
Any
- set_prop(prop_str, value)
Set a property in FlightGear.
- Parameters:
prop_str (str) – location of the property, should always be relative to the root (
/)value (Any) – value to set the property to. Must be convertible to
str
- Return type:
None
- list_props(path='/', recurse_limit=0)
List properties in the FlightGear property tree.
- Parameters:
path (str) – directory to list from, should always be relative to the root (
/)recurse_limit (int | None) – how many times to recurse into subdirectories. 1 (default) is no recursion, 2 is 1 level deep, etc. Passing in
Nonedisables the recursion limit. Be warned that enabling any kind of recursion will take a long time!
- Returns:
dictionary with keys:
- Return type:
Example for
list_props('/position', recurse_limit=0):{ 'directories': [ '/position/model' ], 'properties': { '/position/altitude-agl-ft': 3.148566963, '/position/altitude-agl-m': 0.9596832103, '/position/altitude-ft': 3491.986254, '/position/ground-elev-ft': 3488.469757, '/position/ground-elev-m': 1063.285582, '/position/latitude-deg': 0.104476136, '/position/latitude-string': '0*06\\'16.1"N', '/position/longitude-deg': 100.023135, '/position/longitude-string': '100*01\\'23.3"E', '/position/sea-level-radius-ft': 20925646.09 } }