99from ..common .modules import position_local
1010from ..common .modules .logger import logger
1111from ..common .modules .data_encoding import message_encoding_decoding
12+ from ..common .modules .data_encoding import metadata_encoding_decoding
1213from ..common .modules .data_encoding import worker_enum
1314from ..common .modules .mavlink import local_global_conversion
1415
@@ -53,7 +54,7 @@ def __init__(
5354 def run (
5455 self ,
5556 objects_in_world : list [object_in_world .ObjectInWorld ],
56- ) -> tuple [True , list [bytes ]] | tuple [False , None ]:
57+ ) -> tuple [True , list [bytes ], bytes ] | tuple [False , None , None ]:
5758
5859 objects_in_world_global = []
5960 for object_in_world in objects_in_world :
@@ -71,7 +72,7 @@ def run(
7172 self .__logger .warning (
7273 f"Could not convert ObjectInWorld to PositionLocal:\n object in world: { object_in_world } "
7374 )
74- return False , None
75+ return False , None , None
7576
7677 result , object_in_world_global = (
7778 local_global_conversion .position_global_from_position_local (
@@ -83,7 +84,7 @@ def run(
8384 self .__logger .warning (
8485 f"position_global_from_position_local conversion failed:\n home_position: { self .__home_position } \n object_position_local: { object_position_local } "
8586 )
86- return False , None
87+ return False , None , None
8788
8889 objects_in_world_global .append (object_in_world_global )
8990
@@ -97,8 +98,15 @@ def run(
9798 )
9899 if not result :
99100 self .__logger .warning ("Conversion from PositionGlobal to bytes failed" , True )
100- return False , None
101+ return False , None , None
101102
102103 encoded_position_global_objects .append (message )
103104
104- return True , encoded_position_global_objects
105+ result , metadata = metadata_encoding_decoding .encode_metadata (
106+ worker_enum .WorkerEnum .COMMUNICATIONS_WORKER , len (encoded_position_global_objects )
107+ )
108+ if not result :
109+ self .__logger .error ("Failed to encode metadata" , True )
110+ return False , None , None
111+
112+ return True , encoded_position_global_objects , metadata
0 commit comments