예제 #1
0
	def insert_new_query(self,qid, total_samples, interval,  trig_list =[], sensor_list=[], qual_list= []):
		print qid
		print total_samples
		print interval
		print trig_list 
		print sensor_list
		print qual_list

		if qid in self.curr_queries.keys():
			print "qid: %d is already in use" %qid
			return False

		self.curr_queries[qid] = 1
		num_trigs = len(trig_list)
		num_sensor = len(sensor_list)
		num_qual = len(qual_list)

 		sub = []
 		for i in trig_list:
			sub.append(i[0])
 			sub.append(i[1])

 		qual = []
		for i in qual_list:
			qual.append(i[0])
 			qual.append(i[1])
 			qual.append(i[2])

 		data_list = [i for i in sub] + [i for i in sensor_list] + [i for i in qual]

		data = pysos.pack('<BHHIBBH' + num_trigs*'BB' + num_sensor*'B' + num_qual * 'BBH', 
			NEW_QUERY,
			qid,
			total_samples, 
			interval,
			num_sensor,
			num_qual,
			num_trigs,
			*(i for i in data_list))

		self.srv.post(daddr = 1, saddr = 0, did = 128,
		sid = 128, type = 33, data = data)
		return True
예제 #2
0

def result_handler(msg):
    (sid, qid, num_remaining, sensor,
     value) = pysos.unpack('<BHHBH', msg['data'])

    print "node id %d" % sid
    print "QueryId %d" % qid
    print "SensorId %d" % sensor
    print "Value %d" % value


if __name__ == "__main__":
    srv = pysos.sossrv()

    #    data = pysos.pack('<HBBIHH', 1, 1, 80, 1024, 20, 0)

    #    srv.post(daddr = 0, saddr = 0, did=128, sid = 128, type=33, data = data)

    data = pysos.pack('<HIHBBBB', 123, 1024, 50, 1, 0, 0, 4)

    srv.post(daddr=1, saddr=1, did=128, sid=128, type=33, data=data)

    srv.register_trigger(result_handler,
                         did=128,
                         sid=128,
                         type=MSG_QUERY_REPLY)

    while (1):
        pass
예제 #3
0
	def remove_queries(self):
	  data = pysos.pack('<BB',1, 0)
	  self.srv.post(daddr =1, saddr=0, did=128, sid=128, type=33,data=data )
예제 #4
0
파일: interpreter.py 프로젝트: nesl/sos-2x
#!/usr/bin/python

import pysos

MSG_QUERY_REPLY=34

def result_handler(msg):
    (sid, qid, num_remaining, sensor, value) = pysos.unpack('<BHHBH', msg['data'])

    print "node id %d" %sid
    print "QueryId %d" %qid
    print "SensorId %d" %sensor
    print "Value %d" %value
    
if __name__ == "__main__":
    srv = pysos.sossrv()

#    data = pysos.pack('<HBBIHH', 1, 1, 80, 1024, 20, 0)

#    srv.post(daddr = 0, saddr = 0, did=128, sid = 128, type=33, data = data)

    data = pysos.pack('<HIHBBBB', 123, 1024, 50, 1, 0, 0, 4)

    srv.post(daddr = 1, saddr = 1, did=128, sid=128, type=33, data=data)

    srv.register_trigger(result_handler, did=128, sid=128, type=MSG_QUERY_REPLY)

    while(1):
	pass
예제 #5
0
import pysos

def func(msg):
    (addr, t1, t2) = pysos.unpack('<HLL', msg['data'])
    if addr == 0:
        print 50* "-"
    print "addr: ", addr, "time: ", t1, "refreshed: ", t2

srv = pysos.sossrv()

data = pysos.pack('<B', 0)
srv.post(daddr = 0xFFFF, saddr = 7000, did = 170,
        sid = 170, type = 35, data = data)

srv.register_trigger(func, type=43)
raw_input("Hit enter to finish")
예제 #6
0
파일: tpsn_net.py 프로젝트: nesl/sos-2x
import pysos


def func(msg):
    (addr, t1, t2) = pysos.unpack("<HLL", msg["data"])
    print "addr: ", addr, "time: ", t1, "refreshed: ", t2
    if addr == 1:
        print 50 * "-"


srv = pysos.sossrv()

data = pysos.pack("<B", 0)
srv.post(daddr=0xFFFF, saddr=7000, did=170, sid=170, type=35, data=data)

srv.register_trigger(func, type=43)
raw_input("Hit enter to finish")