Esempio n. 1
0
	def simulate_ricefield_site(site_id, n_nodes = 100, site_alias = None):
		site = Site.query.filter_by(id = site_id).first()
		if not site:
			if n_nodes and site_alias:
				site = Site.create(alias = site_alias)
				for n in xrange(n_nodes):
					NodeSeeder.seed_ricefield_node(n_readings = 0, site = site)
			else:
				print 'No site with the supplied site_id was found. In this case you must supply values for both n_nodes and site_alias. Returning None'
				return

		def run_simulation(site):
			total_sensors = sum([len(node.sensors) for node in site.nodes])
			wait = 3600.0 / total_sensors
			node_ids = map(lambda node: node.id, site.nodes)
			shuffle(node_ids)
			print 'Simulating site %s with nodes %s'%(site.id, node_ids)
			while True:
				for node_id in node_ids:
					node = Node.query.filter_by(id = node_id).first()
					for sensor in node.sensors:
						r = Reading.create(sensor = sensor, value = random() * 100, timestamp = datetime.now())
						print 'Created reading %s at site %s, node %s'%(r, site.id, node.id)
						time.sleep(wait)

		run_simulation(site)
Esempio n. 2
0
    def simulate_ricefield_site(site_id, n_nodes=100, site_alias=None):
        site = Site.query.filter_by(id=site_id).first()
        if not site:
            if n_nodes and site_alias:
                site = Site.create(alias=site_alias)
                for n in xrange(n_nodes):
                    NodeSeeder.seed_ricefield_node(n_readings=0, site=site)
            else:
                print 'No site with the supplied site_id was found. In this case you must supply values for both n_nodes and site_alias. Returning None'
                return

        def run_simulation(site):
            total_sensors = sum([len(node.sensors) for node in site.nodes])
            wait = 3600.0 / total_sensors
            node_ids = map(lambda node: node.id, site.nodes)
            shuffle(node_ids)
            print 'Simulating site %s with nodes %s' % (site.id, node_ids)
            while True:
                for node_id in node_ids:
                    node = Node.query.filter_by(id=node_id).first()
                    for sensor in node.sensors:
                        r = Reading.create(sensor=sensor,
                                           value=random() * 100,
                                           timestamp=datetime.now())
                        print 'Created reading %s at site %s, node %s' % (
                            r, site.id, node.id)
                        time.sleep(wait)

        run_simulation(site)
Esempio n. 3
0
 def seed_ricefield_site(site_alias=None,
                         n_nodes=1,
                         n_readings=5,
                         **kwargs):
     if not site_alias:
         site_alias = 'site_%s' % uuid.uuid4().hex
     site = Site.create(alias=site_alias)
     nodes = [
         NodeSeeder.seed_ricefield_node(n_readings=n_readings,
                                        site=site,
                                        **kwargs) for i in range(n_nodes)
     ]
     return site
Esempio n. 4
0
	def seed_ricefield_site(site_alias = None, n_nodes = 1, n_readings = 5, **kwargs):
		if not site_alias: 
			site_alias = 'site_%s'%uuid.uuid4().hex
		site = Site.create(alias = site_alias)
		nodes = [NodeSeeder.seed_ricefield_node(n_readings = n_readings, site = site, **kwargs) for i in range(n_nodes)]
		return site