Esempio n. 1
0
def main():
    calibration = SensorCalibration(offline_offset=0.1,
                                    gradient=238.0564729962321,
                                    offset=-76.87816904684377)
    sensor = SoilMoistureSensor(channel=0, device=1, calibration=calibration)
    pump = Pump(gpio=23)
    prometheus = PrometheusClient()
    prometheus.start_server()

    while True:
        humidity = min(max(sensor.read(), 0), 100)
        prometheus.update_humidity(humidity)
        if humidity <= HUMIDITY_TO_START_PUMP:
            pump.start()
            prometheus.update_pump_state(True)
        elif humidity >= HUMIDITY_TO_STOP_PUMP:
            pump.stop()
            prometheus.update_pump_state(False)
Esempio n. 2
0
    def run(self):
        #lcd = LCD()
        print('Starting client thread')
        print(self.buf)
        pumpslist = self.buf.split('XX')
        #lcd.lcd_string("Service en cours", 0x80)
        #lcd.lcd_string(" -- Sheitan -- ", 0xC0)
        del pumpslist[0]

        for x in pumpslist:
            pumpname = x.split('-')[0]
            value = int(x.split('-')[1])
            if (pumpname == "pump1"):
                pump = Pump("Pump1", self.pins[0], self.basesleeptime[0],
                            value)
                pump.start()
            elif (pumpname == "pump2"):
                print(self.buf, "yoyo")
                pump = Pump("Pump2", self.pins[1], self.basesleeptime[1],
                            value)
                pump.start()
            elif (pumpname == "pump3"):
                pump = Pump("Pump3", self.pins[2], self.basesleeptime[2],
                            value)
                pump.start()
            elif (pumpname == "pump4"):
                pump = Pump("Pump4", self.pins[3], self.basesleeptime[3],
                            value)
                pump.start()
            elif (pumpname == "pump5"):
                pump = Pump("Pump5", self.pins[4], self.basesleeptime[4],
                            value)
                pump.start()
            elif (pumpname == "pump6"):
                pump = Pump("Pump6", self.pins[5], self.basesleeptime[5],
                            value)
                pump.start()
            elif (pumpname == "pump7"):
                pump = Pump("Pump7", self.pins[6], self.basesleeptime[6],
                            value)
                pump.start()
            else:
                print('unable to fin the pump')
        pump.join()
        print('exiting Thread client')
        return
Esempio n. 3
0
                     int(udmabuf5.buf_size/(np.dtype(test_dtype).itemsize)))

    udmabuf4_array = udmabuf4.memmap(dtype=test_dtype, shape=(test_size))
    udmabuf5_array = udmabuf5.memmap(dtype=test_dtype, shape=(test_size))

    udmabuf4_array[:] = np.random.randint(0,255,(test_size))
    udmabuf5_array[:] = np.random.randint(0,255,(test_size))

    total_time = 0
    total_size = 0
    count      = 0
    for i in range (0,9):
        start = time.time()
        pump.setup(udmabuf4.phys_addr, udmabuf5.phys_addr, test_size)
        uio0.irq_on()
        pump.start()
        uio0.wait_irq()
        pump.clear_status
        elapsed_time = time.time() - start
        total_time   = total_time  + elapsed_time
        total_size   = total_size  + test_size
        count        = count       + 1
        print ("elapsed_time:{0}".format(round(elapsed_time*1000.0,3)) + "[msec]")

    print ("average_time:{0}".format(round((total_time/count)*1000.0,3)) + "[msec]")
    print ("thougput    :{0}".format(round(((total_size/total_time)/(1000*1000)),3)) + "[MByte/sec]")

    if np.array_equal(udmabuf4_array, udmabuf5_array):
         print("udmabuf4 == udmabuf5 : OK")
    else:
         print("udmabuf4 == udmabuf5 : NG")
Esempio n. 4
0
from pump import Pump
from game import Game

PUMP_PORT = "COM3"

if __name__ == "__main__":
    pump = Pump(PUMP_PORT)
    with pump:
        try:
            pump.start()
            game = Game(pump)
            game.start()
        except Exception as e:
            print e