Esempio n. 1
0
int sbSaveControlParamters(const char * fname, 
		const struct SBControlParameters * params)
{
	int res;
	FILE * fp = fopen(fname,"w");
	if (!fp) {perror("sbSaveControlParamters:");return -1;}
	res = sbPrintControlParameters(fp,params);
	fclose(fp);
	return res;
}
Esempio n. 2
0
int sbLoadControlParameters(const char * fname,
		struct SBControlParameters * params)
{
	char line[80],pname[80];
	float value;
	int res = 0;
	FILE * fp = stdin;
	if (strcmp(fname,"-")!=0) {
		fp = fopen(fname,"r");
		if (!fp) {perror("sbLoadControlParameters:");return -1;}
	}
	while (!feof(fp)) {
		line[0] = 0;
		fgets(line,79,fp);
		if (line[0] == '#') {
			continue;
		}
		if (sscanf(line," %s %e ",pname,&value) != 2) {
			continue;
		}
		if (strcasecmp(pname,"baseThrust")==0) {
			params->baseThrust = value;
		}
		if (strcasecmp(pname,"yawOffset")==0) {
			params->yawOffset = value;
		}
		if (strcasecmp(pname,"altitudeKp")==0) {
			params->altitudeKp = value;
		}
		if (strcasecmp(pname,"altitudeKd")==0) {
			params->altitudeKd = value;
		}
		if (strcasecmp(pname,"altitudeKi")==0) {
			params->altitudeKi = value;
		}
		if (strcasecmp(pname,"yawKp")==0) {
			params->yawKp = value;
		}
		if (strcasecmp(pname,"yawKi")==0) {
			params->yawKi = value;
		}
		if (strcasecmp(pname,"yawKd")==0) {
			params->yawKd = value;
		}
	}
	if (fp != stdin) {
		fclose(fp);
	}
	printf("Loaded control parameters:\n");
	sbPrintControlParameters(stdout,params);
	return res;
}
Esempio n. 3
0
		int save(const char * fname) {
			struct SBControlParameters params;
			res = 0;
			sbLockCommunication(&simple->control);
			DEBUG(res = sbGetControlParameters(&simple->control,&params));
			sbUnlockCommunication(&simple->control);
			if (res) return res;

			if (strcmp(fname,"-")==0) {
				DEBUG(res = sbPrintControlParameters(stdout,&params));
			} else {
				DEBUG(res = sbSaveControlParamters(fname,&params));
			}
			if (res) return res;
			return 0;
		}