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 {
|
enum serial_parity_e {
|
||||||
RIG_PARITY_NONE = 0, /*!< No parity */
|
RIG_PARITY_NONE = 0, /*!< No parity */
|
||||||
RIG_PARITY_ODD, /*!< Odd */
|
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_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_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_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_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_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] */
|
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",
|
{ TOK_PARITY, "serial_parity", "Serial parity",
|
||||||
"Serial port 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",
|
{ TOK_HANDSHAKE, "serial_handshake", "Serial handshake",
|
||||||
"Serial port 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;
|
rs->rigport.parm.serial.parity = RIG_PARITY_ODD;
|
||||||
else if (!strcmp(val, "Even"))
|
else if (!strcmp(val, "Even"))
|
||||||
rs->rigport.parm.serial.parity = RIG_PARITY_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
|
else
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
break;
|
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_NONE: s = "None"; break;
|
||||||
case RIG_PARITY_ODD: s = "Odd"; break;
|
case RIG_PARITY_ODD: s = "Odd"; break;
|
||||||
case RIG_PARITY_EVEN: s = "Even"; 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;
|
default: return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
strcpy(val, s);
|
strcpy(val, s);
|
||||||
|
|
|
@ -103,7 +103,7 @@ static const struct confparams rotfrontend_serial_cfg_params[] = {
|
||||||
},
|
},
|
||||||
{ TOK_PARITY, "serial_parity", "Serial parity",
|
{ TOK_PARITY, "serial_parity", "Serial parity",
|
||||||
"Serial port 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",
|
{ TOK_HANDSHAKE, "serial_handshake", "Serial handshake",
|
||||||
"Serial port 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;
|
rs->rotport.parm.serial.parity = RIG_PARITY_ODD;
|
||||||
else if (!strcmp(val, "Even"))
|
else if (!strcmp(val, "Even"))
|
||||||
rs->rotport.parm.serial.parity = RIG_PARITY_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
|
else
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
break;
|
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_NONE: s = "None"; break;
|
||||||
case RIG_PARITY_ODD: s = "Odd"; break;
|
case RIG_PARITY_ODD: s = "Odd"; break;
|
||||||
case RIG_PARITY_EVEN: s = "Even"; 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;
|
default: return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
strcpy(val, s);
|
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 |= PARENB;
|
||||||
options.c_cflag |= PARODD;
|
options.c_cflag |= PARODD;
|
||||||
break;
|
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:
|
default:
|
||||||
rig_debug(RIG_DEBUG_ERR, "%s: unsupported serial_parity "
|
rig_debug(RIG_DEBUG_ERR, "%s: unsupported serial_parity "
|
||||||
"specified: %d\n", __func__,
|
"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,
|
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_rate_max, caps->serial_data_bits,
|
||||||
caps->serial_parity == RIG_PARITY_NONE ? 'N':
|
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_stop_bits,
|
||||||
caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
|
caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
|
||||||
(caps->serial_handshake == RIG_HANDSHAKE_XONXOFF ? "XONXOFF" : "CTS/RTS")
|
(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,
|
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_rate_max, caps->serial_data_bits,
|
||||||
caps->serial_parity == RIG_PARITY_NONE ? 'N':
|
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_stop_bits,
|
||||||
caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
|
caps->serial_handshake == RIG_HANDSHAKE_NONE ? "" :
|
||||||
(caps->serial_handshake == RIG_HANDSHAKE_XONXOFF ? " XONXOFF" : " CTS/RTS")
|
(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_rate_min, caps->serial_rate_max,
|
||||||
caps->serial_data_bits,
|
caps->serial_data_bits,
|
||||||
caps->serial_parity==RIG_PARITY_NONE?'N':
|
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_stop_bits,
|
||||||
caps->serial_handshake==RIG_HANDSHAKE_NONE?"none":
|
caps->serial_handshake==RIG_HANDSHAKE_NONE?"none":
|
||||||
(caps->serial_handshake==RIG_HANDSHAKE_XONXOFF?"XONXOFF":"CTS/RTS")
|
(caps->serial_handshake==RIG_HANDSHAKE_XONXOFF?"XONXOFF":"CTS/RTS")
|
||||||
|
|
Ładowanie…
Reference in New Issue