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))
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))
def __init__(self) : self.do2Sensor = DO2Sensor() self.ecSensor = ECSensor() self.moistureSensor = MoistureSensor()