Esempio n. 1
0
class SensorDataManager(threading.Thread):    
    '''
    * Default Constructor
    '''   

    def __init__(self):
        threading.Thread.__init__(self)    
        time.sleep(1)
        self.alo = ActuatorDataListener()
        self.alo.start()
        
    '''
    * Runnable thread,to perform actuation
    '''

    def run(self):    
      
        while(True):
            if (self.alo.on_Actuator_Message() is True):
                maa = MultiActuatorAdaptor()
                maa.temp_act(self.alo.get_alo_object().sensor_value)
            else:
                continue
            time.sleep(5)
        
    '''
    * Function to create instance of MultiActuatorAdaptor class 
    '''

    def trigger_actuation(self):
            self.maa = MultiActuatorAdaptor()        

    '''
    * Standard getter function
    * Output: MultiActuatorAdaptor(object)
    '''

    def get_maaadaptor(self):   
            return self.maa 

    '''
    * Function to handle sensor data, so as to activate actuator
    * Input: SensorData(Object) 
    * Output: True or False (Boolean)
    '''    

    def handle_sensordata(self, invalue):
        self.x = invalue
        if(self.x.getActuationStae() is True):
            return True    
        if(self.x.getActuationStae() is False):
            return False

    def get_alo(self):    
        return self.alo
class PersistenceUtil(object):

    #Default Constructor
    def __init__(self):
        self.dataUtil = DataUtil()
        self.redis_connection = redis.Redis(host='localhost', port=6379)
        self.actuatorDataListener = ActuatorDataListener()
        self.sensorDataListener = SensorDataListener()

    '''
    Write the actutorData to the DBMS 
    '''

    def readActuatorDataToDbms(self):
        redis_subscribe = self.redis_connection().pubsub()
        actuatorData_subscribe = redis_subscribe.subscribe("ActuatorData")
        redis_message = redis_subscribe.getMessage()
        self.registerActuatorDatatoDbmsListener()
        return

    ''' Method to write SensorData to DBMS'''

    def writeSensorDataToDbms(self, sensorData):
        json_sensorData = self.dataUtil.toJsonFromSensorData(sensorData)
        self.redis_connection.pubsub()
        self.redis_connection.publish("SensorData", json_sensorData)
        self.registerSensorDataToDbmsListener()
        return

    def registerSensorDataToDbmsListener(self):
        self.sensorDataListener.OnMessage()

    def registerActuatorDataToDbmsListener(self):
        self.actuatorDataListener.OnMessage()
 def registerActuatorDataDbmsListener(self,ActuatorDataListener):
     db = redis.StrictRedis(host=self.host, port=self.port, password=self.auth, decode_responses=True)
     dbs = db.pubsub()
     dbs.subscribe("Actuator")
     #logging.info("Waiting for message")
     for new_message in dbs.listen():
         adj = db.get(new_message['data'])
         #logging.info("Received new message" + str(new_message['data']))
         if(new_message['data']!=1):
             logging.info("New Actuator Reading Received with ID \n" + str(new_message['data']))
             #logging.info("New Actuator Data Received - " + adj )
             sleep(.5)
             jdata = db.get(new_message['data'])
             logging.info("data - >"+jdata)
             ad = DataUtil.toActuatorDataFromJson(self, jdata)
             ActuatorDataListener.onActuatorMessage(ad)
     return True
Esempio n. 4
0
    def registerActuatorDataDbmsListener(self) -> bool:

        #try registering to actuatorDataListener
        try:

            #initialize ActuatorDataListener and send current reference to redis
            actuatorDataListener = ActuatorDataListener(self.r_actuator)

            #start the thread
            actuatorDataListener.start()

        #if caused an exception
        except Exception as e:

            print(e)

            #return false
            return False

        #if ran successfully
        return True
Esempio n. 5
0
 def __init__(self):
     threading.Thread.__init__(self)
     time.sleep(1)
     self.alo = ActuatorDataListener()
     self.alo.start()
 def __init__(self):
     self.dataUtil = DataUtil()
     self.redis_connection = redis.Redis(host='localhost', port=6379)
     self.actuatorDataListener = ActuatorDataListener()
     self.sensorDataListener = SensorDataListener()
Esempio n. 7
0
Created on Feb 5, 2020 

@author: sk199
'''
import logging
from time import sleep
from labs.module05.MultiSensorAdaptor import MultiSensorAdaptor

from labs.common.ActuatorDataListener import ActuatorDataListener

#from labs.common.SensorDataListener import SensorDataListener

logging.getLogger().setLevel(logging.INFO)
logging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s',
                    level=logging.DEBUG)
logging.info("Starting temperature sensor adaptor daemon thread...")

multisensoradaptor = MultiSensorAdaptor()
multisensoradaptor.enableTempSensor = True
multisensoradaptor.enableHumidSensor = False
multisensoradaptor.enableHI2CSensor = False
multisensoradaptor.start()
#sensordatalistener = SensorDataListener()
actuatordatalistener = ActuatorDataListener()

while (True):
    #sensordatalistener.listener()
    actuatordatalistener.listener()
    sleep(10)
    pass