Using p7_makesettings now.
This commit is contained in:
parent
bd9ebf1ce5
commit
69aaf390a4
|
@ -177,52 +177,6 @@ FOOT;
|
|||
return (0); \
|
||||
}
|
||||
|
||||
/**
|
||||
* make_settings:
|
||||
* Make settings from a string.
|
||||
*
|
||||
* @arg fmt the format string.
|
||||
* @arg settings the settings to set.
|
||||
* @return if there was an error (0 if ok).
|
||||
*/
|
||||
|
||||
static int make_settings(const char *argname,
|
||||
const char *fmt, p7_streamsettings_t *settings)
|
||||
{
|
||||
/* extract data from the string */
|
||||
unsigned int speed; char par; int stop;
|
||||
if (sscanf(fmt, "%u%c%d", &speed, &par, &stop) < 3
|
||||
|| (par != 'N' && par != 'E' && par != 'O')
|
||||
|| (stop != 1 && stop != 2)) {
|
||||
log("%s: invalid format, expected <speed,parity,stop bits>, e.g. "
|
||||
"9600N2 or 115200O1!\n", argname);
|
||||
return (1);
|
||||
}
|
||||
|
||||
/* get the speed */
|
||||
switch (speed) {
|
||||
case 9600: speed = P7_B9600; break;
|
||||
case 19200: speed = P7_B19200; break;
|
||||
case 38400: speed = P7_B38400; break;
|
||||
case 57600: speed = P7_B57600; break;
|
||||
case 115200: speed = P7_B115200; break;
|
||||
default:
|
||||
log("%s: %u is not a valid speed!\n", argname, speed);
|
||||
return (1);
|
||||
}
|
||||
|
||||
/* set the settings */
|
||||
p7_initcomm(settings);
|
||||
settings->speed = speed;
|
||||
settings->flags &= ~(P7_TWOSTOPBITS | P7_PARMASK);
|
||||
settings->flags |= --stop ? P7_TWOSTOPBITS : P7_ONESTOPBIT;
|
||||
settings->flags |= par == 'N' ? P7_PARDIS :
|
||||
par == 'E' ? P7_PARENB | P7_PAREVEN : P7_PARENB | P7_PARODD;
|
||||
|
||||
/* no error! */
|
||||
return (0);
|
||||
}
|
||||
|
||||
/**
|
||||
* parse_args:
|
||||
* Args parsing main function.
|
||||
|
@ -415,8 +369,12 @@ int parse_args(int ac, char **av, args_t *args)
|
|||
/* use serial settings */
|
||||
if (s_use) {
|
||||
if (args->com) args->use = &args->_use;
|
||||
if (make_settings("--use", s_use, &args->_use))
|
||||
if (p7_makesettings(&args->_use, s_use)) {
|
||||
log("--use: invalid format!\n");
|
||||
log("--use: expected <speed><parity><stopbits>, "
|
||||
"e.g. 9600N2 or 115200E1!\n");
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
|
||||
/* set serial settings */
|
||||
|
@ -425,8 +383,12 @@ int parse_args(int ac, char **av, args_t *args)
|
|||
else if (s_set) {
|
||||
args->do_the_set = 1;
|
||||
if (args->com) args->set = &args->_set;
|
||||
if (make_settings("--set", s_set, &args->_set))
|
||||
if (p7_makesettings(&args->_set, s_set)) {
|
||||
log("--set: invalid format!\n");
|
||||
log("--set: expected <speed><parity><stopbits>, "
|
||||
"e.g. 9600N2 or 115200E1!\n");
|
||||
return (0);
|
||||
}
|
||||
}
|
||||
|
||||
/* check local path */
|
||||
|
|
Reference in New Issue