nimbusos-sdk 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. nimbusos_sdk-0.1.0/PKG-INFO +87 -0
  2. nimbusos_sdk-0.1.0/README.md +74 -0
  3. nimbusos_sdk-0.1.0/pyproject.toml +35 -0
  4. nimbusos_sdk-0.1.0/setup.cfg +4 -0
  5. nimbusos_sdk-0.1.0/src/nimbusos_sdk/__init__.py +29 -0
  6. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/__init__.py +1 -0
  7. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/__init__.py +0 -0
  8. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/AttitudeData.py +36 -0
  9. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/BaroVarioData.py +32 -0
  10. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/BatterySensorData.py +38 -0
  11. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/CameraJpegMessage.py +128 -0
  12. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/DroneLinkedData.py +30 -0
  13. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/EulerAngles3D.py +32 -0
  14. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/FlightControllerUidData.py +36 -0
  15. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/FlightModeData.py +63 -0
  16. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/GpsData.py +45 -0
  17. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/GuidanceRequestMessage.py +106 -0
  18. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/GuidanceRequestType.py +10 -0
  19. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/LinkStatisticsData.py +180 -0
  20. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/LocalFrameVector3D.py +32 -0
  21. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/MagnetometerData.py +36 -0
  22. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/MotorRpmData.py +167 -0
  23. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/OptrangeData.py +48 -0
  24. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/Quaternion.py +35 -0
  25. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/RangefinderData.py +32 -0
  26. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/RawImuData.py +44 -0
  27. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/State.py +152 -0
  28. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/StateMessage.py +80 -0
  29. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/TelemetryMessage.py +318 -0
  30. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/VarioData.py +30 -0
  31. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/VideoReceiverTopChannelsData.py +49 -0
  32. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/WaypointCommandMessage.py +119 -0
  33. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/WaypointCommandMode.py +7 -0
  34. nimbusos_sdk-0.1.0/src/nimbusos_sdk/_schema/droneforge/schema/__init__.py +0 -0
  35. nimbusos_sdk-0.1.0/src/nimbusos_sdk/camera.py +31 -0
  36. nimbusos_sdk-0.1.0/src/nimbusos_sdk/cli.py +142 -0
  37. nimbusos_sdk-0.1.0/src/nimbusos_sdk/client.py +391 -0
  38. nimbusos_sdk-0.1.0/src/nimbusos_sdk/schema.py +54 -0
  39. nimbusos_sdk-0.1.0/src/nimbusos_sdk/state.py +113 -0
  40. nimbusos_sdk-0.1.0/src/nimbusos_sdk/telemetry.py +79 -0
  41. nimbusos_sdk-0.1.0/src/nimbusos_sdk.egg-info/PKG-INFO +87 -0
  42. nimbusos_sdk-0.1.0/src/nimbusos_sdk.egg-info/SOURCES.txt +44 -0
  43. nimbusos_sdk-0.1.0/src/nimbusos_sdk.egg-info/dependency_links.txt +1 -0
  44. nimbusos_sdk-0.1.0/src/nimbusos_sdk.egg-info/entry_points.txt +4 -0
  45. nimbusos_sdk-0.1.0/src/nimbusos_sdk.egg-info/requires.txt +2 -0
  46. nimbusos_sdk-0.1.0/src/nimbusos_sdk.egg-info/top_level.txt +1 -0
@@ -0,0 +1,87 @@
1
+ Metadata-Version: 2.4
2
+ Name: nimbusos-sdk
3
+ Version: 0.1.0
4
+ Summary: Python SDK for NimbusOS.
5
+ Author: Droneforge
6
+ License-Expression: LicenseRef-Proprietary
7
+ Classifier: Programming Language :: Python :: 3
8
+ Classifier: Programming Language :: Python :: 3 :: Only
9
+ Requires-Python: <4.0,>=3.10
10
+ Description-Content-Type: text/markdown
11
+ Requires-Dist: flatbuffers>=25.12.19
12
+ Requires-Dist: pyzmq>=26.0.0
13
+
14
+ # NimbusOS Python SDK
15
+
16
+ This is the first narrow Python SDK surface for NimbusOS pubsub.
17
+
18
+ V1 supports:
19
+
20
+ - Subscribe to `telemetry`
21
+ - Subscribe to `state`
22
+ - Subscribe to `camera`
23
+ - Publish `guidance_request`
24
+ - Publish `waypoint_command`
25
+
26
+ It does not expose raw pubsub publishing, all-topic subscription, legacy route
27
+ messages, navigation request messages, or internal control topics.
28
+
29
+ ## Install
30
+
31
+ ```bash
32
+ cd NimbusOS/sdk
33
+ uv sync
34
+ ```
35
+
36
+ ## Subscribe
37
+
38
+ ```bash
39
+ cd NimbusOS/sdk
40
+ uv run nimbusos-subscribe telemetry
41
+ uv run nimbusos-subscribe state
42
+ uv run nimbusos-subscribe camera
43
+ ```
44
+
45
+ ## Publish Guidance Requests
46
+
47
+ ```bash
48
+ cd NimbusOS/sdk
49
+ uv run nimbusos-guidance-request go
50
+ uv run nimbusos-guidance-request land
51
+ uv run nimbusos-guidance-request return_home
52
+ ```
53
+
54
+ Guidance can also request a relative waypoint:
55
+
56
+ ```bash
57
+ cd NimbusOS/sdk
58
+ uv run nimbusos-guidance-request relative_waypoint --forward 1.5 --right 0.0 --down -1.0
59
+ ```
60
+
61
+ ## Publish Waypoint Commands
62
+
63
+ ```bash
64
+ cd NimbusOS/sdk
65
+ uv run nimbusos-waypoint-command --mode override --forward 1.5 --right 0.0 --down -1.0
66
+ uv run nimbusos-waypoint-command --mode queue --forward 1.0 --right 0.5 --down -1.0
67
+ ```
68
+
69
+ Waypoint command fields match the core schema:
70
+
71
+ - `forward`: meters forward/back in the drone's current body heading
72
+ - `right`: meters right/left in the drone's current body heading
73
+ - `down`: absolute local-frame down target
74
+ - `mode=override`: replace the active waypoint
75
+ - `mode=queue`: append after the active waypoint
76
+
77
+ ## Endpoints
78
+
79
+ The client uses these defaults:
80
+
81
+ - publish: `tcp://127.0.0.1:7771`
82
+ - subscribe: `tcp://127.0.0.1:7772`
83
+
84
+ You can override them with:
85
+
86
+ - `DF_ZMQ_PUB_ENDPOINT`
87
+ - `DF_ZMQ_SUB_ENDPOINT`
@@ -0,0 +1,74 @@
1
+ # NimbusOS Python SDK
2
+
3
+ This is the first narrow Python SDK surface for NimbusOS pubsub.
4
+
5
+ V1 supports:
6
+
7
+ - Subscribe to `telemetry`
8
+ - Subscribe to `state`
9
+ - Subscribe to `camera`
10
+ - Publish `guidance_request`
11
+ - Publish `waypoint_command`
12
+
13
+ It does not expose raw pubsub publishing, all-topic subscription, legacy route
14
+ messages, navigation request messages, or internal control topics.
15
+
16
+ ## Install
17
+
18
+ ```bash
19
+ cd NimbusOS/sdk
20
+ uv sync
21
+ ```
22
+
23
+ ## Subscribe
24
+
25
+ ```bash
26
+ cd NimbusOS/sdk
27
+ uv run nimbusos-subscribe telemetry
28
+ uv run nimbusos-subscribe state
29
+ uv run nimbusos-subscribe camera
30
+ ```
31
+
32
+ ## Publish Guidance Requests
33
+
34
+ ```bash
35
+ cd NimbusOS/sdk
36
+ uv run nimbusos-guidance-request go
37
+ uv run nimbusos-guidance-request land
38
+ uv run nimbusos-guidance-request return_home
39
+ ```
40
+
41
+ Guidance can also request a relative waypoint:
42
+
43
+ ```bash
44
+ cd NimbusOS/sdk
45
+ uv run nimbusos-guidance-request relative_waypoint --forward 1.5 --right 0.0 --down -1.0
46
+ ```
47
+
48
+ ## Publish Waypoint Commands
49
+
50
+ ```bash
51
+ cd NimbusOS/sdk
52
+ uv run nimbusos-waypoint-command --mode override --forward 1.5 --right 0.0 --down -1.0
53
+ uv run nimbusos-waypoint-command --mode queue --forward 1.0 --right 0.5 --down -1.0
54
+ ```
55
+
56
+ Waypoint command fields match the core schema:
57
+
58
+ - `forward`: meters forward/back in the drone's current body heading
59
+ - `right`: meters right/left in the drone's current body heading
60
+ - `down`: absolute local-frame down target
61
+ - `mode=override`: replace the active waypoint
62
+ - `mode=queue`: append after the active waypoint
63
+
64
+ ## Endpoints
65
+
66
+ The client uses these defaults:
67
+
68
+ - publish: `tcp://127.0.0.1:7771`
69
+ - subscribe: `tcp://127.0.0.1:7772`
70
+
71
+ You can override them with:
72
+
73
+ - `DF_ZMQ_PUB_ENDPOINT`
74
+ - `DF_ZMQ_SUB_ENDPOINT`
@@ -0,0 +1,35 @@
1
+ [project]
2
+ name = "nimbusos-sdk"
3
+ version = "0.1.0"
4
+ description = "Python SDK for NimbusOS."
5
+ readme = "README.md"
6
+ requires-python = ">=3.10,<4.0"
7
+ license = "LicenseRef-Proprietary"
8
+ authors = [{ name = "Droneforge" }]
9
+ dependencies = [
10
+ "flatbuffers>=25.12.19",
11
+ "pyzmq>=26.0.0",
12
+ ]
13
+ classifiers = [
14
+ "Programming Language :: Python :: 3",
15
+ "Programming Language :: Python :: 3 :: Only",
16
+ ]
17
+
18
+ [project.scripts]
19
+ nimbusos-subscribe = "nimbusos_sdk.cli:subscribe_main"
20
+ nimbusos-guidance-request = "nimbusos_sdk.cli:guidance_request_main"
21
+ nimbusos-waypoint-command = "nimbusos_sdk.cli:waypoint_command_main"
22
+
23
+ [build-system]
24
+ requires = ["setuptools>=68", "wheel"]
25
+ build-backend = "setuptools.build_meta"
26
+
27
+ [tool.setuptools]
28
+ package-dir = {"" = "src"}
29
+
30
+ [tool.setuptools.packages.find]
31
+ where = ["src"]
32
+ include = ["nimbusos_sdk*"]
33
+
34
+ [tool.setuptools.package-data]
35
+ nimbusos_sdk = ["_schema/**/*.py"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,29 @@
1
+ from .camera import CameraFrame
2
+ from .client import NimbusClient
3
+ from .client import ReceivedMessage
4
+ from .state import LocalFrameDirection
5
+ from .state import LocalFramePosition
6
+ from .state import LocalFrameVelocity
7
+ from .state import State
8
+ from .state import StateAttitude
9
+ from .state import StateOrientation
10
+ from .telemetry import AttitudeTelemetry
11
+ from .telemetry import BatteryTelemetry
12
+ from .telemetry import LinkTelemetry
13
+ from .telemetry import Telemetry
14
+
15
+ __all__ = [
16
+ "AttitudeTelemetry",
17
+ "BatteryTelemetry",
18
+ "CameraFrame",
19
+ "LinkTelemetry",
20
+ "LocalFrameDirection",
21
+ "LocalFramePosition",
22
+ "LocalFrameVelocity",
23
+ "NimbusClient",
24
+ "ReceivedMessage",
25
+ "State",
26
+ "StateAttitude",
27
+ "StateOrientation",
28
+ "Telemetry",
29
+ ]
@@ -0,0 +1 @@
1
+ """Packaged FlatBuffer schema modules used by the NimbusOS SDK."""
@@ -0,0 +1,36 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class AttitudeData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 24
15
+
16
+ # AttitudeData
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # AttitudeData
21
+ def Roll(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # AttitudeData
23
+ def Pitch(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4))
24
+ # AttitudeData
25
+ def Yaw(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
26
+ # AttitudeData
27
+ def TNs(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16))
28
+
29
+ def CreateAttitudeData(builder, roll, pitch, yaw, tNs):
30
+ builder.Prep(8, 24)
31
+ builder.PrependUint64(tNs)
32
+ builder.Pad(4)
33
+ builder.PrependFloat32(yaw)
34
+ builder.PrependFloat32(pitch)
35
+ builder.PrependFloat32(roll)
36
+ return builder.Offset()
@@ -0,0 +1,32 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class BaroVarioData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 16
15
+
16
+ # BaroVarioData
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # BaroVarioData
21
+ def Altitude(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # BaroVarioData
23
+ def VerticalSpeed(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4))
24
+ # BaroVarioData
25
+ def TNs(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
26
+
27
+ def CreateBaroVarioData(builder, altitude, verticalSpeed, tNs):
28
+ builder.Prep(8, 16)
29
+ builder.PrependUint64(tNs)
30
+ builder.PrependFloat32(verticalSpeed)
31
+ builder.PrependFloat32(altitude)
32
+ return builder.Offset()
@@ -0,0 +1,38 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class BatterySensorData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 24
15
+
16
+ # BatterySensorData
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # BatterySensorData
21
+ def Voltage(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # BatterySensorData
23
+ def Current(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4))
24
+ # BatterySensorData
25
+ def Capacity(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
26
+ # BatterySensorData
27
+ def RemainingCapacity(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(12))
28
+ # BatterySensorData
29
+ def TNs(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16))
30
+
31
+ def CreateBatterySensorData(builder, voltage, current, capacity, remainingCapacity, tNs):
32
+ builder.Prep(8, 24)
33
+ builder.PrependUint64(tNs)
34
+ builder.PrependFloat32(remainingCapacity)
35
+ builder.PrependFloat32(capacity)
36
+ builder.PrependFloat32(current)
37
+ builder.PrependFloat32(voltage)
38
+ return builder.Offset()
@@ -0,0 +1,128 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class CameraJpegMessage(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def GetRootAs(cls, buf, offset=0):
14
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
15
+ x = CameraJpegMessage()
16
+ x.Init(buf, n + offset)
17
+ return x
18
+
19
+ @classmethod
20
+ def GetRootAsCameraJpegMessage(cls, buf, offset=0):
21
+ """This method is deprecated. Please switch to GetRootAs."""
22
+ return cls.GetRootAs(buf, offset)
23
+ # CameraJpegMessage
24
+ def Init(self, buf, pos):
25
+ self._tab = flatbuffers.table.Table(buf, pos)
26
+
27
+ # CameraJpegMessage
28
+ def Seq(self):
29
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
30
+ if o != 0:
31
+ return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
32
+ return 0
33
+
34
+ # CameraJpegMessage
35
+ def TNs(self):
36
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
37
+ if o != 0:
38
+ return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
39
+ return 0
40
+
41
+ # CameraJpegMessage
42
+ def Width(self):
43
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(8))
44
+ if o != 0:
45
+ return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
46
+ return 0
47
+
48
+ # CameraJpegMessage
49
+ def Height(self):
50
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(10))
51
+ if o != 0:
52
+ return self._tab.Get(flatbuffers.number_types.Uint32Flags, o + self._tab.Pos)
53
+ return 0
54
+
55
+ # CameraJpegMessage
56
+ def Jpeg(self, j):
57
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
58
+ if o != 0:
59
+ a = self._tab.Vector(o)
60
+ return self._tab.Get(flatbuffers.number_types.Uint8Flags, a + flatbuffers.number_types.UOffsetTFlags.py_type(j * 1))
61
+ return 0
62
+
63
+ # CameraJpegMessage
64
+ def JpegAsNumpy(self):
65
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
66
+ if o != 0:
67
+ return self._tab.GetVectorAsNumpy(flatbuffers.number_types.Uint8Flags, o)
68
+ return 0
69
+
70
+ # CameraJpegMessage
71
+ def JpegLength(self):
72
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
73
+ if o != 0:
74
+ return self._tab.VectorLen(o)
75
+ return 0
76
+
77
+ # CameraJpegMessage
78
+ def JpegIsNone(self):
79
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(12))
80
+ return o == 0
81
+
82
+ def CameraJpegMessageStart(builder):
83
+ builder.StartObject(5)
84
+
85
+ def Start(builder):
86
+ CameraJpegMessageStart(builder)
87
+
88
+ def CameraJpegMessageAddSeq(builder, seq):
89
+ builder.PrependUint64Slot(0, seq, 0)
90
+
91
+ def AddSeq(builder, seq):
92
+ CameraJpegMessageAddSeq(builder, seq)
93
+
94
+ def CameraJpegMessageAddTNs(builder, tNs):
95
+ builder.PrependUint64Slot(1, tNs, 0)
96
+
97
+ def AddTNs(builder, tNs):
98
+ CameraJpegMessageAddTNs(builder, tNs)
99
+
100
+ def CameraJpegMessageAddWidth(builder, width):
101
+ builder.PrependUint32Slot(2, width, 0)
102
+
103
+ def AddWidth(builder, width):
104
+ CameraJpegMessageAddWidth(builder, width)
105
+
106
+ def CameraJpegMessageAddHeight(builder, height):
107
+ builder.PrependUint32Slot(3, height, 0)
108
+
109
+ def AddHeight(builder, height):
110
+ CameraJpegMessageAddHeight(builder, height)
111
+
112
+ def CameraJpegMessageAddJpeg(builder, jpeg):
113
+ builder.PrependUOffsetTRelativeSlot(4, flatbuffers.number_types.UOffsetTFlags.py_type(jpeg), 0)
114
+
115
+ def AddJpeg(builder, jpeg):
116
+ CameraJpegMessageAddJpeg(builder, jpeg)
117
+
118
+ def CameraJpegMessageStartJpegVector(builder, numElems):
119
+ return builder.StartVector(1, numElems, 1)
120
+
121
+ def StartJpegVector(builder, numElems):
122
+ return CameraJpegMessageStartJpegVector(builder, numElems)
123
+
124
+ def CameraJpegMessageEnd(builder):
125
+ return builder.EndObject()
126
+
127
+ def End(builder):
128
+ return CameraJpegMessageEnd(builder)
@@ -0,0 +1,30 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class DroneLinkedData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 16
15
+
16
+ # DroneLinkedData
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # DroneLinkedData
21
+ def IsLinked(self): return self._tab.Get(flatbuffers.number_types.BoolFlags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # DroneLinkedData
23
+ def TNs(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
24
+
25
+ def CreateDroneLinkedData(builder, isLinked, tNs):
26
+ builder.Prep(8, 16)
27
+ builder.PrependUint64(tNs)
28
+ builder.Pad(7)
29
+ builder.PrependBool(isLinked)
30
+ return builder.Offset()
@@ -0,0 +1,32 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class EulerAngles3D(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 12
15
+
16
+ # EulerAngles3D
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # EulerAngles3D
21
+ def Roll(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # EulerAngles3D
23
+ def Pitch(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4))
24
+ # EulerAngles3D
25
+ def Yaw(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
26
+
27
+ def CreateEulerAngles3D(builder, roll, pitch, yaw):
28
+ builder.Prep(4, 12)
29
+ builder.PrependFloat32(yaw)
30
+ builder.PrependFloat32(pitch)
31
+ builder.PrependFloat32(roll)
32
+ return builder.Offset()
@@ -0,0 +1,36 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class FlightControllerUidData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 24
15
+
16
+ # FlightControllerUidData
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # FlightControllerUidData
21
+ def Uid0(self): return self._tab.Get(flatbuffers.number_types.Uint32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # FlightControllerUidData
23
+ def Uid1(self): return self._tab.Get(flatbuffers.number_types.Uint32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(4))
24
+ # FlightControllerUidData
25
+ def Uid2(self): return self._tab.Get(flatbuffers.number_types.Uint32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
26
+ # FlightControllerUidData
27
+ def TNs(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16))
28
+
29
+ def CreateFlightControllerUidData(builder, uid0, uid1, uid2, tNs):
30
+ builder.Prep(8, 24)
31
+ builder.PrependUint64(tNs)
32
+ builder.Pad(4)
33
+ builder.PrependUint32(uid2)
34
+ builder.PrependUint32(uid1)
35
+ builder.PrependUint32(uid0)
36
+ return builder.Offset()
@@ -0,0 +1,63 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class FlightModeData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def GetRootAs(cls, buf, offset=0):
14
+ n = flatbuffers.encode.Get(flatbuffers.packer.uoffset, buf, offset)
15
+ x = FlightModeData()
16
+ x.Init(buf, n + offset)
17
+ return x
18
+
19
+ @classmethod
20
+ def GetRootAsFlightModeData(cls, buf, offset=0):
21
+ """This method is deprecated. Please switch to GetRootAs."""
22
+ return cls.GetRootAs(buf, offset)
23
+ # FlightModeData
24
+ def Init(self, buf, pos):
25
+ self._tab = flatbuffers.table.Table(buf, pos)
26
+
27
+ # FlightModeData
28
+ def FlightMode(self):
29
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(4))
30
+ if o != 0:
31
+ return self._tab.String(o + self._tab.Pos)
32
+ return None
33
+
34
+ # FlightModeData
35
+ def TNs(self):
36
+ o = flatbuffers.number_types.UOffsetTFlags.py_type(self._tab.Offset(6))
37
+ if o != 0:
38
+ return self._tab.Get(flatbuffers.number_types.Uint64Flags, o + self._tab.Pos)
39
+ return 0
40
+
41
+ def FlightModeDataStart(builder):
42
+ builder.StartObject(2)
43
+
44
+ def Start(builder):
45
+ FlightModeDataStart(builder)
46
+
47
+ def FlightModeDataAddFlightMode(builder, flightMode):
48
+ builder.PrependUOffsetTRelativeSlot(0, flatbuffers.number_types.UOffsetTFlags.py_type(flightMode), 0)
49
+
50
+ def AddFlightMode(builder, flightMode):
51
+ FlightModeDataAddFlightMode(builder, flightMode)
52
+
53
+ def FlightModeDataAddTNs(builder, tNs):
54
+ builder.PrependUint64Slot(1, tNs, 0)
55
+
56
+ def AddTNs(builder, tNs):
57
+ FlightModeDataAddTNs(builder, tNs)
58
+
59
+ def FlightModeDataEnd(builder):
60
+ return builder.EndObject()
61
+
62
+ def End(builder):
63
+ return FlightModeDataEnd(builder)
@@ -0,0 +1,45 @@
1
+ # automatically generated by the FlatBuffers compiler, do not modify
2
+
3
+ # namespace: schema
4
+
5
+ import flatbuffers
6
+ from flatbuffers.compat import import_numpy
7
+ np = import_numpy()
8
+
9
+ class GpsData(object):
10
+ __slots__ = ['_tab']
11
+
12
+ @classmethod
13
+ def SizeOf(cls):
14
+ return 40
15
+
16
+ # GpsData
17
+ def Init(self, buf, pos):
18
+ self._tab = flatbuffers.table.Table(buf, pos)
19
+
20
+ # GpsData
21
+ def Latitude(self): return self._tab.Get(flatbuffers.number_types.Float64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(0))
22
+ # GpsData
23
+ def Longitude(self): return self._tab.Get(flatbuffers.number_types.Float64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(8))
24
+ # GpsData
25
+ def GroundSpeed(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(16))
26
+ # GpsData
27
+ def GpsHeading(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(20))
28
+ # GpsData
29
+ def Altitude(self): return self._tab.Get(flatbuffers.number_types.Float32Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(24))
30
+ # GpsData
31
+ def SatellitesInUse(self): return self._tab.Get(flatbuffers.number_types.Uint8Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(28))
32
+ # GpsData
33
+ def TNs(self): return self._tab.Get(flatbuffers.number_types.Uint64Flags, self._tab.Pos + flatbuffers.number_types.UOffsetTFlags.py_type(32))
34
+
35
+ def CreateGpsData(builder, latitude, longitude, groundSpeed, gpsHeading, altitude, satellitesInUse, tNs):
36
+ builder.Prep(8, 40)
37
+ builder.PrependUint64(tNs)
38
+ builder.Pad(3)
39
+ builder.PrependUint8(satellitesInUse)
40
+ builder.PrependFloat32(altitude)
41
+ builder.PrependFloat32(gpsHeading)
42
+ builder.PrependFloat32(groundSpeed)
43
+ builder.PrependFloat64(longitude)
44
+ builder.PrependFloat64(latitude)
45
+ return builder.Offset()