def get_data(self, bodies, body_id, time): data = QuadPosition() data.found_body = False if bodies == []: utils.loginfo("Gazebo not started") else: if hasattr(bodies, 'name'): if body_id < len(bodies.name): data.found_body = True data.x = bodies.pose[body_id].position.x data.y = bodies.pose[body_id].position.y data.z = bodies.pose[body_id].position.z x = bodies.pose[body_id].orientation.x y = bodies.pose[body_id].orientation.y z = bodies.pose[body_id].orientation.z w = bodies.pose[body_id].orientation.w dcm = quat_to_dcm(w, x, y, z) (roll, pitch, yaw) = dcm.to_euler() data.pitch = degrees(pitch) data.roll = degrees(roll) data.yaw = degrees(yaw) else: print 'Body not found' return copy.deepcopy(data)
def Set_Flight_Mode(MODE): """This function sets the flight mode of the drone to MODE.""" return_value=True #Change the flight mode on the Pixhawk flight controller try: rospy.wait_for_service('mavros/set_mode',10) except: utils.logerr('Mavros is not available') return_value=False utils.loginfo('Changing flight mode to '+MODE+' ...') rospy.sleep(2) try: change_param=rospy.ServiceProxy('mavros/set_mode',SetMode) param=change_param(0,MODE) while param.success==False: param=change_param(0,MODE) if param.success==False: utils.logerr('Cannot change flight mode') if param.success: utils.loginfo('Flight mode changed to '+MODE) else: utils.logerr('Cannot change flight mode') return_value=False except: utils.logerr('Cannot change flight mode') return_value=False return return_value
def get_data(self,bodies,body_id,time): data = QuadPosition() data.found_body = False if bodies==[]: utils.loginfo("Gazebo not started") else: if hasattr(bodies,'name'): if body_id<len(bodies.name): data.found_body=True data.x=bodies.pose[body_id].position.x data.y=bodies.pose[body_id].position.y data.z=bodies.pose[body_id].position.z x = bodies.pose[body_id].orientation.x y = bodies.pose[body_id].orientation.y z = bodies.pose[body_id].orientation.z w = bodies.pose[body_id].orientation.w dcm = quat_to_dcm(w,x,y,z) (roll,pitch,yaw) = dcm.to_euler() data.pitch=degrees(pitch) data.roll=degrees(roll) data.yaw=degrees(yaw) else: print 'Body not found' return copy.deepcopy(data)
def get_data(self,body): data = QuadPosition() body_id = body data.found_body = False if self.bodies==[]: utils.loginfo("Gazebo not started") else: if hasattr(self.bodies,'name'): if body_id<len(self.bodies.name): data.found_body=True data.x=self.bodies.pose[body_id].position.x data.y=self.bodies.pose[body_id].position.y data.z=self.bodies.pose[body_id].position.z x = self.bodies.pose[body_id].orientation.x y = self.bodies.pose[body_id].orientation.y z = self.bodies.pose[body_id].orientation.z w = self.bodies.pose[body_id].orientation.w dcm = quat_to_dcm(w,x,y,z) (roll,pitch,yaw) = dcm.to_euler() data.pitch=degrees(pitch) data.roll=degrees(roll) data.yaw=degrees(yaw) print "Sending data for the body with id: "+str(body_id) else: print 'Body not found' return(data)
def tool(request, appname): # if we are here, we have been given a particular appname, e.g. "keyinfo", as part of the url context = {'applayout': appLayout[appname]} if request.method == 'POST': form = forms.Form(request.POST) elif request.method == 'GET': form = forms.Form(request.GET) else: form = forms.Form() if form.is_valid(): loginfo(appname, context, request) context = dispatch(context, request, appname) #context['form'] = form context = setconstants(request, context, appname) loginfo(appname, context, request) # special case: the data endpoint returns JSON if appname == 'data': return HttpResponse(json.dumps(context['data'])) else: return render(request, 'toolbox.html', context)
def Set_Flight_Mode(NODE_NAME,MODE): return_value=True #Change the flight mode on the Pixhawk flight controller try: rospy.wait_for_service('/mavros/set_mode',10) except: utils.logerr('Mavros is not available') return_value=False utils.loginfo('Changing flight mode to '+MODE+' ...') rospy.sleep(2) try: change_param=rospy.ServiceProxy('/mavros/set_mode',SetMode) param=change_param(0,MODE) except: utils.logerr('Cannot change flight mode') return_value=False if param.success: utils.loginfo('Flight mode changed to '+MODE) else: utils.logerr('Cannot change flight mode') return_value=False return return_value
def check_upgrade(): fix_custom_dir() fix_ccent_conf() fix_seafevents_conf() last_version = read_version_stamp() current_version = os.environ['SEAFILE_VERSION'] if last_version == current_version: fix_media_symlinks(current_version) return elif is_minor_upgrade(last_version, current_version): run_minor_upgrade(current_version) return # Now we do the major upgrade scripts_to_run = collect_upgrade_scripts(from_version=last_version, to_version=current_version) for script in scripts_to_run: loginfo('Running scripts {}'.format(script)) # Here we use a trick: use a version stamp like 6.1.0 to prevent running # all upgrade scripts before 6.1 again (because 6.1 < 6.1.0 in python) new_version = parse_upgrade_script_version(script)[1] + '.0' run_script_and_update_version_stamp(script, new_version) update_version_stamp(current_version)
def get_data(self, body): data = QuadPosition() body_id = body data.found_body = False if self.bodies == []: utils.loginfo("Gazebo not started") else: if hasattr(self.bodies, 'name'): if body_id < len(self.bodies.name): data.found_body = True data.x = self.bodies.pose[body_id].position.x data.y = self.bodies.pose[body_id].position.y data.z = self.bodies.pose[body_id].position.z x = self.bodies.pose[body_id].orientation.x y = self.bodies.pose[body_id].orientation.y z = self.bodies.pose[body_id].orientation.z w = self.bodies.pose[body_id].orientation.w dcm = quat_to_dcm(w, x, y, z) (roll, pitch, yaw) = dcm.to_euler() data.pitch = degrees(pitch) data.roll = degrees(roll) data.yaw = degrees(yaw) print "Sending data for the body with id: " + str(body_id) else: print 'Body not found' return (data)
def csv(request): if request.method == 'POST' and request.POST != {}: requestObject = dict(request.POST.iteritems()) form = forms.Form(requestObject) if form.is_valid(): try: context = {'searchValues': requestObject} csvformat, fieldset, csvitems = setupCSV( requestObject, context) loginfo('csv', context, request) # create the HttpResponse object with the appropriate CSV header. response = HttpResponse(content_type='text/csv') response[ 'Content-Disposition'] = 'attachment; filename="%s-%s.%s"' % ( CSVPREFIX, datetime.datetime.utcnow().strftime("%Y%m%d%H%M%S"), CSVEXTENSION) return writeCsv(response, fieldset, csvitems, writeheader=True, csvFormat=csvformat) except: messages.error(request, 'Problem creating .csv file. Sorry!') context['messages'] = messages return search(request)
def jsonrequest(request): if request.method == 'GET': form = forms.Form(request.GET) requestObject = request.GET if request.method == 'POST': form = forms.Form(request.POST) requestObject = request.POST if form.is_valid(): context = setconstants({}, 'json') del context['additionalInfo'] del context['extra_nav'] del context['searchrows'] del context['searchcolumns'] context = handleJSONrequest(context, requestObject) loginfo(context['appname'], context, request) #if check_json(context): # context['items'] = [] return HttpResponse(json.dumps(context, default=json_util.default)) #else: # return HttpResponse(json.dumps(dump_errors(context)) else: return HttpResponse(json.dumps({'error': 'form is not valid'}))
def Set_Flight_Mode(MODE): """This function sets the flight mode of the drone to MODE.""" return_value = True #Change the flight mode on the Pixhawk flight controller try: rospy.wait_for_service('mavros/set_mode', 10) except: utils.logerr('Mavros is not available') return_value = False utils.loginfo('Changing flight mode to ' + MODE + ' ...') rospy.sleep(2) try: change_param = rospy.ServiceProxy('mavros/set_mode', SetMode) param = change_param(0, MODE) while param.success == False: param = change_param(0, MODE) if param.success == False: utils.logerr('Cannot change flight mode') if param.success: utils.loginfo('Flight mode changed to ' + MODE) else: utils.logerr('Cannot change flight mode') return_value = False except: utils.logerr('Cannot change flight mode') return_value = False return return_value
def prepareFiles(request, validateonly): tricoder_fileinfo = {} tricoder_files = [] numProblems = 0 for lineno, afile in enumerate(request.FILES.getlist('tricoderfiles')): # print afile # we gotta do this for now! if 'barcode.' not in afile.name: afile.name = 'barcode.' + afile.name fileinfo = {'id': lineno, 'name': afile.name, 'status': '', 'date': time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime())} # always use the current date as the date for the filename checking today = time.strftime("%Y-%m-%d", time.localtime()) filenamepattern = r'^barcode.TRIDATA_' + re.escape(today) + r'_[\w_\.]+\.DAT$' if not re.match(filenamepattern, afile.name): fileinfo['status'] = 'filename is not valid' numProblems += 1 else: try: print "%s %s: %s %s (%s %s)" % ('id', lineno, 'name', afile.name, 'size', afile.size) if not validateonly: handle_uploaded_file(afile) fileinfo['status'] = 'OK' except: if validateonly: fileinfo['status'] = 'validation failed' else: fileinfo['status'] = 'file handling problem, not uploaded' numProblems += 1 tricoder_files.append(fileinfo) if numProblems > 0: errormsg = 'Errors found, abandoning upload. Please fix and try again.' else: tricoder_filenumber = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) tricoder_fileinfo['tricoder_filenumber'] = tricoder_filenumber tricoder_fileinfo['estimatedtime'] = '%8.1f' % (len(tricoder_files) * 10 / 60.0) if 'createtricoder' in request.POST: tricoder_fileinfo['status'] = 'createtricoder' if not validateonly: loginfo('start', get_tricoder_file('input',tricoder_filenumber), request) try: retcode = subprocess.call( [POSTBLOBPATH, get_tricoder_file('input',tricoder_filenumber)]) if retcode < 0: loginfo('process', tricoder_filenumber + " Child was terminated by signal %s" % -retcode, request) else: loginfo('process', tricoder_filenumber + ": Child returned %s" % retcode, request) except OSError as e: loginfo('error', "Execution failed: %s" % e, request) loginfo('finish', get_tricoder_file('input',tricoder_filenumber), request) elif 'uploadtricoder' in request.POST: tricoder_fileinfo['status'] = 'uploadtricoder' else: tricoder_fileinfo['status'] = 'No status possible' return tricoder_fileinfo, tricoder_files, numProblems
def Get_Parameter(NODE_NAME,PARAMETER_NAME,DEFAULT_VALUE): param=rospy.get_param(PARAMETER_NAME,DEFAULT_VALUE) if rospy.has_param(PARAMETER_NAME): utils.loginfo(''+PARAMETER_NAME+' found: '+str(param)) else: utils.logwarn(''+PARAMETER_NAME+' not found. Default: '+str(DEFAULT_VALUE)) return param
def generate_local_dockerfile(): loginfo('Generating local Dockerfile ...') context = { 'seafile_version': seafile_version, 'https': is_https(), 'domain': get_conf('server.domain'), } render_template('/templates/Dockerfile.template', join(generated_dir, 'Dockerfile'), context)
def Terminate(self): inputstring = 'rosnode kill `rosnode list | grep ' + self.name + '`' self.execute(inputstring) try: delete_model = rospy.ServiceProxy("gazebo/delete_model", DeleteModel) delete_model(self.name) except rospy.ServiceException as exc: utils.loginfo('Failed to delete model ' + str(exc))
def adjust_gravity_cancel(self): self.name = self._widget.IrisInputBox.currentText() rospy.set_param("/" + self.name + "/CONTROL_CANCEL_GRAVITY", int(self._widget.GravitySpinBox.value())) try: params_load = rospy.ServiceProxy("/%s/blender/update_parameters" % (self.name), Empty) params_load_PID = rospy.ServiceProxy("/%s/PID_controller/update_parameters" % (self.name), Empty) params_load() params_load_PID() except rospy.ServiceException as exc: utils.loginfo("PID not reachable " + str(exc))
def init_selfsigned(): loginfo('Preparing for self signed ssl ...') wait_for_nginx() if not exists(ssl_dir): os.mkdir(ssl_dir) domain = get_conf('SEAFILE_SERVER_HOSTNAME', 'seafile.example.com') call('/scripts/ssl.selfsigned.sh {0} {1}'.format(ssl_dir, domain))
def bmapper(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = SEARCHRESULTS context = setupBMapper(requestObject, context) loginfo('bmapper', context, request) return HttpResponse(context['bmapperurl'])
def gmapper(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = SEARCHRESULTS context = setupGoogleMap(requestObject, context) loginfo('gmapper', context, request) return render(request, 'public_maps.html', context)
def search(request): if request.method == 'GET' and request.GET != {}: context = {'searchValues': dict(request.GET.iteritems())} context = doSearch(context) else: context = setConstants({}) loginfo('start search', context, request) context['additionalInfo'] = AdditionalInfo.objects.filter(live=True) return render(request, 'search.html', context)
def retrieveResults(request): if request.method == 'POST' and request.POST != {}: requestObject = dict(request.POST.iteritems()) form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = doSearch(context) loginfo('results.%s' % context['displayType'], context, request) return render(request, 'searchResults.html', context)
def bmapper(request): if request.method == 'POST' and request.POST != {}: requestObject = dict(request.POST.iteritems()) form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = setupBMapper(requestObject, context) loginfo('bmapper', context, request) return HttpResponse(context['bmapperurl'])
def gmapper(request): if request.method == 'POST' and request.POST != {}: requestObject = dict(request.POST.iteritems()) form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = setupGoogleMap(requestObject, context) loginfo('gmapper', context, request) return render(request, 'maps.html', context)
def gmapper(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = SEARCHRESULTS context = setupGoogleMap(requestObject, context) loginfo('gmapper', context, request) return render(request, 'maps.html', context)
def Connect_To_Mocap(NODE_NAME): #Connect to the Motion Capture System, flag an error if it is unavailable try: utils.loginfo('Connecting to the mocap system...') rospy.wait_for_service('mocap_get_data',10) except: utils.logerr('No connection to the mocap system') sys.exit() utils.loginfo('Connected to Mocap') return rospy.ServiceProxy('mocap_get_data',BodyData)
def publicsearch(request): if request.method == 'GET' and request.GET != {}: context = {'searchValues': request.GET} context = doSearch(SOLRSERVER, SOLRCORE, context) global SEARCHRESULTS SEARCHRESULTS = context else: context = {} context = setConstants(context) loginfo('start search', context, request) return render(request, 'publicsearch.html', context)
def watch_controller(): maxretry = 4 retry = 0 while retry < maxretry: controller_pid = get_command_output('ps aux | grep seafile-controller | grep -v grep || true').strip() garbage_collector_pid = get_command_output('ps aux | grep /scripts/gc.sh | grep -v grep || true').strip() if not controller_pid and not garbage_collector_pid: retry += 1 else: retry = 0 time.sleep(5) loginfo("seafile controller exited unexpectedly.") sys.exit(1)
def adjust_gravity_cancel(self): self.name = self._widget.IrisInputBox.currentText() rospy.set_param('/' + self.name + '/CONTROL_CANCEL_GRAVITY', int(self._widget.GravitySpinBox.value())) try: params_load = rospy.ServiceProxy( "/%s/blender/update_parameters" % (self.name), Empty) params_load_PID = rospy.ServiceProxy( "/%s/PID_controller/update_parameters" % (self.name), Empty) params_load() params_load_PID() except rospy.ServiceException as exc: utils.loginfo("PID not reachable " + str(exc))
def search(request): if request.method == 'GET' and request.GET != {}: context = {'searchValues': request.GET} context = doSearch(context) #global SEARCHRESULTS #SEARCHRESULTS = context else: context = {} context = setConstants(context) loginfo('start search', context, request) return render(request, 'search.html', context)
def embeddedsearch(request): if request.method == 'GET' and request.GET != {}: context = {'searchValues': request.GET} context = doSearch(SOLRSERVER, SOLRCORE, context) global SEARCHRESULTS SEARCHRESULTS = context else: context = {} context = setConstants(context) loginfo('start search', context, request) return render(request, 'public_embeddedsearch.html', context)
def Wait_For_ID(id_int): return_value = False # Wait for Mavros connection and wait until the parameter SYSID_MYGCS is available utils.loginfo('Connecting to Mavros ...') try: rospy.wait_for_service('mavros/param/set', 10) except: utils.logerr( 'Mavros is not available (fail to contact service mavros/param/set).' ) return_value = False utils.loginfo('Connected to Mavros') set_param = rospy.ServiceProxy('mavros/param/set', ParamSet) while return_value == False: try: param = set_param('SYSID_MYGCS', id_int, 0.0) if param.success: utils.loginfo('System ID changed') return_value = True else: utils.logerr('Cannot change system ID') return_value = False except: utils.logerr( 'Cannot connect to the service "mavros/param/set" to change system ID' ) return_value = False rospy.sleep(5) utils.loginfo('Iris initialised...') return return_value
def Wait_For_ID(id_int): return_value=False # Wait for Mavros connection and wait until the parameter SYSID_MYGCS is available utils.loginfo('Connecting to Mavros ...') try: rospy.wait_for_service('mavros/param/set',10) except: utils.logerr('Mavros is not available (fail to contact service mavros/param/set).') return_value=False utils.loginfo('Connected to Mavros') set_param=rospy.ServiceProxy('mavros/param/set',ParamSet) while return_value==False: try: param=set_param('SYSID_MYGCS',id_int,0.0) if param.success: utils.loginfo('System ID changed') return_value=True else: utils.logerr('Cannot change system ID') return_value=False except: utils.logerr('Cannot change system ID') return_value=False rospy.sleep(5) utils.loginfo('Iris initialised...') return return_value
def tool(request, appname): if appname == 'json': return jsonrequest(request) # if we are here, we have been given a particular appname, e.g. "keyinfo", as part of the url context = setconstants({}, appname) if request.method == 'GET': form = forms.Form(request.GET) else: form = forms.Form() if form.is_valid(): # context = dispatch(context, request.GET, appname) loginfo(appname, context, request) return render(request, 'toolbox.html', context)
def Set_System_ID(id_int): return_value=True """This function sets the system ID and checks if it is possible to connect to mavros. The system ID should be 1 to be able to use the rc/override topic.""" utils.loginfo('Connecting to Mavros ...') try: rospy.wait_for_service('mavros/param/set',10) except: utils.logerr('Mavros is not available (fail to contact service mavros/param/set).') return_value=False utils.loginfo('Connected to Mavros') utils.loginfo('Changing system ID ...') rospy.sleep(2) try: change_param=rospy.ServiceProxy('mavros/param/set',ParamSet) param=change_param('SYSID_MYGCS',id_int,0.0) if param.success: utils.loginfo('System ID changed') else: utils.logerr('Cannot change system ID') return_value=False except: utils.logerr('Cannot change system ID') return_value=False return return_value
def Set_System_ID(id_int): return_value = True """This function sets the system ID and checks if it is possible to connect to mavros. The system ID should be 1 to be able to use the rc/override topic.""" utils.loginfo('Connecting to Mavros ...') try: rospy.wait_for_service('mavros/param/set', 10) except: utils.logerr( 'Mavros is not available (fail to contact service mavros/param/set).' ) return_value = False utils.loginfo('Connected to Mavros') utils.loginfo('Changing system ID ...') rospy.sleep(2) try: change_param = rospy.ServiceProxy('mavros/param/set', ParamSet) param = change_param('SYSID_MYGCS', id_int, 0.0) if param.success: utils.loginfo('System ID changed') else: utils.logerr('Cannot change system ID') return_value = False except: utils.logerr('Cannot change system ID') return_value = False return return_value
def Set_System_ID(NODE_NAME,id_int): return_value=True #Necesary to allow RCOverride #Also checks if there is a connection to Mavros, and shuts down if there isn't utils.loginfo('Connecting to Mavros ...') try: rospy.wait_for_service('mavros/param/set',10) except: utils.logerr('Mavros is not available') return_value=False utils.loginfo('Connected to Mavros') utils.loginfo('Changing system ID ...') rospy.sleep(2) try: change_param=rospy.ServiceProxy('mavros/param/set',ParamSet) param=change_param('SYSID_MYGCS',id_int,0.0) except: utils.logerr('Cannot change system ID') return_value=False if param.success: utils.loginfo('System ID changed') else: utils.logerr('Cannot change system ID') return_value=False return return_value
def clean(self): if 'password1' in self.cleaned_data and 'password2' in self.cleaned_data: if self.cleaned_data['password1'] != self.cleaned_data['password2']: raise forms.ValidationError( _(u'You must type the same password each time!')) try: user = User.objects.get(username=self.cleaned_data['username']) loginfo(p=user, label="user") loginfo(p=self.cleaned_data["username"], label="text") except User.DoesNotExist: return self.cleaned_data raise forms.ValidationError( _(u'This username is already taken. Please choose another.'))
def start_publishing(self): utils.loginfo('start publishing') rate = rospy.Rate(30) timer = Time() #Get parameters (all the body ID's that are requested) self.body_names = sml_setup.Get_Parameter(NODE_NAME, 'body_names', ['iris1', 'iris2']) self.body_array = sml_setup.Get_Parameter(NODE_NAME, 'body_array', [1, 2]) if type(self.body_array) is str: self.body_array = ast.literal_eval(self.body_array) #Get topic names for each requested body body_topic_array = self.Get_Topic_Names(self.body_array) #Establish one publisher topic for each requested body topics_publisher = self.Get_Publishers(body_topic_array) #Initialize empty past data list mocap_past_data = [] empty_data = QuadPositionDerived() for i in range(0, len(self.body_array)): mocap_past_data.append(empty_data) while not rospy.is_shutdown(): delta_time = timer.get_time_diff() if self.bodies: for i in range(0, len(self.body_array)): utils.loginfo('body ' + str(i)) if self.body_names[i] in self.bodies.name: indice = self.bodies.name.index(self.body_names[i]) mocap_data = self.get_data(indice) mocap_data_derived = self.Get_Derived_Data( mocap_data, mocap_past_data[i], delta_time) #update past mocap data mocap_past_data[i] = mocap_data_derived #Publish data on topic topics_publisher[i].publish(mocap_data_derived) rate.sleep() utils.logwarn('Mocap stop publishing')
def Param(self): self.name = self._widget.IrisInputBox.currentText() inputstring = "roslaunch scenarios %s.launch simulation:=%s" % (self.name,self.simulation) self.executeBlocking(inputstring) #A sleep for 0.2 seconds that allows the file to be properly launched before you try to load it. rospy.sleep(2.) try: params_load = rospy.ServiceProxy("/%s/blender/update_parameters"%(self.name), Empty) params_load_PID = rospy.ServiceProxy("/%s/PID_controller/update_parameters"%(self.name), Empty) obstacle_params_load = rospy.ServiceProxy("/%s/obstacle_avoidance/update_parameters"%(self.name), Empty) params_load() params_load_PID() except rospy.ServiceException as exc: utils.loginfo("PID not reachable " + str(exc))
def retrieveResults(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = doSearch(SOLRSERVER, SOLRCORE, context) global SEARCHRESULTS SEARCHRESULTS = context context = setConstants(context) loginfo('results.%s' % context['displayType'], context, request) return render(request, 'searchResults.html', context)
def retrieveResults(request): if request.method == 'POST' and request.POST != {}: requestObject = request.POST form = forms.Form(requestObject) if form.is_valid(): context = {'searchValues': requestObject} context = doSearch(SOLRSERVER, SOLRCORE, context) global SEARCHRESULTS SEARCHRESULTS = context context = setConstants(context) loginfo('results.%s' % context['displayType'], context, request) return render(request, 'public_searchResults.html', context)
def prepareFiles(request, validateonly): tricoder_fileinfo = {} tricoder_files = [] for lineno, afile in enumerate(request.FILES.getlist("tricoderfiles")): # print afile try: print "%s %s: %s %s (%s %s)" % ("id", lineno, "name", afile.name, "size", afile.size) fileinfo = {"id": lineno, "name": afile.name, "size": afile.size, "date": ""} if not validateonly: handle_uploaded_file(afile) tricoder_files.append(fileinfo) except: if not validateonly: # we still upload the file, anyway... handle_uploaded_file(afile) tricoder_files.append( {"name": afile.name, "size": afile.size, "error": "problem extracting image metadata, not processed"} ) if len(tricoder_files) > 0: tricoder_filenumber = time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime()) tricoder_fileinfo["tricoder_filenumber"] = tricoder_filenumber tricoder_fileinfo["estimatedtime"] = "%8.1f" % (len(tricoder_files) * 10 / 60.0) if "createtricoder" in request.POST: tricoder_fileinfo["status"] = "createtricoder" if not validateonly: loginfo("start", get_tricoder_file(tricoder_filenumber), request) try: retcode = subprocess.call([POSTBLOBPATH, get_tricoder_file(tricoder_filenumber)]) if retcode < 0: loginfo( "process", tricoder_filenumber + " Child was terminated by signal %s" % -retcode, request ) else: loginfo("process", tricoder_filenumber + ": Child returned %s" % retcode, request) except OSError as e: loginfo("error", "Execution failed: %s" % e, request) loginfo("finish", get_tricoder_file(tricoder_filenumber), request) elif "uploadtricoder" in request.POST: tricoder_fileinfo["status"] = "uploadtricoder" else: tricoder_fileinfo["status"] = "No status possible" return tricoder_fileinfo, tricoder_files
def start_publishing(self): utils.loginfo('start publishing') rate=rospy.Rate(30) timer=Time() #Get parameters (all the body ID's that are requested) self.body_names=sml_setup.Get_Parameter(NODE_NAME,'body_names',['iris1','iris2']) self.body_array=sml_setup.Get_Parameter(NODE_NAME,'body_array',[1,2]) if type(self.body_array) is str: self.body_array=ast.literal_eval(self.body_array) #Get topic names for each requested body body_topic_array=self.Get_Topic_Names(self.body_array) #Establish one publisher topic for each requested body topics_publisher=self.Get_Publishers(body_topic_array) #Initialize empty past data list mocap_past_data=[] empty_data=QuadPositionDerived() for i in range(0,len(self.body_array)): mocap_past_data.append(empty_data) while not rospy.is_shutdown(): delta_time=timer.get_time_diff() if self.bodies: for i in range(0,len(self.body_array)): utils.loginfo('body ' + str(i)) if self.body_names[i] in self.bodies.name: indice = self.bodies.name.index(self.body_names[i]) mocap_data=self.get_data(indice) mocap_data_derived=self.Get_Derived_Data(mocap_data,mocap_past_data[i],delta_time) #update past mocap data mocap_past_data[i]=mocap_data_derived #Publish data on topic topics_publisher[i].publish(mocap_data_derived) rate.sleep() utils.logwarn('Mocap stop publishing')
def tool(request, appname): # if we are here, we have been given a particular appname, e.g. "keyinfo", as part of the url context = {'applayout': appLayout[appname]} if request.method == 'POST': form = forms.Form(request.POST) if form.is_valid(): loginfo(appname, context, request) context = Dispatch(context, request) else: form = forms.Form() context['form'] = form context = setConstants(context, appname) loginfo(appname, context, request) context['additionalInfo'] = AdditionalInfo.objects.filter(live=True) return render(request, 'toolbox.html', context)
def check_upgrade(): last_version = read_version_stamp() current_version = os.environ['SEAFILE_VERSION'] if last_version == current_version: return scripts_to_run = collect_upgrade_scripts(from_version=last_version, to_version=current_version) for script in scripts_to_run: loginfo('Running scripts {}'.format(script)) new_version = parse_upgrade_script_version(script)[1] + '.0' replace_file_pattern(script, 'read dummy', '') call(script) update_version_stamp(new_version) update_version_stamp(current_version)
def __init__(self): utils.loginfo('Mocap starting') utils.loginfo('start publishing') rate=rospy.Rate(30) self.all_bodies = dict() #Get parameters (all the body ID's that are requested) self.body_names=utils.Get_Parameter('body_names',['iris1','iris2']) self.body_array=utils.Get_Parameter('body_array',[1,2]) if type(self.body_array) is str: self.body_array=ast.literal_eval(self.body_array) #Get topic names for each requested body body_topic_array=self.Get_Topic_Names(self.body_array) #Establish one publisher topic for each requested body topics_publisher=self.Get_Publishers(body_topic_array) # Create the different body objects self.body_state = [] for i in range(0,len(self.body_array)): self.body_state.append(State()) # Suscrib to Gazebo self.start_subscribes() while not rospy.is_shutdown(): for i in range(0,len(self.body_array)): if self.body_state[i].data: data = self.all_bodies[self.body_names[i]] self.body_state[i].update(data,self.body_state[i].time) topics_publisher[i].publish(self.body_state[i].get_message()) self.body_state[i].data = False # for i in range(0,len(self.body_array)): # if self.body_state[i].data: # topics_publisher[i].publish(self.body_state[i].get_message()) # self.body_state[i].data = False rate.sleep() utils.logwarn('Mocap stop publishing')
def edit(request, entity, csid): context = {} if request.method == 'GET': requestObject = request.GET form = forms.Form(requestObject) if form.is_valid(): context['entity'] = entity context['csid'] = csid loginfo(entity, context, request) context = doEdit(request,context) else: pass context = setConstants(context) loginfo(entity, context, request) return render(request, 'edit.html', context)