Пример #1
0
class SensorAgent:

    s = None
    do2Sensor = None
    ecSensor = None
    moistureSensor = None

    def __init__(self):
        self.do2Sensor = DO2Sensor()
        self.ecSensor = ECSensor()
        self.moistureSensor = MoistureSensor()

    def connectToServer(self):
        self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        print("Socket created.")

        while True:
            try:
                self.s.connect((HOST, PORT))
                break
            except socket.error as msg:
                print("Socket connection failed. Error Code : " + str(msg[0]) +
                      " Message " + msg[1])
                time.sleep(CONNECT_RETRY_INTERVAL)

        print("Socket connection succeeded.")

    def close(self):
        self.s.close()

    def sendMessage(self, measureName, value):
        timeStr = datetime.datetime.utcnow().isoformat()
        JSONdB = "{\"value\":" + value + ",\"guid\":\"" + GUID + "\",\"organization\":\"" + Org + "\",\"displayname\":\"" + Disp + "\",\"unitofmeasure\":\"" + UnitsMap[
            measureName] + "\",\"measurename\":\"" + measureName + "\",\"location\":\"" + Locn + "\",\"timecreated\":\"" + timeStr + "\"}"
        if self.s != None:
            self.s.send("<" + JSONdB + ">")
            # sends to gateway over socket interface
        print(JSONdB)  # print only for debugging purposes

    def processSensorData(self):
        DO2Sample = self.do2Sensor.GetDataSample()
        DO2Parsed = re.findall(r"([0-9]+\.[0-9]+)", DO2Sample)
        if DO2Parsed:
            self.sendMessage('Dissolved Oxygen', DO2Parsed[1])

        ECSample = self.ecSensor.query("R")
        print(ECSample)
        ECParsed = re.match(
            "Command success:([0-9]+\.*[0-9]*),([0-9]+\.*[0-9]*),([0-9]+\.*[0-9]*),([0-9]+\.*[0-9]*)",
            ECSample)
        if ECParsed:
            self.sendMessage('Conductivity', ECParsed.group(1))
            self.sendMessage('TDS', ECParsed.group(2))
            self.sendMessage('Salinity', ECParsed.group(3))
            self.sendMessage('Specific Gravity', ECParsed.group(4))

        MoistureSample = self.moistureSensor.GetDataSample()
        self.sendMessage('Moisture', str(MoistureSample))
Пример #2
0
class SensorAgent:

    s = None
    do2Sensor = None
    ecSensor = None
    moistureSensor = None

    def __init__(self) :
        self.do2Sensor = DO2Sensor()
        self.ecSensor = ECSensor()
        self.moistureSensor = MoistureSensor()

    def connectToServer(self) :
        self.s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        print("Socket created.")

        while True:
            try:
                self.s.connect((HOST, PORT))
                break
            except socket.error as msg:
                print("Socket connection failed. Error Code : " + str(msg[0]) + " Message " + msg[1])
                time.sleep(CONNECT_RETRY_INTERVAL)

        print ("Socket connection succeeded.")

    def close(self) :
        self.s.close()

    def sendMessage(self, measureName, value) :
        timeStr = datetime.datetime.utcnow().isoformat()
        JSONdB = "{\"value\":" + value + ",\"guid\":\"" + GUID + "\",\"organization\":\"" + Org + "\",\"displayname\":\"" + Disp + "\",\"unitofmeasure\":\"" + UnitsMap[measureName] + "\",\"measurename\":\"" + measureName + "\",\"location\":\"" + Locn + "\",\"timecreated\":\"" + timeStr + "\"}"
        if self.s != None :
            self.s.send("<" + JSONdB + ">")         # sends to gateway over socket interface
        print(JSONdB)                               # print only for debugging purposes

    def processSensorData(self) :
        DO2Sample = self.do2Sensor.GetDataSample()
        DO2Parsed = re.findall(r"([0-9]+\.[0-9]+)",DO2Sample)
        if DO2Parsed:
            self.sendMessage('Dissolved Oxygen', DO2Parsed[1])

        ECSample = self.ecSensor.query("R")
        print(ECSample)
        ECParsed = re.match("Command success:([0-9]+\.*[0-9]*),([0-9]+\.*[0-9]*),([0-9]+\.*[0-9]*),([0-9]+\.*[0-9]*)",ECSample)
        if ECParsed :
            self.sendMessage('Conductivity',    ECParsed.group(1))
            self.sendMessage('TDS',             ECParsed.group(2))
            self.sendMessage('Salinity',        ECParsed.group(3))
            self.sendMessage('Specific Gravity',ECParsed.group(4))

        MoistureSample = self.moistureSensor.GetDataSample()
        self.sendMessage('Moisture', str(MoistureSample))
Пример #3
0
 def __init__(self) :
     self.do2Sensor = DO2Sensor()
     self.ecSensor = ECSensor()
     self.moistureSensor = MoistureSensor()