From 643d42aed98c3c6800715c44d91f237a6ae8eb06 Mon Sep 17 00:00:00 2001 From: Bob Jacobsen Date: Tue, 4 Aug 2020 07:37:50 -0700 Subject: [PATCH] sample script, service metjod, public access --- java/src/jmri/jmrix/mqtt/MqttAdapter.java | 4 ++++ .../jmrix/mqtt/MqttSystemConnectionMemo.java | 2 +- jython/SendMqttMessage.py | 22 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 jython/SendMqttMessage.py diff --git a/java/src/jmri/jmrix/mqtt/MqttAdapter.java b/java/src/jmri/jmrix/mqtt/MqttAdapter.java index 99665e52b88..32372e58e84 100644 --- a/java/src/jmri/jmrix/mqtt/MqttAdapter.java +++ b/java/src/jmri/jmrix/mqtt/MqttAdapter.java @@ -143,6 +143,10 @@ public void publish(String topic, byte[] payload) { } } + public void publish(String topic, String payload) { + publish(topic, payload.getBytes()); + } + public MqttClient getMQttClient() { return (mqttClient); } diff --git a/java/src/jmri/jmrix/mqtt/MqttSystemConnectionMemo.java b/java/src/jmri/jmrix/mqtt/MqttSystemConnectionMemo.java index c917b2d70ce..39248aea4e8 100644 --- a/java/src/jmri/jmrix/mqtt/MqttSystemConnectionMemo.java +++ b/java/src/jmri/jmrix/mqtt/MqttSystemConnectionMemo.java @@ -62,7 +62,7 @@ void setMqttAdapter(MqttAdapter ma) { mqttAdapter = ma; } - MqttAdapter getMqttAdapter() { + public MqttAdapter getMqttAdapter() { return mqttAdapter; } } diff --git a/jython/SendMqttMessage.py b/jython/SendMqttMessage.py new file mode 100644 index 00000000000..4aa403dde34 --- /dev/null +++ b/jython/SendMqttMessage.py @@ -0,0 +1,22 @@ +# Example of how to define how to send an arbitrary Mqtt message +# +# To see the result e.g. (your broker and channel may vary) +# mosquitto_sub -v -h 'test.mosquitto.org' -t '/trains/#' +# +# Author: Bob Jacobsen, copyright 2020 + +import jmri +import java +import jarray +from org.python.core.util import StringUtil + +# Find the MqttAdapter +mqqtAdapter = jmri.InstanceManager.getDefault( jmri.jmrix.mqtt.MqttSystemConnectionMemo ).getMqttAdapter() + + +# create some content +topic = "jmri/test/topic" # note this will be prefixed by configured channel, i.e. "/trains/" +payload = "message content" + +# send +mqqtAdapter.publish(topic, payload)