コード例 #1
0
class InstantAction:

    logMessage = ''
    const = ''
    sim = ''
    messages = ''
    messageFilter = ''
    processConfigFile = ''
    processSensorData = ''

    def __init__(self):
        self.logMessage = LogMessage()
        self.const = Constant()
        self.sim = SIMOperations()
        self.messages = Message()
        self.processConfigFile = ProcessConfigFile()
        self.processSensorData = ProcessSensorReading()
        self.messageFilter = MessageFilter()

    def run(self):
        try:
            if self.processConfigFile.checkValuesInConfigFile():
                if self.sim.checkSIMCard():
                    while True:
                        messages = self.sim.readUnreadMessages()
                        if self.messageFilter.readCheckBalance(messages):
                            self.sim.sendSMSCheckBalance()
                            time.sleep(30)
                            lastReadMessage = self.sim.readFirstUnreadMessages(
                            )
                            message = self.messageFilter.readBalanceMessage(
                                lastReadMessage)
                            self.sim.sendSMS(message)
                            time.sleep(5)
                            self.sim.deleteReadMessages()
                        elif self.messageFilter.readUsedWater(messages):
                            # get used water
                            waterFlow = self.processSensorData.getWaterUsed()
                            currentDate = time.strftime("%d.%m.%Y,%H:%M")
                            message = 'Dear Digital Farmer, Water used is %s litres as of %s' % (
                                str(waterFlow), str(currentDate))
                            self.sim.sendSMS(message)
                            time.sleep(5)
                            self.sim.deleteReadMessages()
                else:
                    self.logMessage.log(
                        'No SIM Card detected - Instant Action')
                    self.run()
            else:
                self.logMessage.log(
                    'Invalid configuration data / No file found - Instant Action'
                )
                self.run()
        except:
            self.logMessage.log('Error in Instant Action')
            time.sleep(60)
            self.run()
コード例 #2
0
class InstantAction:

    logMessage = ''
    const = ''
    sim = ''
    messages = ''
    messageFilter = ''
    processConfigFile = ''
    processSensorData = ''

    def __init__(self):
        self.logMessage = LogMessage()
        self.const = Constant()
        self.sim = SIMOperations()
        self.messages = Message()
        self.processConfigFile = ProcessConfigFile()
        self.processSensorData = ProcessSensorReading()
        self.messageFilter = MessageFilter()

    def run(self):
        try:
            if self.processConfigFile.checkValuesInConfigFile():
                if self.sim.checkSIMCard():
                    while True:
                        messages = self.sim.readUnreadMessages()
                        if self.messageFilter.readCheckBalance(messages):
                            self.sim.sendSMSCheckBalance()
                            time.sleep(30)
                            lastReadMessage = self.sim.readFirstUnreadMessages()
                            message = self.messageFilter.readBalanceMessage(lastReadMessage)
                            self.sim.sendSMS(message)
                            time.sleep(5)
                            self.sim.deleteReadMessages()
                        elif self.messageFilter.readUsedWater(messages):
                            # get used water
                            waterFlow = self.processSensorData.getWaterUsed()
                            currentDate = time.strftime("%d.%m.%Y,%H:%M")
                            message = 'Dear Digital Farmer, Water used is %s litres as of %s' % (str(waterFlow), str(currentDate))
                            self.sim.sendSMS(message)
                            time.sleep(5)
                            self.sim.deleteReadMessages()
                else:
                    self.logMessage.log('No SIM Card detected - Instant Action')
                    self.run()
            else:
                self.logMessage.log('Invalid configuration data / No file found - Instant Action')
                self.run()
        except:
            self.logMessage.log('Error in Instant Action')
            time.sleep(60)
            self.run()