- the answer terminating char of the protocol is LF

- fix sscanf for parsing float numbers regardless of locale
- post_write_delay set to 10 ms


git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2927 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.2.11
Stéphane Fillod, F8CFE 2010-05-28 14:36:52 +00:00
rodzic fb1a9626c7
commit 00db7c42f0
1 zmienionych plików z 11 dodań i 9 usunięć

Wyświetl plik

@ -32,10 +32,12 @@
#include "serial.h"
#include "misc.h"
#include "register.h"
#include "num_stdio.h"
#include "rc2800.h"
#define CR "\r"
#define LF "\x0a"
#define BUFSZ 128
@ -87,12 +89,12 @@ static int rc2800_parse (char *s, char *device, float *value)
else if (!strncmp(s+2, "P=", 2))
{
msgtype=2;
i = sscanf(s+5, "%f", value);
i = num_sscanf(s+5, "%f", value);
}
else if (s[1] == '=')
{
msgtype=2;
i = sscanf(s+2, "%f", value);
i = num_sscanf(s+2, "%f", value);
}
}
}
@ -171,7 +173,7 @@ transaction_write:
/* first reply is an echo */
memset(data,0,data_len);
retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR));
retval = read_string(&rs->rotport, data, data_len, LF, strlen(LF));
if (retval < 0) {
if (retry_read++ < rot->state.rotport.retry)
goto transaction_write;
@ -180,7 +182,7 @@ transaction_write:
/* then comes the answer */
memset(data,0,data_len);
retval = read_string(&rs->rotport, data, data_len, CR, strlen(CR));
retval = read_string(&rs->rotport, data, data_len, LF, strlen(LF));
if (retval < 0) {
if (retry_read++ < rot->state.rotport.retry)
goto transaction_write;
@ -201,10 +203,10 @@ rc2800_rot_set_position(ROT *rot, azimuth_t az, elevation_t el)
rig_debug(RIG_DEBUG_TRACE, "%s called: %f %f\n", __FUNCTION__, az, el);
sprintf(cmdstr, "A%3.1f\r", az);
num_sprintf(cmdstr, "A%3.1f"CR, az);
retval1 = rc2800_transaction(rot, cmdstr, NULL, 0);
sprintf(cmdstr, "E%3.1f\r", el);
num_sprintf(cmdstr, "E%3.1f"CR, el);
retval2 = rc2800_transaction(rot, cmdstr, NULL, 0);
if (retval1 == retval2)
@ -291,7 +293,7 @@ const struct rot_caps rc2800_rot_caps = {
.mfg_name = "M2",
.version = "0.1",
.copyright = "LGPL",
.status = RIG_STATUS_ALPHA,
.status = RIG_STATUS_BETA,
.rot_type = ROT_TYPE_AZEL,
.port_type = RIG_PORT_SERIAL,
.serial_rate_min = 9600,
@ -301,12 +303,12 @@ const struct rot_caps rc2800_rot_caps = {
.serial_parity = RIG_PARITY_NONE,
.serial_handshake = RIG_HANDSHAKE_NONE,
.write_delay = 0,
.post_write_delay = 0,
.post_write_delay = 10,
.timeout = 400,
.retry = 3,
.min_az = 0.0,
.max_az = 450.0,
.max_az = 360.0,
.min_el = 0.0,
.max_el = 180.0,