kopia lustrzana https://github.com/Hamlib/Hamlib
Add Mark/Space serial parity
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2996 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.13
rodzic
2586f17ecd
commit
9de8e3f1d2
|
@ -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] */
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
|
|
11
src/serial.c
11
src/serial.c
|
@ -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__,
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
Ładowanie…
Reference in New Issue