in src/main.py [0:0]
def publish_message(self, publish_api, message_object, topic=None, ble_mac=None):
'''
IPC / MQTT / BLE message publisher.
publish_api: ['ipc' | 'mqtt' | 'ble']
topic: IPC or MQTT Topic, ignored if publish_api == 'ble'
ble_mac: MAC adress to publish BLE message, ignored if publish_api == 'ipc' or 'mqtt'
'''
try:
# Publish the message to the AWS Greengrass IPC or MQTT APIs
if publish_api == 'ipc':
self.ipc_topic_pubsub.publish_to_topic(topic, message_object)
elif publish_api == 'mqtt':
self.mqtt_core_pubsub.publish_to_mqtt(topic, message_object)
elif publish_api == 'ble':
self.ble_controller.publish_to_ble(ble_mac, message_object)
else:
raise Exception('Publish for unknown publish_api: {}'.format(publish_api))
except Exception as err:
msg = 'EXCEPTION: Error Publishing PUBLISH_API: {} - TOPIC: {} - MESSAGE: {} - ERROR: {}'.format(publish_api, topic, message_object, err)
log.error(msg)
self.publish_error(500, msg)