Merge branch 'master' of git://github.com/alexschultze/hamlib into alexschultze-master

Hamlib-3.0
Nate Bargmann 2015-04-03 21:16:46 -05:00
commit 013f30f826
4 zmienionych plików z 120 dodań i 4 usunięć

Wyświetl plik

@ -179,7 +179,7 @@ easycomm_rot_move(ROT *rot, int direction, int speed)
int retval; int retval;
rig_debug(RIG_DEBUG_TRACE, "%s called\n", __FUNCTION__); rig_debug(RIG_DEBUG_TRACE, "%s called\n", __FUNCTION__);
/* Note: speed is unused at the moment */ /* For EasyComm 1/2/3 */
switch (direction) { switch (direction) {
case ROT_MOVE_UP: /* Elevation increase */ case ROT_MOVE_UP: /* Elevation increase */
sprintf(cmdstr, "MU\n"); sprintf(cmdstr, "MU\n");
@ -205,6 +205,62 @@ easycomm_rot_move(ROT *rot, int direction, int speed)
return RIG_OK; return RIG_OK;
} }
static int
easycomm_rot_move_velocity(ROT *rot, int direction, int speed)
{
char cmdstr[24], ackbuf[32];
int retval;
rig_debug(RIG_DEBUG_TRACE, "%s called\n", __FUNCTION__);
if(speed<0 && speed>9999)
rig_debug(RIG_DEBUG_ERR,"%s: Invalid speed value!(0-9999) (%d)\n", __FUNCTION__, speed);
return -RIG_EINVAL;
/* Speed for EasyComm 3 */
switch (direction) {
case ROT_MOVE_UP: /* Elevation increase */
sprintf(cmdstr, "VU%04d\n", speed);
break;
case ROT_MOVE_DOWN: /* Elevation decrease */
sprintf(cmdstr, "VD%04d\n", speed);
break;
case ROT_MOVE_LEFT: /* Azimuth decrease */
sprintf(cmdstr, "VL%04d\n", speed);
break;
case ROT_MOVE_RIGHT: /* Azimuth increase */
sprintf(cmdstr, "VR%04d\n", speed);
break;
default:
rig_debug(RIG_DEBUG_ERR,"%s: Invalid direction value! (%d)\n", __FUNCTION__, direction);
return -RIG_EINVAL;
}
retval = easycomm_transaction(rot, cmdstr, ackbuf, sizeof(ackbuf));
if (retval != RIG_OK)
return retval;
return RIG_OK;
}
easycomm_rot_get_info(ROT *rot)
{
char cmdstr[16], ackbuf[32];
int retval;
rig_debug(RIG_DEBUG_TRACE, "%s called\n", __FUNCTION__);
sprintf(cmdstr, "IN\n");
retval = easycomm_transaction(rot, cmdstr, ackbuf, sizeof(ackbuf));
if (retval != RIG_OK) {
rig_debug(RIG_DEBUG_TRACE, "%s got error: %d\n", __FUNCTION__, retval);
return retval;
}
/* Parse parse string to extract AZ,EL values */
rig_debug(RIG_DEBUG_TRACE, "%s got response: %s\n", __FUNCTION__, ackbuf);
return ackbuf;
}
/* ************************************************************************* */ /* ************************************************************************* */
/* /*
* Easycomm rotator capabilities. * Easycomm rotator capabilities.
@ -290,6 +346,50 @@ const struct rot_caps easycomm2_rot_caps = {
.get_info = NULL, .get_info = NULL,
}; };
/* EasycommIII provides changes Moving functions and info.
*/
const struct rot_caps easycomm3_rot_caps = {
.rot_model = ROT_MODEL_EASYCOMM3,
.model_name = "EasycommIII",
.mfg_name = "Hamlib",
.version = "0.3",
.copyright = "LGPL",
.status = RIG_STATUS_ALPHA,
.rot_type = ROT_TYPE_OTHER,
.port_type = RIG_PORT_SERIAL,
.serial_rate_min = 9600,
.serial_rate_max = 19200,
.serial_data_bits = 8,
.serial_stop_bits = 1,
.serial_parity = RIG_PARITY_NONE,
.serial_handshake = RIG_HANDSHAKE_NONE,
.write_delay = 0,
.post_write_delay = 0,
.timeout = 200,
.retry = 3,
.min_az = 0.0,
.max_az = 360.0,
.min_el = 0.0,
.max_el = 180.0,
.priv = NULL, /* priv */
.rot_init = NULL,
.rot_cleanup = NULL,
.rot_open = NULL,
.rot_close = NULL,
.get_position = easycomm_rot_get_position,
.set_position = easycomm_rot_set_position,
.stop = easycomm_rot_stop,
.park = easycomm_rot_park,
.reset = easycomm_rot_reset,
.move = easycomm_rot_move_velocity,
.get_info = NULL,
};
/* ************************************************************************* */ /* ************************************************************************* */
DECLARE_INITROT_BACKEND(easycomm) DECLARE_INITROT_BACKEND(easycomm)
@ -298,7 +398,7 @@ DECLARE_INITROT_BACKEND(easycomm)
rot_register(&easycomm1_rot_caps); rot_register(&easycomm1_rot_caps);
rot_register(&easycomm2_rot_caps); rot_register(&easycomm2_rot_caps);
rot_register(&easycomm3_rot_caps);
return RIG_OK; return RIG_OK;
} }

Wyświetl plik

@ -25,5 +25,6 @@
extern const struct rot_caps easycomm1_rot_caps; extern const struct rot_caps easycomm1_rot_caps;
extern const struct rot_caps easycomm2_rot_caps; extern const struct rot_caps easycomm2_rot_caps;
extern const struct rot_caps easycomm3_rot_caps;
#endif /* _ROT_EASYCOMM_H */ #endif /* _ROT_EASYCOMM_H */

Wyświetl plik

@ -38,8 +38,8 @@ The Host PC can issue the following commands -:
Command Meaning Perameters Command Meaning Perameters
------- ------- ---------- ------- ------- ----------
AZ Azimuth number - 1 decimal place AZ Azimuth number - 1 decimal place [deg]
EL Elevation number - 1 decimal place EL Elevation number - 1 decimal place [deg]
UP Uplink freq in Hertz UP Uplink freq in Hertz
DN Downlink freq in Hertz DN Downlink freq in Hertz
DM Downlink Mode ascii, eg SSB, FM DM Downlink Mode ascii, eg SSB, FM
@ -83,3 +83,17 @@ ALxxx Alarm, where xxxx is an ascii string with the alarm info.
Chris Jackson, G7UPN Chris Jackson, G7UPN
EASYCOMM III Standard
--------------------
The EasyComm 3 standard is an extension of the version 2 with the additional features:
Command Meaning Perameters
------- ------- ----------
IN Get Status string
VL Velocity Left number [mdeg/s]
VR Velocity Right number [mdeg/s]
VU Velocity Up number [mdeg/s]
VD Velocity Down number [mdeg/s]

Wyświetl plik

@ -87,6 +87,7 @@
#define ROT_MODEL_EASYCOMM1 ROT_MAKE_MODEL(ROT_EASYCOMM, 1) #define ROT_MODEL_EASYCOMM1 ROT_MAKE_MODEL(ROT_EASYCOMM, 1)
#define ROT_MODEL_EASYCOMM2 ROT_MAKE_MODEL(ROT_EASYCOMM, 2) #define ROT_MODEL_EASYCOMM2 ROT_MAKE_MODEL(ROT_EASYCOMM, 2)
#define ROT_MODEL_TRAKBOX ROT_MAKE_MODEL(ROT_EASYCOMM, 3) #define ROT_MODEL_TRAKBOX ROT_MAKE_MODEL(ROT_EASYCOMM, 3)
#define ROT_MODEL_EASYCOMM3 ROT_MAKE_MODEL(ROT_EASYCOMM, 4)
/*! \def ROT_MODEL_FODTRACK /*! \def ROT_MODEL_FODTRACK
* \brief A macro that returns the model number of the Fodtrack backend. * \brief A macro that returns the model number of the Fodtrack backend.