Commit 71ad0e1a by Alfonso Manuel

Initial commit MQTT

parent 916c040a
from enum import Enum
class Bloque(Enum):
Edificio = 0
Calle_Izquierda_Derecha = 1
Calle_Arriba_Abajo = 2
Calle_Arriba_Derecha = 3
Calle_Derecha_Abajo = 4
Calle_Abajo_Izquierda = 5
Calle_Izquierda_Arriba = 6
Calle_Izquierda_Arriba_Derecha = 7
Calle_Arriba_Derecha_Abajo = 8
Calle_Derecha_Abajo_Izquierda = 9
Calle_Abajo_Izquierda_Arriba = 10
Calle_Arriba_Derecha_Abajo_Izquierda = 11
class Casilla:
def __init__(self,x,y,codigo_bloque):
self.x = x
self.y = y
self.bloque = Bloque(codigo_bloque)
def __str__(self):
return f'x : {self.x} | y : {self.y} | {self.bloque}'
\ No newline at end of file
import paho.mqtt.client as mqtt
class Conexion:
def __init__(self, on_msg):
# Configuración del broker MQTT
self.__broker_address = "192.168.0.19" # Cambia por la dirección de tu broker MQTT
#self.__broker_address = "192.168.0.100" # Cambia por la dirección de tu broker MQTT
self.__port = 1883 # Puerto predeterminado para MQTT
self.__topic = ["A3-467/GrupoL","map"]
#def on_message(client, userdata, message):
# print("message received " ,str(message.payload.decode("utf-8")))
# print("message topic=",message.topic)
# print("message qos=",message.qos)
# print("message retain flag=",message.retain)
# #self.__listaPendientes.append(f'{message.topic}-{message.payload.decode("utf-8")}')
########################################
#broker_address="192.168.0.19"
#broker_address="iot.eclipse.org"
print("creating new instance")
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
#client.on_message = on_message
#client.on_message=on_message #attach function to callback
client.on_message = on_msg
print("connecting to broker")
client.connect(self.__broker_address,self.__port) #connect to broker
client.loop_start() #start the loop
for tp in self.__topic:
client.subscribe(tp)
print(f" Subscrito a {tp}")
#self.__client = self.__connect_mqtt()
#self.inicializar()
#self.__client.loop_start()
#self.subscribe(cliente=client,topic=self.__topic)
self.__client = client
print("Inicializado")
#self.__listaPendientes = listaPendientes
#self.__client.loop_forever()
def publicar(self,msg):
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.connect(self.__broker_address, self.__port)
result = client.publish(self.__topic[0],msg)
client.disconnect()
#result = self.__client.publish(self.__topic[0],msg)
# result: [0, 1]
status = result[0]
if status == 0:
print(f"Send `{msg}` to topic `{self.__topic[0]}`")
else:
print(f"Failed to send message to topic {self.__topic[0]}")
def desconectar(self):
self.__client.loop_stop()
self.__client.disconnect()
print("Desconectado")
# Función para enviar mensajes MQTT al broker
def send_mqtt_message( message,topic="A3-467/GrupoL"):
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
client.connect("192.168.0.19" , 1883)
client.publish(topic, message)
client.disconnect()
# def publish(client):
# msg_count = 1
# while True:
# #time.sleep(1)
# msg = f"messages: {msg_count}"
# result = client.publish(topic, msg)
# # result: [0, 1]
# status = result[0]
# if status == 0:
# print(f"Send `{msg}` to topic `{topic}`")
# else:
# print(f"Failed to send message to topic {topic}")
# msg_count += 1
# if msg_count > 5:
# break
#def __subscribe(client: mqtt, topic):
#def run():
# client = connect_mqtt()
# client.loop_start()
# publish(client)
# client.loop_stop()
#def run():
# client = connect_mqtt()
# subscribe(client)
# client.loop_forever()
import conexion as cn
import time
import casilla as cs
separadorTopic = "-"
mapa = []
def leerMapa(msg : str):
fila = 0
columna = 0
inicioPar = True
cas = ""
for c in msg:
cas = cas + c
if(not inicioPar):
mapa.append(cs.Casilla(fila,columna,int(cas)))
if(columna+1 == 5):
fila = fila+1
columna = 0
else:
columna = columna+1
cas = ""
inicioPar = not inicioPar
for casi in mapa:
print(casi)
lista = []
def on_message(client, userdata, message):
if(message.topic == "map"):
leerMapa(str(message.payload.decode("utf-8")))
lista.append(f'{message.topic}{separadorTopic}{str(message.payload.decode("utf-8"))}')
conex = cn.Conexion(on_msg=on_message)
time.sleep(3)
finished = False
while(not finished):
if(len(lista) != 0):
msg = lista.pop()
print(msg)
#finished = True
time.sleep(1)
conex.desconectar()
\ No newline at end of file
import conexion as cn
import time
lista = []
def on_message(client, userdata, message):
lista.append(f'{message.topic}-{str(message.payload.decode("utf-8"))}')
conex = cn.Conexion(on_msg=on_message)
time.sleep(3)
mapa = "0202000105030705000200041109060110031000000200080101100110000106010701"
finished = False
while(not finished):
if(len(lista) != 0):
msg = lista.pop()
print(msg)
#finished = True
time.sleep(1)
conex.desconectar()
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment