Esempio n. 1
0
	def processMessageQueue(self, data):
		if(not self.leftover_queue_text is None):
			data=self.leftover_queue_text+data
			self.leftover_queue_text=None
		
		incomplete_last_message=False
		if(not data.endswith("\r\n")):
			incomplete_last_message=True
		
		messages=data.split("\r\n")
		if(incomplete_last_message):
			self.leftover_queue_text=messages.pop()
		
		for message_text in messages:
			msg=IRCMessage.parse(message_text)
			if(msg is None): continue #invalid message or something
			Event.trigger("Message/Incoming/"+msg.command, message=msg)
Esempio n. 2
0
class PingTester:
    def __init__(self, iface, rate, pingtarget, state_pub):
        self.update_event = Event()
        reactor.addSystemEventTrigger('before', 'shutdown', self._shutdown)
        self.udp_monitor = udpmoncli.MonitorClient(
            [config.get_parameter('ping_max_latency', 0.2)], pingtarget, rate,
            32, True)
        CompositeStatePublisher(
            lambda (addr, ready): None if not ready else addr, [
                netlink_monitor.get_state_publisher(iface, IFSTATE.ADDR),
                state_pub,
            ]).subscribe(self._addr_cb)

    def update(self, update_rate):
        result = self.udp_monitor.get_smart_bins(update_rate)
        self.update_event.trigger(result)
        self.state = result
        return result

    def _addr_cb(self, old_state, new_state):
        if new_state:
            # FIXME This should only happen after routes are set up.
            #print "New address", new_state
            self.udp_monitor.start_monitor((new_state[0], 0))
            print "Starting monitor on %s" % new_state[0]
        else:
            self.udp_monitor.stop_monitor()
            self.state = None
            self.update_event.trigger(None)

    def _shutdown(self):
        try:
            self.udp_monitor.shutdown()
        except:
            import sys
            sys.print_exc()
Esempio n. 3
0
class PingTester:
    def __init__(self, iface, rate, pingtarget, state_pub):
        self.update_event = Event()
        reactor.addSystemEventTrigger("before", "shutdown", self._shutdown)
        self.udp_monitor = udpmoncli.MonitorClient(
            [config.get_parameter("ping_max_latency", 0.2)], pingtarget, rate, 32, True
        )
        CompositeStatePublisher(
            lambda (addr, ready): None if not ready else addr,
            [netlink_monitor.get_state_publisher(iface, IFSTATE.ADDR), state_pub],
        ).subscribe(self._addr_cb)

    def update(self, update_rate):
        result = self.udp_monitor.get_smart_bins(update_rate)
        self.update_event.trigger(result)
        self.state = result
        return result

    def _addr_cb(self, old_state, new_state):
        if new_state:
            # FIXME This should only happen after routes are set up.
            # print "New address", new_state
            self.udp_monitor.start_monitor((new_state[0], 0))
            print "Starting monitor on %s" % new_state[0]
        else:
            self.udp_monitor.stop_monitor()
            self.state = None
            self.update_event.trigger(None)

    def _shutdown(self):
        try:
            self.udp_monitor.shutdown()
        except:
            import sys

            sys.print_exc()
Esempio n. 4
0
 def test_event_stream_from_event(self):
     e = Event()
     es = EventStream(e)
     e.trigger('hello world')
     yield select(es)
     self.assertEqual(es.get(), (('hello world',),{}))
Esempio n. 5
0
 def test_event_stream_from_event(self):
     e = Event()
     es = EventStream(e)
     e.trigger('hello world')
     yield select(es)
     self.assertEqual(es.get(), (('hello world', ), {}))
Esempio n. 6
0
    gas_baseline = sum(burn_in_data[-50:]) / 50.0

    # Set the humidity baseline to 40%, an optimal indoor humidity.
    hum_baseline = 40.0

    # This sets the balance between humidity and gas reading in the
    # calculation of air_quality_score (25:75, humidity:gas)
    hum_weighting = 0.25

    print("Gas baseline: {0} Ohms, humidity baseline: {1:.2f} %RH\n".format(
        gas_baseline, hum_baseline))

    while True:
        if sensor.get_sensor_data() and sensor.data.heat_stable:
            client.metric('gas', int(sensor.data.gas_resistance), tags=tags)
            client.metric('humidity', sensor.data.humidity, tags=tags)
            client.metric('temperature', sensor.data.temperature, tags=tags)
            if (sensor.data.gas_resistance >= threshold.gas):
                event.trigger(sensor.data, etype.GAS)
            if (sensor.data.humidity >= threshold.humidity):
                event.trigger(sensor.data, etype.HUMIDITY)
            if not (threshold.temperature[0] <= sensor.data.temperature <=
                    threshold.temperature[1]):
                event.trigger(sensor.data, etype.TEMPERATURE)
            print("DONE...\n")

            time.sleep(1)

except KeyboardInterrupt:
    pass
Esempio n. 7
0
for line in f:
    if args.verbose:
        print(line)

    # split the line into tokens
    fields = line.rstrip(" \t\n\r").split()

    # check there are the correct number of tokens for a data line
    if len(fields) != 16:
        continue

    # get some information from the line
    new_trig = new_trigger(fields)

    if (event_id == 0):
        current_event.trigger = trigger_count(fields)

    if (new_trig):
        event_id = event_id + 1
        if (event_id > 1 and event_id % 100000 == 0):
            print("Event : ", event_id)

        events.append(current_event)
        current_event = Event(event_id)
        current_event.trigger = trigger_count(fields)

    count = trigger_count(fields) - current_event.trigger

    # loop over channels and edges
    for chan in range(4):
        for edge in range(2):