From 8060e29213f9d9c1b96e5ed8ce377137d4ab0d54 Mon Sep 17 00:00:00 2001 From: Sibidharan Nandhakumar <hello@sibidharan.me> Date: Sun, 25 Apr 2021 21:36:36 +0530 Subject: [PATCH] mqt code --- log.txt | 0 mqtt-chat-npy.py | 64 ++++++++++++++++++++++++++++++++++++++++++++++++ mqtt_basics.py | 4 +-- 3 files changed, 66 insertions(+), 2 deletions(-) create mode 100755 log.txt create mode 100755 mqtt-chat-npy.py diff --git a/log.txt b/log.txt new file mode 100755 index 0000000..e69de29 diff --git a/mqtt-chat-npy.py b/mqtt-chat-npy.py new file mode 100755 index 0000000..9e3c2bf --- /dev/null +++ b/mqtt-chat-npy.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python3 + +import paho.mqtt.client as mqtt +from threading import Thread +import npyscreen + +HOST = 'broker.hivemq.com' +PORT = 1883 +TIMEOUT = 60 +f = None +TOPIC = 'lahtp-sockets-group' + +class SubThread(Thread): + def __init__(self): + Thread.__init__(self) + +class ChatForm(npyscreen.SplitForm, npyscreen.ActionForm): + def create(self): + client.connect(HOST, PORT, TIMEOUT) + self.draw_line_at = 18 + self.MOVE_LINE_ON_RESIZE = True + self.chat_screen = self.add(npyscreen.MultiLine, name="MultiLineChatScreen", height=18) + self.chat_screen.display() + self.message_field = self.add(npyscreen.TitleText, name="Send: ", editable=True) + + def on_ok(self): + #npyscreen.notify_confirm(self.message_field.value) + client.publish(TOPIC, self.message_field.value) + self.message_field.value = "" + + + + def on_cancel(self): + exit(0) + + def add_msg(message): + if(self.chat_screen.value is None): + self.chat_screen.value = message + else: + self.chat_screen.value = self.chat_screen.value + "\n" + message + self.chat_screen.display() + +def on_connect(client, userdata, flags, rc): + npyscreen.notify("Connection Established", title="Info") + +def on_message(client, userdata, message): + f = open("log.txt", "a") + f.write(message.payload) + #npyscreen.notify(message, title="New Message") + if f is not None: + f.add_msg(message.payload) + +class App(npyscreen.NPSAppManaged): + def onStart(self): + f = self.addForm("MAIN", ChatForm) + + +if __name__=="__main__": + client = mqtt.Client() + client.on_connect = on_connect + client.on_message = on_message + #f.chat_screen.value = "Welcome.\n" + app = App() + app.run() \ No newline at end of file diff --git a/mqtt_basics.py b/mqtt_basics.py index b52e533..eb8b87a 100644 --- a/mqtt_basics.py +++ b/mqtt_basics.py @@ -11,11 +11,11 @@ def on_message(client, userdata, message): def on_connect(client, userdata, flags, rc): print("Connected.") - client.subscribe('lahtp') + client.subscribe('lahtp-sockets-group') client = mqtt.Client() client.on_message = on_message client.on_connect = on_connect client.connect(HOST, PORT, TIMEOUT) -client.loop_forever() \ No newline at end of file +client.loop_forever() -- GitLab