Ejemplo n.º 1
0
 def run(self):
     # Create timers for each Arduino
     timers = [
         multitimer.MultiTimer(interval=60, function=self.rtd_thermometer),
         multitimer.MultiTimer(interval=60,
                               function=self.air_quality_readings),
         multitimer.MultiTimer(interval=60,
                               function=self.pressure_readings),
         #other_timer = multitimer.MultiTimer(interval=seconds, function=other_function),
     ]
     # Start all timers and enter while-true
     self.logger.info("Starting Arduino Data Timers")
     for timer in timers:
         timer.start()
     while True:
         pass
Ejemplo n.º 2
0
    def run(self):
        mqcards = sysv_ipc.MessageQueue(100)
        mqverif = sysv_ipc.MessageQueue(self.numero)  # Message queue key numero joueur, sert à recevoir TRUE ou FALSE
        mqtouchejouee = sysv_ipc.MessageQueue(200 + self.numero)
        mqhandsize = sysv_ipc.MessageQueue(300)
        mqaffichage = sysv_ipc.MessageQueue(400)

        threadaffichage = threading.Thread(target=self.affichageforce, args=(mqaffichage, ))
        threadaffichage.start()

        while len(self.cartesmain) != 0 and not self.deck.empty():
            timer = multitimer.MultiTimer(interval=10, function=self.pioche, kwargs={"mqaffichage": mqaffichage}, runonstart=False)
            timer.start()
            erreur = True
            numcarte = 0
            while erreur:
                try:
                    bnumcarte, t = mqtouchejouee.receive()
                    numcarte = int(bnumcarte.decode())
                    mqcards.send(dumps(self.cartesmain[numcarte - 1]))
                    erreur = False
                except IndexError:
                    print("Joueur : " + str(self.numero) + " | Veuillez entrer une touche valide")
            timer.stop()
            blebool, t = mqverif.receive()
            lebool = blebool.decode() == 'True'
            if lebool:
                self.removecard(self.cartesmain[numcarte - 1])
                mqhandsize.send((str(len(self.cartesmain))).encode())
            else:
                self.pioche(mqaffichage)
        threadaffichage.join()
def main():
        # enter here the ID of your device. On windows, VISA you can easily find it in the VISA interface.
        Device = pyvisascope.MSO1000('USB::0x1AB1::0x0515::MS5A230800492::INSTR')
        Device.myScope.timeout = None
        # set a timer that records every minute for in total 4 times
        timer = multitimer.MultiTimer(interval=5, function=measure, kwargs={'myDevice': Device}, count=20, runonstart=True)
        timer.start()
Ejemplo n.º 4
0
def jouer(j):
    z = multitimer.MultiTimer(interval=10,
                              function=piocher,
                              kwargs={"j": j},
                              runonstart=False)
    z.start()
    m, t = mq.receive(type=4 + j.identifiant)
    z.stop()
    numero = int(m.decode())
    if numero < len(j.main):
        carte = j.main[numero]
        message = str(j.identifiant) + ":" + str(carte.valeur) + ":" + str(
            carte.couleur)
        msg = str(message).encode()
        mutexQueue.acquire()
        mq.send(msg, type=1)
        m, t = mq.receive(type=1 + j.identifiant)
        mutexQueue.release()
        b = int(m.decode())
        if b == 1:
            j.main.remove(carte)
        else:
            piocher(j)
    if (len(j.main) == 0):
        msg = str(j.identifiant)
        msg = msg.encode()
        mq.send(msg, type=4)
    afficherMain(j)
Ejemplo n.º 5
0
    def start(self, filename, redis_keys, logger_period=1):
        '''
        Starts the logger by spinning off a thread. If the logger is 
        already running, this call is ignored.

        :param filename: A string containing the filename to write keys to.
        :param redis_keys: A list of strings containing keys to poll Redis.
        :param logger_period: A float containing how often to poll Redis, in seconds.
            Default is 1 second.
        :returns: True if thread started, False if already running or failure.
        '''
        if self.running:
            return False

        self.filename = filename
        self.redis_keys = redis_keys
        self.logger_period = logger_period

        # start the timer 
        self.running = True
        self.file_fd = open(filename, 'w+')
        context = { 'header_written': False }
        self.periodic_timer = multitimer.MultiTimer(
            logger_period, 
            function=self._logger_loop, 
            kwargs={'ctx': context}
        )
        self.periodic_timer.start()

        return True
def main():
        # enter here the ID of your device. On windows, VISA you can easily find it in the VISA interface.
        Device = pyvisascope.TDS2000('USB::0x0699::0x0368::C100942::INSTR')
        Device.myScope.timeout = None
        # set a timer that records every minute for in total 4 times
        timer = multitimer.MultiTimer(interval=60, function=measure, kwargs={'myDevice': Device}, count=3, runonstart=True)
        timer.start()
Ejemplo n.º 7
0
def main():
        # enter here the ID of your device. On windows, VISA you can easily find it in the VISA interface.
        Device = pyvisascope.SDS_1104X_E('USB0::62700::60984::SDSMMEBD2R5477::0::INSTR')
        Device.myScope.timeout = None
        # set a timer that records every minute for in total 4 times
        #timer = multitimer.MultiTimer(interval=5, function=measure, kwargs={'myDevice': Device}, count=10, runonstart=True)
        timer = multitimer.MultiTimer(interval=60, function=measure, kwargs={'myDevice': Device}, count=1440, runonstart=True)
        timer.start()
Ejemplo n.º 8
0
def main():
    # enter here the ID of your device. On windows, VISA you can easily find it in the VISA interface.
    Device = pyvisascope.DS1000Z('USB0::0x1AB1::0x04CE::DS1ZA191806462::INSTR')
    Device.myScope.timeout = None
    # set a timer that records every minute for in total 4 times
    timer = multitimer.MultiTimer(interval=3,
                                  function=measure,
                                  kwargs={'myDevice': Device},
                                  count=10,
                                  runonstart=True)
    timer.start()
 def __init__(self,
              interval_s,
              count=-1,
              runonstart=True,
              task_func=None,
              **kwargs):
     super().__init__(**kwargs)
     self._interval_s = interval_s
     if task_func:  # Important
         self._task_func = task_func
     self._multitimer = multitimer.MultiTimer(
         interval=interval_s,
         function=self._offloaded_run_task,
         count=count,
         runonstart=runonstart)
Ejemplo n.º 10
0
    def __init__(self,
                 redis_client,
                 refresh_rate=0.0333,
                 keys=[],
                 key_patterns=[],
                 key_refresh_cycles=10):
        self.refresh_rate = refresh_rate
        self.redis_client = redis_client
        self.refresh_keys = threading.Event()
        self.key_refresh_cycles = key_refresh_cycles
        self.pipe_keys = keys
        self.key_patterns = key_patterns
        self.key_cache = {}
        self.running = False

        ctx = {'first_run': True, 'refresh_counter': 0}
        self.periodic_timer = multitimer.MultiTimer(
            refresh_rate, function=self._update_cache, kwargs={'ctx': ctx})

        if not keys and not key_patterns:
            self.key_patterns = ['*']
    def loop_snap(self, idT):

        print("loop Snapshot " + str(idT))
        if self.opMenuVar.get() != "":
            if str(self.loopCapture['text']).find('Loop Capture') != -1:
                self.loopCapture.configure(text="Stop " + str(self.loops))
                self.opMenu.configure(state=DISABLED)
                #self.snap_timer = threading.Timer(2,self.get_snap,args=None,kwargs=None)
                self.snap_timer = multitimer.MultiTimer(interval=2,
                                                        function=self.get_snap,
                                                        count=int(self.loops) +
                                                        1)
                self.snap_timer.start()

            else:
                print("cancel timer")
                self.read_ini()
                self.loopCapture.configure(text="Loop Capture " +
                                           str(self.loops))
                self.opMenu.configure(state=NORMAL)
                self.snap_timer.stop()
        if temp >= set_temp:
            set_alarm_t = 1
            self.label_temp_os.setText("Temperature Overshoot !!!")
        else:
            set_alarm_t = 0
            self.label_temp_os.setText("")
        if hum >= set_humidity:
            set_alarm_h = 1
            self.label_humidity_os.setText("Humidity Overshoot !!!")
        else:
            set_alarm_h = 0
            self.label_humidity_os.setText("")
        if set_alarm_t or set_alarm_h:
            self.label_alert.setText("ALARM !!!")
        else:
            self.label_alert.setText("")


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    ui = Ui()
    # Timer initialization
    timer = multitimer.MultiTimer(15,
                                  read_data,
                                  args=None,
                                  kwargs=None,
                                  count=30,
                                  runonstart=True)
    timer.start()
    sys.exit(app.exec_())

def changeStates():
    global timerCount
    global currentTimerCount
    global CURRENT_STATE
    global NEXT_STATE
    global LAST_STATE
    currentTimerCount += 1
    if currentTimerCount == timerCount:
        LAST_STATE = CURRENT_STATE
        CURRENT_STATE = NEXT_STATE
        currentTimerCount = 0


timer = multitimer.MultiTimer(timerLength, changeStates)
timer.start()

while True:
    while sys.stdin in select.select([sys.stdin], [], [], 0)[0]:
        line = sys.stdin.readline()
        if line:
            if 'l' in line:
                currentTimerCount = currentTimerCount - 1
            elif 'p' in line:
                currentTimerCount = timerCount - 1
        else:
            continue
    if CURRENT_STATE == RED_RED_STATE:
        rfidID = RFIDread(reader1)
        if determineMessage(rfidID, '0') != -1:
Ejemplo n.º 14
0
## initialing variables
x = y = 0
running = 1
screen = pygame.display.set_mode((800, 540))
p = (x, y)
timer_on = False
distracted = False
monitor = False
os.system('cls')
# define timer t and vibration function
print("Give the time inverval in seconds: ")
interval = input()
def vibration():
    print("seat and wheel vibration created")
t = mt.MultiTimer(3, vibration, runonstart=False)


os.system('cls')
while running:
    # background image displayed
    event = pygame.event.poll()
    image = pygame.image.load("chenei.jpg")
    if event.type == pygame.QUIT:
        running = 0
    # get the mouse position
    elif event.type == pygame.MOUSEMOTION:
        p = event.pos
    # show the mouse pos by click
    elif event.type == pygame.MOUSEBUTTONDOWN:
        print(event.pos)
Ejemplo n.º 15
0
def send_file(file_name, server_addr, port_no, pkt_size):
    ##MAIN
    # if len(sys.argv) != 5:
    #     print("Invalid usage\nUsage: python send.py file_name.ext server_address port_number packet_size\n\nThis scripts sends the filename given input to the server on the server running port by creating a UDP connection with reliability to send file to server.")
    #     os._exit(0)
    # else:
    #     filename = sys.argv[1]
    #     SERVER = sys.argv[2]
    #     PORT = int(sys.argv[3])
    #     size = int(sys.argv[4])
    #     MSG_SIZE = size
    #     print(filename, SERVER, PORT, size)
    #     ADDR = (SERVER, PORT)
    global MSG_SIZE
    global PORT
    global SERVER
    global FORMAT
    global DISCONNECT_MESSAGE
    global latest_start
    global disconnect
    global hello
    global timers
    filename = file_name
    SERVER = server_addr
    PORT = port_no
    MSG_SIZE = pkt_size
    size = pkt_size
    global received
    global running
    global yet_to_be_started
    global timers_lock
    global received_lock
    global running_lock
    with open(filename, "rb") as file:
        encoded_string = file.read()
    #encoded_string=""

    count = 0
    timers = {}
    #CREATE TIMER OBJECTS
    arr = {}

    #for i in range(0, len(encoded_string), size-):
    i = 0
    # print(len(encoded_string))
    msgs = []
    while i < len(encoded_string):
        #1024 = (indx;)+(data)+(;)
        var = str(count)
        var += ";"
        msg = bytes(var, FORMAT)
        end = bytes(";", FORMAT)
        inext = i + size - len(msg) - len(end)
        msg += encoded_string[i:inext]
        msg += end
        msgs.append(msg)
        arr[i] = count
        timers[count] = multitimer.MultiTimer(interval=0.01,
                                              function=send,
                                              kwargs={'msg': msg})
        count += 1
        i = inext

    disconnect = multitimer.MultiTimer(
        interval=0.01,
        function=send,
        kwargs={'msg': f"-1;{DISCONNECT_MESSAGE};"})
    hello = multitimer.MultiTimer(
        interval=0.01,
        function=send,
        kwargs={
            'msg': bytes(f'-1;{HELLO};{filename};{count};{MSG_SIZE};', FORMAT)
        })

    # killer = multitimer.MultiTimer(interval=0.001, function=kill_proc)
    # print(sizeof_fmt(len(encoded_string)), len(timers), len(msgs), len(arr))
    ##START SENDING

    latest_start = 0

    t = threading.Thread(target=start_and_end)
    t.start()
Ejemplo n.º 16
0
                                         shift_to_beijing_time).tm_hour) == 21:
        # writeResultYnu('今日没有更新最新招生公告' + time.ctime())
        with open('setting.json', 'r', encoding='utf-8') as settingFile:
            setting_obj = FakeBunch(json.loads(settingFile.read()))
            settingFile.close()
        if setting_obj.sendMailCount < 1:
            sendMail('今日没有更新最新招生公告' + time.strftime(
                '%Y-%m-%d %H:%M:%S',
                time.gmtime(time.time() + shift_to_beijing_time)))
            setting_obj.sendMailCount = 1
            with open('setting.json', 'w', encoding='utf-8') as settingFile:
                settingFile.write(setting_obj.unbunch())
                settingFile.close()
        else:
            pass
    else:
        with open('setting.json', 'r', encoding='utf-8') as settingFile:
            setting_obj = FakeBunch(json.loads(settingFile.read()))
            settingFile.close()
        setting_obj.sendMailCount = 0
        with open('setting.json', 'w', encoding='utf-8') as settingFile:
            settingFile.write(setting_obj.unbunch())
            settingFile.close()
        print(
            '今日暂无新消息',
            time.strftime('%Y-%m-%d %H:%M:%S',
                          time.gmtime(time.time() + shift_to_beijing_time)))


timer = multitimer.MultiTimer(interval=5, function=main)
timer.start()
Ejemplo n.º 17
0
    #http_code = c.getinfo(pycurl.HTTP_CODE)
    #http_conn_time = c.getinfo(pycurl.CONNECT_TIME)
    #http_pre_tran = c.getinfo(pycurl.PRETRANSFER_TIME)
    #http_start_tran = c.getinfo(pycurl.STARTTRANSFER_TIME)
    #http_total_time = c.getinfo(pycurl.TOTAL_TIME)
    #http_size = c.getinfo(pycurl.SIZE_DOWNLOAD)

    # HTTP response code, e.g. 200.
    print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
    # Elapsed time for the transfer.
    #print('Transfer Time: %f' % c.getinfo(c.CONNECT_TIME))
    # Elapsed time for the transfer.
    total_time = c.getinfo(c.TOTAL_TIME)
    print('Total Time: %f' % total_time)
    df2 = pd.DataFrame({"resp_time": [float(total_time)]})
    df1 = df1.append(df2, ignore_index=True)
    #print(df1, "\n")
    # saving the dataframe
    df1.to_csv(filename, sep=';')


# This timer will run job() five times, one second apart
timer = multitimer.MultiTimer(interval=2, function=job, count=10)
# Also, this timer would run indefinitely...
timer.start()
# getinfo must be called before close.
#c.close()

# In[ ]:
        print(text)
        words = text.split()  # Why didn't you use split?
        for word in words:
            total_words.append(word)
        if counter == 12:
            analysis_input_text(total_words)
            total_words.clear()
            counter = 0
        fh.write(text)
        fh.close()
    except:
        print('Whatever you said was gibberish to me!')


t = multitimer.MultiTimer(rec_sec - 0.01,
                          function=save_and_recognize,
                          kwargs={'recording': rec},
                          runonstart=False)
#t2 = multitimer.MultiTimer(120, function=analysis_input_text, kwargs={'all_words_in_two_min': total_words}, runonstart=False)
t.start()
#t2.start()

while True:
    for i in range(math.ceil(Rate / chunk * rec_sec)):
        data = stream.read(chunk)
        rec.append(data)
    rec.clear()
'''
try:
    with speech_recognition.AudioFile('sound.wav') as source:
        audio = r.record(source)
    text = r.recognize_wit(audio, key="HTDCCKGTKR5P6WTEG7MEFQ4NSE36KKBU")
    while GPIO.input(echo) == 1:
        pass
    stop = time.time()
    distance = (stop - start) * 17000
    return distance


def timer3_handler():
    global ACTIVE_TIMER, timer3
    print('timer3_handler: timer3 expired')
    db.child('geyser').update({'vigilant': 'yes'})
    ACTIVE_TIMER = 0


timer3 = multitimer.MultiTimer(interval=60,
                               function=timer3_handler,
                               count=1,
                               runonstart=False)


def timer2_handler():
    print('timer2_handler: timer2 expired')
    db.child('geyser').update({'notify': 'OFF'})


timer2 = multitimer.MultiTimer(interval=60,
                               function=timer2_handler,
                               count=1,
                               runonstart=False)


def timer1_handler():
Ejemplo n.º 20
0
offsets = [t % interval for t in intervals]

print('Intervals:')
pprint(intervals)

print('\nOffsets from ideal intervals:')
pprint(offsets)


#%%
result = []
def increment_func():
    sleep(2)
    result.append(42)
    
rpt = multitimer.MultiTimer(interval=1, function=increment_func, runonstart=True)
rpt.join()  # Does nothing
rpt.start()

try:
    rpt.join() 
except AssertionError:
    pass
else:
    raise RuntimeError("should have failed")
    
rpt.stop()
assert len(result) == 0
rpt.join() 
assert len(result) == 1
Ejemplo n.º 21
0
#data = which server has max window load
# Minimum Response Time Algorithm
def job1MinRT():

    #Publish data to MQTT Broker
    min_RspTime = respon_time.index(min(respon_time)) + 1
    msg = min_RspTime
    print("Server dg min Respon Time =", msg)
    client.publish(topic="sdn/serverno", payload=msg, qos=0, retain=False)

#client.publish(topic="sdn/cpumem01", payload=msg, qos=1, retain=False)
#client.publish(topic="sdn/rsptm03", payload=rsp_tm_s3, qos=0, retain=False)


# This timer will run job() five times, one second apart
timer1 = multitimer.MultiTimer(interval=1, function=job1Fuzzy, count=-1)
# Also, this timer would run indefinitely...
timer1.start()


#Start getting Server Response From Here
def job2():
    #global time01
    global alamat_ip
    global respon_time
    for i in range(lengths):
        c = pycurl.Curl()
        buffer = BytesIO()
        #c.setopt(c.URL, 'http://pycurl.io/')
        now1 = datetime.datetime.now()  # time object
        #print("now =", now1)
Ejemplo n.º 22
0
#data = which server has max window load
# Minimum Response Time Algorithm
def job1MinRT():

    #Publish data to MQTT Broker
    min_RspTime = respon_time.index(min(respon_time)) + 1
    msg = min_RspTime
    print("Server dg min Respon Time =", msg)
    client.publish(topic="sdn/serverno", payload=msg, qos=0, retain=False)

#client.publish(topic="sdn/cpumem01", payload=msg, qos=1, retain=False)
#client.publish(topic="sdn/rsptm03", payload=rsp_tm_s3, qos=0, retain=False)


# This timer will run job() five times, one second apart
timer1 = multitimer.MultiTimer(interval=2, function=job1Fuzzy, count=-1)
# Also, this timer would run indefinitely...
timer1.start()


#Start getting Server Response From Here
def job2():
    #global time01
    global alamat_ip
    global respon_time
    for i in range(lengths):
        c = pycurl.Curl()
        buffer = BytesIO()
        #c.setopt(c.URL, 'http://pycurl.io/')
        #now1 = datetime.datetime.now() # time object
        #print("now =", now1)
Ejemplo n.º 23
0
    print("now =", now1)
    print("do curl")    
    c.setopt(c.URL, add01)
    c.setopt(c.WRITEDATA, buffer)
    c.perform()
    c.close()
    now2 = datetime.datetime.now() # time object
    selisih = now2 - now1
    #print("selisih :", selisih)
    #hasil dalam seconds
    hasil = selisih.seconds + (selisih.microseconds/1000000)
    print("Server1 Respons time =", hasil)
    time01 = float(hasil)

# This timer will run job() five times, one second apart
timer1 = multitimer.MultiTimer(interval=10, function=job1, count=-1)
# Also, this timer would run indefinitely...
timer1.start()

#Start getting Server Response From Here
def job2():
	global time02
	global add02
    c = pycurl.Curl()
    buffer = BytesIO()
    #c.setopt(c.URL, 'http://pycurl.io/')
    now1 = datetime.datetime.now() # time object
    print("now =", now1)
    print("do curl")    
    c.setopt(c.URL, add02)
    c.setopt(c.WRITEDATA, buffer)
Ejemplo n.º 24
0
print(f"url: {url}")
print(f"frequency: {frequency}s")
print(f"remove html tags and comments: {removeTagsAndComments}\n")

def check():
    global previous
    with urllib.request.urlopen(url) as response:
        html = response.read().decode('utf-8')
        if removeTagsAndComments:
            html = htmlTagRegex.sub("", html)
            html = commentRegex.sub("", html)
        if previous != html and previous != "":
            print(f"SITE HAS CHANGED ({datetime.now()})")
            print("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\n")
            playsound(song)
        previous = html

t1 = multitimer.MultiTimer(frequency, check)
t1.start()

s = ""
while s.lower() != "stop":
    try:
        s = input("Enter stop to stop (duh)\n\n")
    except KeyboardInterrupt:
        s = "stop"
    if s == "play":
        playsound(song)

t1.stop()
Ejemplo n.º 25
0
    "CREATE TABLE IF NOT EXISTS {} (id INT AUTO_INCREMENT PRIMARY KEY, Humidity FLOAT, Temperature FLOAT, Timestamp VARCHAR(30))"
    .format(table_name))
"""
TO ALTER THE CONTENTS OF THE TABLE
mycursor.execute("ALTER TABLE {} MODIFY COLUMN Timestamp VARCHAR(30)".format(table_name))

#TO VIEW THE CONTENTS OF THE TABLE
mycursor.execute("SELECT * FROM {}".format(table_name))
for i in mycursor:
  print(i)
  
"""
#CONFIGURING THE TIMER
timer = multitimer.MultiTimer(interval=15,
                              function=timer_15,
                              args=None,
                              kwargs=None,
                              count=30,
                              runonstart=True)
timer.start()

# Form implementation generated from reading ui file 'sensor_reading_gui.ui'
# Created by: PyQt5 UI code generator 5.11.3


class Ui_gui(object):
    def setupUi(self, gui):
        gui.setObjectName("gui")
        gui.resize(811, 621)
        gui.setStyleSheet("background-color: rgb(255, 170, 127);\n"
                          "background-color: rgb(170, 170, 255);")
        self.centralwidget = QtWidgets.QWidget(gui)
Ejemplo n.º 26
0
            cv.imshow("video", frame)

            if recorder is not None:
                recorder.write_frame(frame)

        if cv.waitKey(1) & 0xFF == ord('q'):
            break
            

    vcap.release()
    timer.stop()
    recorder.close_stream(full_stop=True)
    cv.destroyAllWindows()





vcap = cv.VideoCapture("udp://192.168.0.32:5000/")
recorder = None
# How often the stream should be saved to harddrive (mins)
time_interval = 20
timer = multitimer.RepeatingTimer(time_interval, recorder.close_stream, count=-1, runonstart=False) # timer that repeats every interval
timer_rec = multitimer.MultiTimer(8, start_recorder, kwargs=dict(recorder), runonstart=False)

if vcap.isOpened():
    timer.start()
    timer_rec.start()
    main_loop()

Ejemplo n.º 27
0
import json
import pandas as pd
import paho.mqtt.client as mqtt
from time import sleep
import multitimer
import time
from datetime import datetime

df = pd.read_csv('periodic_data.csv')
mqttHost = '10.1.17.111'
mqttPort = 1883
mqttclient = mqtt.Client('c1', False)
mqttclient.connect(host=mqttHost, port=mqttPort)  # connect to broker
mqttclient.loop_start()


def hello():
    print(datetime.now())
    for i in range(len(df.index)):
        # print(df.loc[i].topic, '\t', df.loc[i].tag, '\t', df.loc[i].value, '\t', df.loc[i].rate)
        buff = json.dumps({df.loc[i].tag: df.loc[i].value})
        ret = mqttclient.publish(df.loc[i].topic, payload=buff, qos=1)
        ret.wait_for_publish()


t = multitimer.MultiTimer(interval=2, function=hello)
t.start()
Ejemplo n.º 28
0
def start_scheduler():
    timer = multitimer.MultiTimer(1, check_time_to_send)
    timer.start()
Ejemplo n.º 29
0
#!/usr/bin/env python3
import paho.mqtt.client as mqtt
import multitimer
import time
from psutil import cpu_percent, cpu_count, virtual_memory

#MQTT connection
broker_url = "localhost"
broker_port = 1883
client = mqtt.Client()
# edit code for passwords
print("setting  password")
client.username_pw_set(username="******",password="******")
client.connect(broker_url, broker_port)
time.sleep( 5 )

def job():
	
	# message you send to server
	msg = str(cpu_percent()) + ';' + str(virtual_memory().percent)
	print("Publish Cpu/Ram data", msg)
	#client.publish(topic="sdn/cpumem01", payload=msg, qos=1, retain=False)
	client.publish(topic="sdn/cpumem01", payload=msg, qos=0, retain=False)

# This timer will run job() five times, one second apart
timer = multitimer.MultiTimer(interval=1, function=job, count=-1)
# Also, this timer would run indefinitely...
timer.start()
Ejemplo n.º 30
0
    # Change the setpoint
    settings['thermostat']['tolerance'] = tol

    # Write settings back
    with open('static/settings.json', mode='w') as file:
        file.write(json.dumps(settings,
                              indent=4))  # indent setting makes it pretty

    # Recalculate thermostat actions
    thermostat.run_thermostat(tol=tol)

    # Success! :)
    return "Temperature tolerance set to plus or minus %d degrees F." % tol


@app.route('/getJSON/<hours_ago>')
def get_json(hours_ago):
    """Return JSON system status data from the past x hours."""
    return data_collector.get_json(hours_ago)


if __name__ == '__main__':
    timer = multitimer.MultiTimer(interval=60,
                                  function=data_collector.collect_data,
                                  count=-1,
                                  runonstart=True)
    timer.start()

    app.run(debug=True, host='0.0.0.0')