Ejemplo n.º 1
0
def loop():
    global CURRENT_DAY
    global CURRENT_MON
    global CURRENT_HOUR
    global CROP
    global SYSTEM_CONTROLLER
    global SOIL_HUMIDITY
    global CURRENT_TEMPERATURE
    global IS_RAINING
    global CURRENT_ILLUMINATION
    global READINGS_DELAY
    global DEBUG
    global DEBUG_DAY
    global DEBUG_MONTH
    global DEBUG_HOUR
    global SYSTEM_OVERRIDE
    global CURRENT_CROP_REPORT
    global CURRENT_SYSTEM_REPORT
    global UPDATE_SYSTEM

    while True:
        if read_rain():
            UPDATE_SYSTEM = True
        if read_temperature():
            UPDATE_SYSTEM = True
        if read_soil_humiture():
            UPDATE_SYSTEM = True
        if read_illumination():
            UPDATE_SYSTEM = True

        if UPDATE_SYSTEM:
            print_line('UPDATING SYSTEM')
            CURRENT_DAY = datetime.datetime.today().day
            CURRENT_MON = datetime.datetime.today().month
            CURRENT_HOUR = datetime.datetime.today().hour

            # Overriding date/time if debugging
            if DEBUG:
                override_debug_values()
                if DEBUG_DAY is not False:
                    CURRENT_DAY = DEBUG_DAY
                    print_line('DEBUGGING WITH DAY AS: ' + str(CURRENT_DAY))
                if DEBUG_MONTH is not False:
                    CURRENT_MON = DEBUG_MONTH
                    print_line('DEBUGGING WITH MONTH AS: ' + str(CURRENT_MON))
                if DEBUG_HOUR is not False:
                    CURRENT_HOUR = DEBUG_HOUR
                    print_line('DEBUGGING WITH HOUR AS: ' + str(CURRENT_HOUR))

            report = Report(SOIL_HUMIDITY, CURRENT_TEMPERATURE, IS_RAINING,
                            CURRENT_ILLUMINATION)
            report.build_crop_status(CROP, CURRENT_MON, CURRENT_DAY,
                                     CURRENT_HOUR)
            crop_report = report.get()
            update_status = SYSTEM_CONTROLLER.update_status(crop_report,
                                                            SYSTEM_OVERRIDE)

            CURRENT_CROP_REPORT = build_crop_report(crop_report)

            CURRENT_SYSTEM_REPORT = ''
            for status in update_status:
                print_line(' .' + status)
                CURRENT_SYSTEM_REPORT += ' .' + status + '\n'

            UPDATE_SYSTEM = False
        time.sleep(READINGS_DELAY)