Add Mark/Space serial parity

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2996 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.2.13
Stéphane Fillod, F8CFE 2010-10-26 19:31:09 +00:00
rodzic 2586f17ecd
commit 9de8e3f1d2
7 zmienionych plików z 38 dodań i 7 usunięć

Wyświetl plik

@ -180,7 +180,9 @@ typedef enum rig_port_e {
enum serial_parity_e {
RIG_PARITY_NONE = 0, /*!< No parity */
RIG_PARITY_ODD, /*!< Odd */
RIG_PARITY_EVEN /*!< Even */
RIG_PARITY_EVEN, /*!< Even */
RIG_PARITY_MARK, /*!< Mark */
RIG_PARITY_SPACE /*!< Space */
};
/**
@ -624,7 +626,7 @@ enum rig_level_e {
RIG_LEVEL_RF = (1<<4), /*!< \c RF -- RF gain (not TX power), arg float [0.0 ... 1.0] */
RIG_LEVEL_SQL = (1<<5), /*!< \c SQL -- Squelch, arg float [0.0 ... 1.0] */
RIG_LEVEL_IF = (1<<6), /*!< \c IF -- IF, arg int (Hz) */
RIG_LEVEL_APF = (1<<7), /*!< \c APF -- APF, arg float [0.0 ... 1.0] */
RIG_LEVEL_APF = (1<<7), /*!< \c APF -- Audio Peak Filter, arg float [0.0 ... 1.0] */
RIG_LEVEL_NR = (1<<8), /*!< \c NR -- Noise Reduction, arg float [0.0 ... 1.0] */
RIG_LEVEL_PBT_IN = (1<<9), /*!< \c PBT_IN -- Twin PBT (inside), arg float [0.0 ... 1.0] */
RIG_LEVEL_PBT_OUT = (1<<10),/*!< \c PBT_OUT -- Twin PBT (outside), arg float [0.0 ... 1.0] */

Wyświetl plik

@ -114,7 +114,7 @@ static const struct confparams frontend_serial_cfg_params[] = {
},
{ TOK_PARITY, "serial_parity", "Serial parity",
"Serial port parity",
"None", RIG_CONF_COMBO, { .c = {{ "None", "Odd", "Even", NULL }} }
"None", RIG_CONF_COMBO, { .c = {{ "None", "Odd", "Even", "Mark", "Space", NULL }} }
},
{ TOK_HANDSHAKE, "serial_handshake", "Serial handshake",
"Serial port handshake",
@ -208,6 +208,10 @@ static int frontend_set_conf(RIG *rig, token_t token, const char *val)
rs->rigport.parm.serial.parity = RIG_PARITY_ODD;
else if (!strcmp(val, "Even"))
rs->rigport.parm.serial.parity = RIG_PARITY_EVEN;
else if (!strcmp(val, "Mark"))
rs->rigport.parm.serial.parity = RIG_PARITY_MARK;
else if (!strcmp(val, "Space"))
rs->rigport.parm.serial.parity = RIG_PARITY_SPACE;
else
return -RIG_EINVAL;
break;
@ -385,6 +389,8 @@ static int frontend_get_conf(RIG *rig, token_t token, char *val)
case RIG_PARITY_NONE: s = "None"; break;
case RIG_PARITY_ODD: s = "Odd"; break;
case RIG_PARITY_EVEN: s = "Even"; break;
case RIG_PARITY_MARK: s = "Mark"; break;
case RIG_PARITY_SPACE: s = "Space"; break;
default: return -RIG_EINVAL;
}
strcpy(val, s);

Wyświetl plik

@ -103,7 +103,7 @@ static const struct confparams rotfrontend_serial_cfg_params[] = {
},
{ TOK_PARITY, "serial_parity", "Serial parity",
"Serial port parity",
"None", RIG_CONF_COMBO, { .c = {{ "None", "Odd", "Even", NULL }} }
"None", RIG_CONF_COMBO, { .c = {{ "None", "Odd", "Even", "Mark", "Space", NULL }} }
},
{ TOK_HANDSHAKE, "serial_handshake", "Serial handshake",
"Serial port handshake",
@ -186,6 +186,10 @@ int frontrot_set_conf(ROT *rot, token_t token, const char *val)
rs->rotport.parm.serial.parity = RIG_PARITY_ODD;
else if (!strcmp(val, "Even"))
rs->rotport.parm.serial.parity = RIG_PARITY_EVEN;
else if (!strcmp(val, "Mark"))
rs->rotport.parm.serial.parity = RIG_PARITY_MARK;
else if (!strcmp(val, "Space"))
rs->rotport.parm.serial.parity = RIG_PARITY_SPACE;
else
return -RIG_EINVAL;
break;
@ -275,6 +279,8 @@ int frontrot_get_conf(ROT *rot, token_t token, char *val)
case RIG_PARITY_NONE: s = "None"; break;
case RIG_PARITY_ODD: s = "Odd"; break;
case RIG_PARITY_EVEN: s = "Even"; break;
case RIG_PARITY_MARK: s = "Mark"; break;
case RIG_PARITY_SPACE: s = "Space"; break;
default: return -RIG_EINVAL;
}
strcpy(val, s);

Wyświetl plik

@ -281,6 +281,17 @@ int HAMLIB_API serial_setup(hamlib_port_t *rp)
options.c_cflag |= PARENB;
options.c_cflag |= PARODD;
break;
/* CMSPAR is not POSIX */
#ifdef CMSPAR
case RIG_PARITY_MARK:
options.c_cflag |= PARENB | CMSPAR;
options.c_cflag |= PARODD;
break;
case RIG_PARITY_SPACE:
options.c_cflag |= PARENB | CMSPAR;
options.c_cflag &= ~PARODD;
break;
#endif
default:
rig_debug(RIG_DEBUG_ERR, "%s: unsupported serial_parity "
"specified: %d\n", __func__,

Wyświetl plik

@ -152,7 +152,9 @@ int dumpcaps (RIG* rig, FILE *fout)
fprintf(fout, "Serial speed: %d..%d bauds, %d%c%d %s\n", caps->serial_rate_min,
caps->serial_rate_max, caps->serial_data_bits,
caps->serial_parity == RIG_PARITY_NONE ? 'N':
(caps->serial_parity == RIG_PARITY_ODD ? 'O' : 'E'),
caps->serial_parity == RIG_PARITY_ODD ? 'O' :
caps->serial_parity == RIG_PARITY_EVEN ? 'E' :
caps->serial_parity == RIG_PARITY_MARK ? 'M' : 'S',
caps->serial_stop_bits,
caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
(caps->serial_handshake == RIG_HANDSHAKE_XONXOFF ? "XONXOFF" : "CTS/RTS")

Wyświetl plik

@ -79,7 +79,9 @@ int dumpcaps_rot (ROT* rot, FILE *fout)
fprintf(fout, "Serial speed:\t\t%d..%d bauds, %d%c%d%s\n", caps->serial_rate_min,
caps->serial_rate_max, caps->serial_data_bits,
caps->serial_parity == RIG_PARITY_NONE ? 'N':
(caps->serial_parity == RIG_PARITY_ODD ? 'O' : 'E'),
caps->serial_parity == RIG_PARITY_ODD ? 'O' :
caps->serial_parity == RIG_PARITY_EVEN ? 'E' :
caps->serial_parity == RIG_PARITY_MARK ? 'M' : 'S',
caps->serial_stop_bits,
caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
(caps->serial_handshake == RIG_HANDSHAKE_XONXOFF ? " XONXOFF" : " CTS/RTS")

Wyświetl plik

@ -168,7 +168,9 @@ int print_caps_parameters(const struct rig_caps *caps, void *data)
caps->serial_rate_min, caps->serial_rate_max,
caps->serial_data_bits,
caps->serial_parity==RIG_PARITY_NONE?'N':
(caps->serial_parity==RIG_PARITY_ODD?'O':'E'),
caps->serial_parity==RIG_PARITY_ODD?'O':
caps->serial_parity==RIG_PARITY_EVEN?'E':
caps->serial_parity==RIG_PARITY_MARK?'M':'S',
caps->serial_stop_bits,
caps->serial_handshake==RIG_HANDSHAKE_NONE?"none":
(caps->serial_handshake==RIG_HANDSHAKE_XONXOFF?"XONXOFF":"CTS/RTS")