|
|
|
|
@ -54,7 +54,8 @@ class Proto_msg_from_ros:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Json_msg_from_ros:
|
|
|
|
|
data = {}
|
|
|
|
|
GPS_Data = {}
|
|
|
|
|
Formation_Data = {}
|
|
|
|
|
client = None
|
|
|
|
|
#Mqtt
|
|
|
|
|
Flight_Information_topicToMqtt = None
|
|
|
|
|
@ -82,26 +83,26 @@ class Json_msg_from_ros:
|
|
|
|
|
lon=int(GPS.longitude*10000000)
|
|
|
|
|
alt=int(GPS.altitude*100)
|
|
|
|
|
dataGpsUpdate = {"lat": lat, "lon": lon, "alt": alt}
|
|
|
|
|
cls.data.update(dataGpsUpdate)
|
|
|
|
|
cls.GPS_Data.update(dataGpsUpdate)
|
|
|
|
|
# dataJsonFormate = orjson.dumps(data)
|
|
|
|
|
# mqtt_Pub(message=dataJsonFormate)
|
|
|
|
|
# print ('lat:'+lat+'\n'+'lon:'+lon+'\n')
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def callBack_state(cls, state):
|
|
|
|
|
mode = state.mode
|
|
|
|
|
dataGpsUpdate = {"mode": mode}
|
|
|
|
|
cls.data.update(dataGpsUpdate)
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def callBack_compass_hdg(cls, Compass):
|
|
|
|
|
heading = int(Compass.data*100)
|
|
|
|
|
dataGpsUpdate = {"heading": heading}
|
|
|
|
|
cls.data.update(dataGpsUpdate)
|
|
|
|
|
dataJsonFormate = orjson.dumps(cls.data).decode("UTF-8")
|
|
|
|
|
cls.GPS_Data.update(dataGpsUpdate)
|
|
|
|
|
dataJsonFormate = orjson.dumps(cls.GPS_Data)
|
|
|
|
|
cls.mqtt_Pub(message=dataJsonFormate, topics=cls.Flight_Information_topicToMqtt)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def callBack_fly_formation(cls, Formation):
|
|
|
|
|
Formation_data = {"velocity": Formation.velocity, "type": Formation.type}
|
|
|
|
|
flyFormationMsg = orjson.dumps(Formation_data)
|
|
|
|
|
cls.mqtt_Pub(message=flyFormationMsg, topics=cls.Fly_Formation_topicToMqtt, qos=cls.Fly_Formation_topicToMqtt_QOS)
|
|
|
|
|
|
|
|
|
|
@classmethod
|
|
|
|
|
def mqtt_Pub(cls, message:str, topics:str, waitForAck:bool=False, qos:int=0):
|
|
|
|
|
mid = cls.client.publish(topics, message, qos)[1]
|
|
|
|
|
|