refactore comm module
This commit is contained in:
parent
22cd563d42
commit
a07d62de10
@ -0,0 +1,54 @@
|
|||||||
|
'''
|
||||||
|
Created on Dec 19, 2016
|
||||||
|
|
||||||
|
@author: klaehn
|
||||||
|
'''
|
||||||
|
import paho.mqtt.client as mqtt_client
|
||||||
|
|
||||||
|
class Mqtt(object):
|
||||||
|
''' Wrapper class for mqtt communication '''
|
||||||
|
def __init__(self, hostname, port=1883, keepalive=60, qos=2, retain=True):
|
||||||
|
#pylint: disable=too-many-arguments
|
||||||
|
self.__hostname = hostname
|
||||||
|
self.__port = port
|
||||||
|
self.__keepalive = keepalive
|
||||||
|
self.__client = mqtt_client.Client()
|
||||||
|
self.__is_connected = False
|
||||||
|
self.__qos = qos
|
||||||
|
self.__retain = retain
|
||||||
|
|
||||||
|
def connect(self):
|
||||||
|
''' Connect to mqtt broker '''
|
||||||
|
if not self.__is_connected:
|
||||||
|
res = self.__client.connect(self.__hostname, self.__port, \
|
||||||
|
self.__keepalive)
|
||||||
|
if res != mqtt_client.MQTT_ERR_SUCCESS:
|
||||||
|
return False
|
||||||
|
res = self.__client.loop_start()
|
||||||
|
if res != mqtt_client.MQTT_ERR_SUCCESS:
|
||||||
|
return False
|
||||||
|
self.__is_connected = True
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def disconnect(self):
|
||||||
|
''' Disconnect from mqtt broker '''
|
||||||
|
if self.__is_connected:
|
||||||
|
self.__client.loop_stop()
|
||||||
|
self.__client.disconnect()
|
||||||
|
self.__is_connected = False
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
def transmit(self, topic, payload):
|
||||||
|
''' Transmit to subscriber via broker'''
|
||||||
|
was_connected = True
|
||||||
|
if not self.__is_connected:
|
||||||
|
was_connected = False
|
||||||
|
self.connect()
|
||||||
|
result = self.__client.publish(topic, payload, self.__qos, self.__retain)
|
||||||
|
if not was_connected:
|
||||||
|
self.disconnect()
|
||||||
|
if result == 0:
|
||||||
|
return True
|
||||||
|
return False
|
@ -1,43 +0,0 @@
|
|||||||
import paho.mqtt.client as mqtt_client
|
|
||||||
|
|
||||||
class mqtt:
|
|
||||||
def __init__(self, hostname, port=1883, keepalive=60, qos=2, retain=True):
|
|
||||||
self.__hostname = hostname
|
|
||||||
self.__port = port
|
|
||||||
self.__keepalive = keepalive
|
|
||||||
self.__client = mqtt_client.Client()
|
|
||||||
self.__is_connected = False
|
|
||||||
self.__qos = qos
|
|
||||||
self.__retain = retain
|
|
||||||
|
|
||||||
def __on_connect(self, client, data, flags, result):
|
|
||||||
print "Connected: " + str(result)
|
|
||||||
|
|
||||||
def connect(self):
|
|
||||||
if not self.__is_connected:
|
|
||||||
self.__client.on_connect = self.__on_connect
|
|
||||||
self.__client.connect(self.__hostname, self.__port, self.__keepalive)
|
|
||||||
self.__client.loop_start()
|
|
||||||
self.__is_connected = True
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def disconnect(self):
|
|
||||||
if self.__is_connected:
|
|
||||||
self.__client.loop_stop()
|
|
||||||
self.__client.disconnect()
|
|
||||||
self.__is_connected = False
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
def transmit(self, topic, payload):
|
|
||||||
was_connected = True
|
|
||||||
if not self.__is_connected:
|
|
||||||
was_connected = False
|
|
||||||
self.connect()
|
|
||||||
result = self.__client.publish(topic, payload, self.__qos, self.__retain)
|
|
||||||
if not was_connected:
|
|
||||||
self.disconnect()
|
|
||||||
if result == 0:
|
|
||||||
return True
|
|
||||||
return False
|
|
@ -4,7 +4,7 @@ Created on Dec 19, 2016
|
|||||||
@author: klaehn
|
@author: klaehn
|
||||||
'''
|
'''
|
||||||
from time import time, sleep
|
from time import time, sleep
|
||||||
from communiate.protocol import mqtt
|
from communiate import Mqtt
|
||||||
from data_buffer import DataBuffer
|
from data_buffer import DataBuffer
|
||||||
from light_sensor.light_sensor import light_sensor
|
from light_sensor.light_sensor import light_sensor
|
||||||
from gate.gate_handler import GateHandler
|
from gate.gate_handler import GateHandler
|
||||||
@ -49,7 +49,7 @@ class GateState(object):
|
|||||||
self.__light_sensor = light_sensor(LIGHT_SENSOR_I2C_BUS, \
|
self.__light_sensor = light_sensor(LIGHT_SENSOR_I2C_BUS, \
|
||||||
LIGHT_SENSOR_I2C_ADDRESS)
|
LIGHT_SENSOR_I2C_ADDRESS)
|
||||||
self.__light_data = DataBuffer(LIGHT_CONSECUTIVE_READS)
|
self.__light_data = DataBuffer(LIGHT_CONSECUTIVE_READS)
|
||||||
self.__comserver = mqtt(MQTT_HOST)
|
self.__comserver = Mqtt(MQTT_HOST)
|
||||||
self.__gate_handler = GateHandler()
|
self.__gate_handler = GateHandler()
|
||||||
self.__power_sensor = PowerSensor(POWER_SENSOR_I2C_BUS, \
|
self.__power_sensor = PowerSensor(POWER_SENSOR_I2C_BUS, \
|
||||||
POWER_SENSOR_I2C_ADDRESS)
|
POWER_SENSOR_I2C_ADDRESS)
|
||||||
|
Loading…
Reference in New Issue
Block a user