kopia lustrzana https://github.com/Hamlib/Hamlib
* added RIG_PORT_NONE propoer support in rig_open
* added rig_set_ann/rig_get_ann and rig_set_ant/rig_get_ant wrappers git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@384 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.1.1
rodzic
f128a7144e
commit
8c9880b0dd
144
src/rig.c
144
src/rig.c
|
@ -2,7 +2,7 @@
|
||||||
Copyright (C) 2000 Stephane Fillod and Frank Singleton
|
Copyright (C) 2000 Stephane Fillod and Frank Singleton
|
||||||
This file is part of the hamlib package.
|
This file is part of the hamlib package.
|
||||||
|
|
||||||
$Id: rig.c,v 1.17 2001-02-11 23:09:16 f4cfe Exp $
|
$Id: rig.c,v 1.18 2001-02-14 01:08:12 f4cfe Exp $
|
||||||
|
|
||||||
Hamlib is free software; you can redistribute it and/or modify it
|
Hamlib is free software; you can redistribute it and/or modify it
|
||||||
under the terms of the GNU General Public License as published by
|
under the terms of the GNU General Public License as published by
|
||||||
|
@ -300,6 +300,8 @@ int rig_open(RIG *rig)
|
||||||
if (!rig)
|
if (!rig)
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
|
rig->state.fd = -1;
|
||||||
|
|
||||||
switch(rig->state.port_type) {
|
switch(rig->state.port_type) {
|
||||||
case RIG_PORT_SERIAL:
|
case RIG_PORT_SERIAL:
|
||||||
status = serial_open(&rig->state);
|
status = serial_open(&rig->state);
|
||||||
|
@ -314,12 +316,16 @@ int rig_open(RIG *rig)
|
||||||
rig->state.fd = status;
|
rig->state.fd = status;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RIG_PORT_NONE:
|
||||||
|
break; /* ez :) */
|
||||||
|
|
||||||
case RIG_PORT_NETWORK: /* not implemented yet! */
|
case RIG_PORT_NETWORK: /* not implemented yet! */
|
||||||
return -RIG_ENIMPL;
|
return -RIG_ENIMPL;
|
||||||
default:
|
default:
|
||||||
return -RIG_EINVAL;
|
return -RIG_EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (rig->state.fd >= 0)
|
||||||
rig->state.stream = fdopen(rig->state.fd, "r+b");
|
rig->state.stream = fdopen(rig->state.fd, "r+b");
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1322,6 +1328,142 @@ int rig_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts)
|
||||||
return retcode;
|
return retcode;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rig_set_ann - set the announce level
|
||||||
|
* @rig: The rig handle
|
||||||
|
* @ann: The announce level
|
||||||
|
*
|
||||||
|
* The rig_set_ann() function sets the current announce level.
|
||||||
|
*
|
||||||
|
* RETURN VALUE: The rig_set_ann() function returns %RIG_OK
|
||||||
|
* if the operation has been sucessful, or a negative value
|
||||||
|
* if an error occured (in which case, cause is set appropriately).
|
||||||
|
*
|
||||||
|
* SEE ALSO: rig_get_ann()
|
||||||
|
*/
|
||||||
|
|
||||||
|
int rig_set_ann(RIG *rig, ann_t ann)
|
||||||
|
{
|
||||||
|
if (!rig || !rig->caps)
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
|
if (rig->caps->set_ann == NULL)
|
||||||
|
return -RIG_ENAVAIL;
|
||||||
|
|
||||||
|
return rig->caps->set_ann(rig, ann);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rig_get_ann - get the current announce level
|
||||||
|
* @rig: The rig handle
|
||||||
|
* @ann: The location where to store the current announce level
|
||||||
|
*
|
||||||
|
* The rig_get_ann() function retrieves the current announce level.
|
||||||
|
*
|
||||||
|
* RETURN VALUE: The rig_get_ann() function returns %RIG_OK
|
||||||
|
* if the operation has been sucessful, or a negative value
|
||||||
|
* if an error occured (in which case, cause is set appropriately).
|
||||||
|
*
|
||||||
|
* SEE ALSO: rig_set_ann()
|
||||||
|
*/
|
||||||
|
|
||||||
|
int rig_get_ann(RIG *rig, ann_t *ann)
|
||||||
|
{
|
||||||
|
if (!rig || !rig->caps || !ann)
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
|
if (rig->caps->get_ann == NULL)
|
||||||
|
return -RIG_ENAVAIL;
|
||||||
|
|
||||||
|
return rig->caps->get_ann(rig, ann);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rig_set_ant - set the antenna
|
||||||
|
* @rig: The rig handle
|
||||||
|
* @vfo: The target VFO
|
||||||
|
* @ant: The anntena to select
|
||||||
|
*
|
||||||
|
* The rig_set_ant() function sets the current antenna.
|
||||||
|
*
|
||||||
|
* RETURN VALUE: The rig_set_ant() function returns %RIG_OK
|
||||||
|
* if the operation has been sucessful, or a negative value
|
||||||
|
* if an error occured (in which case, cause is set appropriately).
|
||||||
|
*
|
||||||
|
* SEE ALSO: rig_get_ant()
|
||||||
|
*/
|
||||||
|
|
||||||
|
int rig_set_ant(RIG *rig, vfo_t vfo, ant_t ant)
|
||||||
|
{
|
||||||
|
int retcode;
|
||||||
|
vfo_t curr_vfo;
|
||||||
|
|
||||||
|
if (!rig || !rig->caps)
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
|
if (rig->caps->set_ant == NULL)
|
||||||
|
return -RIG_ENAVAIL;
|
||||||
|
|
||||||
|
if (rig->caps->targetable_vfo || vfo == RIG_VFO_CURR ||
|
||||||
|
vfo == rig->state.current_vfo)
|
||||||
|
return rig->caps->set_ant(rig, vfo, ant);
|
||||||
|
|
||||||
|
if (!rig->caps->set_vfo)
|
||||||
|
return -RIG_ENTARGET;
|
||||||
|
curr_vfo = rig->state.current_vfo;
|
||||||
|
retcode = rig->caps->set_vfo(rig, vfo);
|
||||||
|
if (retcode != RIG_OK)
|
||||||
|
return retcode;
|
||||||
|
|
||||||
|
retcode = rig->caps->set_ant(rig, vfo, ant);
|
||||||
|
rig->caps->set_vfo(rig, curr_vfo);
|
||||||
|
return retcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* rig_get_ant - get the current antenna
|
||||||
|
* @rig: The rig handle
|
||||||
|
* @vfo: The target VFO
|
||||||
|
* @ant: The location where to store the current antenna
|
||||||
|
*
|
||||||
|
* The rig_get_ant() function retrieves the current antenna.
|
||||||
|
*
|
||||||
|
* RETURN VALUE: The rig_get_ant() function returns %RIG_OK
|
||||||
|
* if the operation has been sucessful, or a negative value
|
||||||
|
* if an error occured (in which case, cause is set appropriately).
|
||||||
|
*
|
||||||
|
* SEE ALSO: rig_set_ant()
|
||||||
|
*/
|
||||||
|
|
||||||
|
int rig_get_ant(RIG *rig, vfo_t vfo, ant_t *ant)
|
||||||
|
{
|
||||||
|
int retcode;
|
||||||
|
vfo_t curr_vfo;
|
||||||
|
|
||||||
|
if (!rig || !rig->caps || !ant)
|
||||||
|
return -RIG_EINVAL;
|
||||||
|
|
||||||
|
if (rig->caps->get_ant == NULL)
|
||||||
|
return -RIG_ENAVAIL;
|
||||||
|
|
||||||
|
if (rig->caps->targetable_vfo || vfo == RIG_VFO_CURR ||
|
||||||
|
vfo == rig->state.current_vfo)
|
||||||
|
return rig->caps->get_ant(rig, vfo, ant);
|
||||||
|
|
||||||
|
if (!rig->caps->set_vfo)
|
||||||
|
return -RIG_ENTARGET;
|
||||||
|
curr_vfo = rig->state.current_vfo;
|
||||||
|
retcode = rig->caps->set_vfo(rig, vfo);
|
||||||
|
if (retcode != RIG_OK)
|
||||||
|
return retcode;
|
||||||
|
|
||||||
|
retcode = rig->caps->get_ant(rig, vfo, ant);
|
||||||
|
rig->caps->set_vfo(rig, curr_vfo);
|
||||||
|
return retcode;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rig_power2mW - conversion utility from relative range to absolute in mW
|
* rig_power2mW - conversion utility from relative range to absolute in mW
|
||||||
* @rig: The rig handle
|
* @rig: The rig handle
|
||||||
|
|
Ładowanie…
Reference in New Issue