Beispiel #1
0
	def parse_config(self, config_simgen):

		self.check_config(config_simgen)

		outputfolder = config_simgen.outputfolder
		template_path = config_simgen.template
		mkdir(outputfolder)
		cleardir(outputfolder)

		now = time.strftime("%Y%m%d%H%M%S")

		previous_count = 0
		if config_simgen.topology != 'preset':
			for mote_count in config_simgen.mote_count:
				sim = self.init_simulation(template_path, config_simgen)
				coords = generators.gen(config_simgen, mote_count)
				if(previous_count == len(coords)):
					continue
				previous_count = len(coords)
				simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '-' + str(len(coords)) + '-' + now + '.csc'
				self.place_motes(sim, coords, simfilepath, config_simgen)

		else: #preset
			simlist = generators.load_preset(config_simgen.preset_data_path)
			for coords in simlist:
				sim = self.init_simulation(template_path, config_simgen)
				simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + os.path.splitext(os.path.basename(config_simgen.preset_data_path))[0] + '-' + str(len(coords)) + '-' + now + '.csc'
				self.place_motes(sim, coords, simfilepath, config_simgen)

		print("Done. Generated %d simfiles" % len(self.simfiles))
		return True
Beispiel #2
0
	def parse_config(self, config_simgen):
		if hasattr(config_simgen, 'outputfolder'):
			outputfolder = config_simgen.outputfolder
		else:
			outputfolder = '..' + os.path.sep + 'output'

		if hasattr(config_simgen, 'template'):
			template_path = config_simgen.template
		else:
			template_path = '..' + os.path.sep + 'templates' . os.path.sep + 'cooja-template-udgm.csc'

		mkdir(outputfolder)
		cleardir(outputfolder)

		now = time.strftime("%Y%m%d%H%M%S")

		previous_count = 0
		if config_simgen.topology != 'preset':
			for mote_count in config_simgen.mote_count:
				sim = Sim(template_path)

				for mote_type in config_simgen.mote_types:
					mote_type_obj = SimMoteType(    mote_type['shortname'],
									mote_type['fw_folder'],
									mote_type['maketarget'],
									mote_type['makeargs'],
									mote_type['serial'],
									mote_type['description'])
					self.mote_types.append(mote_type_obj)
					sim.insert_sky_motetype(mote_type_obj)

				sim.udgm_set_range(config_simgen.tx_range)
				sim.udgm_set_interference_range(config_simgen.tx_interference)

				coords = generators.gen(config_simgen, mote_count)
				if(previous_count == len(coords)):
					continue

				previous_count = len(coords)

				motenames = self.assign_mote_types(config_simgen.assignment, len(coords))
				simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '-' + str(len(coords)) + '-' + now + '.csc'

				for index,coord in enumerate(coords):
					nodeid = index + 1
					mote = SimMote(self.mote_type_from_shortname(motenames[index]), nodeid)
					mote.set_coords(coord[0], coord[1], coord[2])
					self.motelist.append(mote)

				sim.add_motes(self.motelist)
				sim.set_timeout(999999999) #stop time in ms

				if hasattr(config_simgen, 'mobility'):
					sim.add_mobility(config_simgen.mobility)

				if hasattr(config_simgen, 'interactive_mobility'):
					self.add_mobility_data(config_simgen.interactive_mobility)

				sim.save_simfile(simfilepath)
				self.simfiles.append(simfilepath)
				print("****\n%s" % simfilepath)
				export_mote_list(simfilepath[:-4]+'.motes', self.motelist)

				self.motelist=[]
		else: #preset
			simlist = generators.load_preset(config_simgen.preset_data_path)
			for coords in simlist:
				sim = Sim(template_path)

				for mote_type in config_simgen.mote_types:
					mote_type_obj = SimMoteType(    mote_type['shortname'],
									mote_type['fw_folder'],
									mote_type['maketarget'],
									mote_type['makeargs'],
									mote_type['serial'],
									mote_type['description'])
					self.mote_types.append(mote_type_obj)
					sim.insert_sky_motetype(mote_type_obj)

				sim.udgm_set_range(config_simgen.tx_range)
				sim.udgm_set_interference_range(config_simgen.tx_interference)

				motenames = self.assign_mote_types(config_simgen.assignment, len(coords))
				"""
				if hasattr(config_simgen, 'label'):
					simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '_' + config_simgen.label + '-' + str(len(coords)) + '-' + now + '.csc'
				else:
					simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '-' + str(len(coords)) + '-' + now + '.csc'
				"""
				simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + os.path.splitext(os.path.basename(config_simgen.preset_data_path))[0] + '-' + str(len(coords)) + '-' + now + '.csc'

				for index,coord in enumerate(coords):
					nodeid = index + 1
					mote = SimMote(self.mote_type_from_shortname(motenames[index]), nodeid)
					mote.set_coords(coord['x'], coord['y'], coord['z'])
					self.motelist.append(mote)

				sim.add_motes(self.motelist)
				sim.set_timeout(999999999) #stop time in ms

				if hasattr(config_simgen, 'mobility'):
					sim.add_mobility(config_simgen.mobility)

				if hasattr(config_simgen, 'interactive_mobility'):
					self.add_mobility_data(config_simgen.interactive_mobility)

				sim.save_simfile(simfilepath)
				self.simfiles.append(simfilepath)
				print("****\n%s" % simfilepath)
				export_mote_list(simfilepath[:-4]+'.motes', self.motelist)

				self.motelist=[]

		print("Done. Generated %d simfiles" % len(self.simfiles))
		return True
Beispiel #3
0
    def parse_config(self, config_simgen):
        if hasattr(config_simgen, 'outputfolder'):
            outputfolder = config_simgen.outputfolder
        else:
            outputfolder = '..' + os.path.sep + 'output'

        if hasattr(config_simgen, 'template'):
            template_path = config_simgen.template
        else:
            template_path = '..' + os.path.sep + 'templates'.os.path.sep + 'cooja-template-udgm.csc'

        mkdir(outputfolder)
        cleardir(outputfolder)

        now = time.strftime("%Y%m%d%H%M%S")

        previous_count = 0
        if config_simgen.topology != 'preset':
            for mote_count in config_simgen.mote_count:
                sim = Sim(template_path)

                for mote_type in config_simgen.mote_types:
                    mote_type_obj = SimMoteType(mote_type['shortname'],
                                                mote_type['fw_folder'],
                                                mote_type['maketarget'],
                                                mote_type['makeargs'],
                                                mote_type['serial'],
                                                mote_type['description'])
                    self.mote_types.append(mote_type_obj)
                    sim.insert_sky_motetype(mote_type_obj)

                sim.udgm_set_range(config_simgen.tx_range)
                sim.udgm_set_interference_range(config_simgen.tx_interference)

                coords = generators.gen(config_simgen, mote_count)
                if (previous_count == len(coords)):
                    continue

                previous_count = len(coords)

                motenames = self.assign_mote_types(config_simgen.assignment,
                                                   len(coords))
                simfilepath = os.path.normpath(
                    outputfolder
                ) + os.path.sep + 'coojasim-' + config_simgen.topology + '-' + str(
                    len(coords)) + '-' + now + '.csc'

                for index, coord in enumerate(coords):
                    nodeid = index + 1
                    mote = SimMote(
                        self.mote_type_from_shortname(motenames[index]),
                        nodeid)
                    mote.set_coords(coord[0], coord[1], coord[2])
                    self.motelist.append(mote)

                sim.add_motes(self.motelist)
                sim.set_timeout(999999999)  #stop time in ms

                if hasattr(config_simgen, 'mobility'):
                    sim.add_mobility(config_simgen.mobility)

                if hasattr(config_simgen, 'interactive_mobility'):
                    self.add_mobility_data(config_simgen.interactive_mobility)

                sim.save_simfile(simfilepath)
                self.simfiles.append(simfilepath)
                print("****\n%s" % simfilepath)
                export_mote_list(simfilepath[:-4] + '.motes', self.motelist)

                self.motelist = []
        else:  #preset
            simlist = generators.load_preset(config_simgen.preset_data_path)
            for coords in simlist:
                sim = Sim(template_path)

                for mote_type in config_simgen.mote_types:
                    mote_type_obj = SimMoteType(mote_type['shortname'],
                                                mote_type['fw_folder'],
                                                mote_type['maketarget'],
                                                mote_type['makeargs'],
                                                mote_type['serial'],
                                                mote_type['description'])
                    self.mote_types.append(mote_type_obj)
                    sim.insert_sky_motetype(mote_type_obj)

                sim.udgm_set_range(config_simgen.tx_range)
                sim.udgm_set_interference_range(config_simgen.tx_interference)

                motenames = self.assign_mote_types(config_simgen.assignment,
                                                   len(coords))
                """
				if hasattr(config_simgen, 'label'):
					simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '_' + config_simgen.label + '-' + str(len(coords)) + '-' + now + '.csc'
				else:
					simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '-' + str(len(coords)) + '-' + now + '.csc'
				"""
                simfilepath = os.path.normpath(
                    outputfolder
                ) + os.path.sep + 'coojasim-' + os.path.splitext(
                    os.path.basename(
                        config_simgen.preset_data_path))[0] + '-' + str(
                            len(coords)) + '-' + now + '.csc'

                for index, coord in enumerate(coords):
                    nodeid = index + 1
                    mote = SimMote(
                        self.mote_type_from_shortname(motenames[index]),
                        nodeid)
                    mote.set_coords(coord['x'], coord['y'], coord['z'])
                    self.motelist.append(mote)

                sim.add_motes(self.motelist)
                sim.set_timeout(999999999)  #stop time in ms

                if hasattr(config_simgen, 'mobility'):
                    sim.add_mobility(config_simgen.mobility)

                if hasattr(config_simgen, 'interactive_mobility'):
                    self.add_mobility_data(config_simgen.interactive_mobility)

                sim.save_simfile(simfilepath)
                self.simfiles.append(simfilepath)
                print("****\n%s" % simfilepath)
                export_mote_list(simfilepath[:-4] + '.motes', self.motelist)

                self.motelist = []

        print("Done. Generated %d simfiles" % len(self.simfiles))
        return True
Beispiel #4
0
    def parse_config(self, config_simgen):
        if hasattr(config_simgen, "outputfolder"):
            outputfolder = config_simgen.outputfolder
        else:
            outputfolder = ".." + os.path.sep + "output"

        if hasattr(config_simgen, "template"):
            template_path = config_simgen.template
        else:
            template_path = ".." + os.path.sep + "templates".os.path.sep + "cooja-template-udgm.csc"

        mkdir(outputfolder)
        cleardir(outputfolder)

        now = time.strftime("%Y%m%d%H%M%S")

        previous_count = 0
        if config_simgen.topology != "preset":
            for mote_count in config_simgen.mote_count:
                sim = Sim(template_path)

                for mote_type in config_simgen.mote_types:
                    platform = "sky"
                    if "platform" in mote_type:
                        platform = mote_type["platform"]
                    mote_type_obj = SimMoteType(
                        mote_type["shortname"],
                        mote_type["fw_folder"],
                        mote_type["maketarget"],
                        mote_type["makeargs"],
                        mote_type["serial"],
                        mote_type["description"],
                        platform,
                    )
                    self.mote_types.append(mote_type_obj)
                    sim.insert_sky_motetype(mote_type_obj)

                sim.udgm_set_range(config_simgen.tx_range)
                sim.udgm_set_interference_range(config_simgen.tx_interference)

                coords = generators.gen(config_simgen, mote_count)
                if previous_count == len(coords):
                    continue

                previous_count = len(coords)

                motenames = self.assign_mote_types(config_simgen.assignment, len(coords))
                simfilepath = (
                    os.path.normpath(outputfolder)
                    + os.path.sep
                    + "coojasim-"
                    + config_simgen.topology
                    + "-"
                    + str(len(coords))
                    + "-"
                    + now
                    + ".csc"
                )

                for index, coord in enumerate(coords):
                    nodeid = index + 1
                    mote = SimMote(self.mote_type_from_shortname(motenames[index]), nodeid)
                    mote.set_coords(coord[0], coord[1], coord[2])
                    self.motelist.append(mote)

                sim.add_motes(self.motelist)
                if config_simgen.script_file:
                    sim.set_script(config_simgen.script_file)
                else:
                    sim.set_timeout(999999999)  # stop time in ms

                if hasattr(config_simgen, "mobility"):
                    sim.add_mobility(config_simgen.mobility)

                if hasattr(config_simgen, "interactive_mobility"):
                    self.add_mobility_data(config_simgen.interactive_mobility)

                sim.save_simfile(simfilepath)
                self.simfiles.append(simfilepath)
                print ("****\n%s" % simfilepath)
                export_mote_list(simfilepath[:-4] + ".motes", self.motelist)

                self.motelist = []
        else:  # preset
            simlist = generators.load_preset(config_simgen.preset_data_path)
            for coords in simlist:
                sim = Sim(template_path)

                for mote_type in config_simgen.mote_types:
                    platform = "sky"
                    if "platform" in mote_type:
                        platform = mote_type["platform"]
                    mote_type_obj = SimMoteType(
                        mote_type["shortname"],
                        mote_type["fw_folder"],
                        mote_type["maketarget"],
                        mote_type["makeargs"],
                        mote_type["serial"],
                        mote_type["description"],
                        platform,
                    )
                    self.mote_types.append(mote_type_obj)
                    sim.insert_sky_motetype(mote_type_obj)

                sim.udgm_set_range(config_simgen.tx_range)
                sim.udgm_set_interference_range(config_simgen.tx_interference)

                motenames = self.assign_mote_types(config_simgen.assignment, len(coords))
                """
				if hasattr(config_simgen, 'label'):
					simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '_' + config_simgen.label + '-' + str(len(coords)) + '-' + now + '.csc'
				else:
					simfilepath = os.path.normpath(outputfolder) + os.path.sep + 'coojasim-' + config_simgen.topology + '-' + str(len(coords)) + '-' + now + '.csc'
				"""
                simfilepath = (
                    os.path.normpath(outputfolder)
                    + os.path.sep
                    + "coojasim-"
                    + os.path.splitext(os.path.basename(config_simgen.preset_data_path))[0]
                    + "-"
                    + str(len(coords))
                    + "-"
                    + now
                    + ".csc"
                )

                for index, coord in enumerate(coords):
                    nodeid = index + 1
                    mote = SimMote(self.mote_type_from_shortname(motenames[index]), nodeid)
                    mote.set_coords(coord["x"], coord["y"], coord["z"])
                    self.motelist.append(mote)

                sim.add_motes(self.motelist)
                if config_simgen.script_file:
                    sim.set_script(config_simgen.script_file)
                else:
                    sim.set_timeout(999999999)  # stop time in ms

                if hasattr(config_simgen, "mobility"):
                    sim.add_mobility(config_simgen.mobility)

                if hasattr(config_simgen, "interactive_mobility"):
                    self.add_mobility_data(config_simgen.interactive_mobility)

                sim.save_simfile(simfilepath)
                self.simfiles.append(simfilepath)
                print ("****\n%s" % simfilepath)
                export_mote_list(simfilepath[:-4] + ".motes", self.motelist)

                self.motelist = []

        print ("Done. Generated %d simfiles" % len(self.simfiles))
        return True