kopia lustrzana https://github.com/Hamlib/Hamlib
more data passed by rigstate_1
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@815 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.1.3
rodzic
5681ddebbb
commit
7c5e7f2476
|
@ -2,7 +2,7 @@
|
|||
% * Hamlib Interface - RPC definitions
|
||||
% * Copyright (c) 2000,2001 by Stephane Fillod and Frank Singleton
|
||||
% *
|
||||
% * $Id: rpcrig.x,v 1.2 2001-12-26 23:40:54 fillods Exp $
|
||||
% * $Id: rpcrig.x,v 1.3 2001-12-27 21:52:07 fillods Exp $
|
||||
% *
|
||||
% * This library is free software; you can redistribute it and/or modify
|
||||
% * it under the terms of the GNU Library General Public License as
|
||||
|
@ -23,6 +23,7 @@
|
|||
/* This gets stuffed into the source files. */
|
||||
#if RPC_HDR
|
||||
%#include <rpc/xdr.h>
|
||||
%#include <hamlib/rig.h>
|
||||
#endif
|
||||
|
||||
typedef unsigned int model_x;
|
||||
|
@ -36,6 +37,8 @@ typedef int dcd_x;
|
|||
typedef long vfo_op_x;
|
||||
typedef long shortfreq_x;
|
||||
typedef unsigned hyper setting_x;
|
||||
typedef long ant_x;
|
||||
typedef long ann_x;
|
||||
|
||||
struct mode_s {
|
||||
rmode_x mode;
|
||||
|
@ -125,18 +128,31 @@ struct vfo_op_arg {
|
|||
vfo_op_x op;
|
||||
};
|
||||
|
||||
struct freq_range_s {
|
||||
freq_x start;
|
||||
freq_x end;
|
||||
rmode_x modes;
|
||||
int low_power;
|
||||
int high_power;
|
||||
vfo_x vfo;
|
||||
ant_x ant;
|
||||
};
|
||||
struct tuning_step_s {
|
||||
rmode_x modes;
|
||||
shortfreq_x ts;
|
||||
};
|
||||
struct filter_s {
|
||||
rmode_x modes;
|
||||
pbwidth_x width;
|
||||
};
|
||||
struct chan_s {
|
||||
int start;
|
||||
int end;
|
||||
unsigned int type;
|
||||
};
|
||||
|
||||
struct rigstate_s {
|
||||
int itu_region;
|
||||
#if 0
|
||||
freq_range_t rx_range_list[FRQRANGESIZ];
|
||||
freq_range_t tx_range_list[FRQRANGESIZ];
|
||||
|
||||
struct tuning_step_list tuning_steps[TSLSTSIZ];
|
||||
|
||||
struct filter_list filters[FLTLSTSIZ];
|
||||
|
||||
chan_t chan_list[CHANLSTSIZ];
|
||||
|
||||
shortfreq_x max_rit;
|
||||
shortfreq_x max_xit;
|
||||
|
@ -144,16 +160,24 @@ struct rigstate_s {
|
|||
|
||||
ann_x announces;
|
||||
|
||||
int preamp<MAXDBLSTSIZ>;
|
||||
int attenuator<MAXDBLSTSIZ>;
|
||||
|
||||
#endif
|
||||
setting_x has_get_func;
|
||||
setting_x has_set_func;
|
||||
setting_x has_get_level;
|
||||
setting_x has_set_level;
|
||||
setting_x has_get_parm;
|
||||
setting_x has_set_parm;
|
||||
|
||||
int preamp[MAXDBLSTSIZ];
|
||||
int attenuator[MAXDBLSTSIZ];
|
||||
|
||||
freq_range_s rx_range_list[FRQRANGESIZ];
|
||||
freq_range_s tx_range_list[FRQRANGESIZ];
|
||||
|
||||
tuning_step_s tuning_steps[TSLSTSIZ];
|
||||
|
||||
filter_s filters[FLTLSTSIZ];
|
||||
|
||||
chan_s chan_list[CHANLSTSIZ];
|
||||
};
|
||||
|
||||
union rigstate_res switch (int rigstatus) {
|
||||
|
@ -198,8 +222,6 @@ program RIGPROG {
|
|||
|
||||
#ifdef RPC_HDR
|
||||
%
|
||||
%#include <hamlib/rig.h>
|
||||
%
|
||||
%#define freq_t2x(t, x) do { *(x) = (t); } while(0)
|
||||
%#define freq_x2t(x) ((freq_t)*(x))
|
||||
%
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Hamlib RPC backend - main file
|
||||
* Copyright (c) 2001 by Stephane Fillod
|
||||
*
|
||||
* $Id: rpcrig_backend.c,v 1.4 2001-12-26 23:42:18 fillods Exp $
|
||||
* $Id: rpcrig_backend.c,v 1.5 2001-12-27 21:56:01 fillods Exp $
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
|
@ -89,6 +89,7 @@ static int rpcrig_open(RIG *rig)
|
|||
rig_model_t model;
|
||||
const struct rig_caps *caps;
|
||||
char *server;
|
||||
int i;
|
||||
|
||||
rs = &rig->state;
|
||||
priv = (struct rpcrig_priv_data*)rs->priv;
|
||||
|
@ -140,31 +141,34 @@ static int rpcrig_open(RIG *rig)
|
|||
rs->has_get_parm = rs_res->rigstate_res_u.state.has_get_parm;
|
||||
rs->has_set_parm = rs_res->rigstate_res_u.state.has_set_parm;
|
||||
|
||||
#if 0
|
||||
rs->vfo_list = 0;
|
||||
for (i=0; i<FRQRANGESIZ; i++) {
|
||||
if (rs->rx_range_list[i].start != 0 &&
|
||||
rs->rx_range_list[i].end != 0)
|
||||
rs->max_rit = rs_res->rigstate_res_u.state.max_rit;
|
||||
rs->max_xit = rs_res->rigstate_res_u.state.max_xit;
|
||||
rs->max_ifshift = rs_res->rigstate_res_u.state.max_ifshift;
|
||||
rs->announces = rs_res->rigstate_res_u.state.announces;
|
||||
|
||||
memcpy(rs->preamp, rs_res->rigstate_res_u.state.preamp,
|
||||
sizeof(int)*MAXDBLSTSIZ);
|
||||
memcpy(rs->attenuator, rs_res->rigstate_res_u.state.attenuator,
|
||||
sizeof(int)*MAXDBLSTSIZ);
|
||||
|
||||
memcpy(rs->tuning_steps, rs_res->rigstate_res_u.state.tuning_steps,
|
||||
sizeof(struct tuning_step_list)*TSLSTSIZ);
|
||||
memcpy(rs->filters, rs_res->rigstate_res_u.state.filters,
|
||||
sizeof(struct filter_list)*FLTLSTSIZ);
|
||||
memcpy(rs->chan_list, rs_res->rigstate_res_u.state.chan_list,
|
||||
sizeof(chan_t)*CHANLSTSIZ);
|
||||
memcpy(rs->rx_range_list, rs_res->rigstate_res_u.state.rx_range_list,
|
||||
sizeof(freq_range_t)*FRQRANGESIZ);
|
||||
memcpy(rs->tx_range_list, rs_res->rigstate_res_u.state.tx_range_list,
|
||||
sizeof(freq_range_t)*FRQRANGESIZ);
|
||||
|
||||
for (i=0; i<FRQRANGESIZ && !RIG_IS_FRNG_END(rs->rx_range_list[i]); i++) {
|
||||
rs->vfo_list |= rs->rx_range_list[i].vfo;
|
||||
if (rs->tx_range_list[i].start != 0 &&
|
||||
rs->tx_range_list[i].end != 0)
|
||||
}
|
||||
for (i=0; i<FRQRANGESIZ && !RIG_IS_FRNG_END(rs->tx_range_list[i]); i++) {
|
||||
rs->vfo_list |= rs->tx_range_list[i].vfo;
|
||||
}
|
||||
|
||||
memcpy(rs->preamp, caps->preamp, sizeof(int)*MAXDBLSTSIZ);
|
||||
memcpy(rs->attenuator, caps->attenuator, sizeof(int)*MAXDBLSTSIZ);
|
||||
memcpy(rs->tuning_steps, caps->tuning_steps,
|
||||
sizeof(struct tuning_step_list)*TSLSTSIZ);
|
||||
memcpy(rs->filters, caps->filters,
|
||||
sizeof(struct filter_list)*FLTLSTSIZ);
|
||||
memcpy(rs->chan_list, caps->chan_list, sizeof(chan_t)*CHANLSTSIZ);
|
||||
|
||||
rs->max_rit = caps->max_rit;
|
||||
rs->max_xit = caps->max_xit;
|
||||
rs->max_ifshift = caps->max_ifshift;
|
||||
rs->announces = caps->announces;
|
||||
#endif
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* Hamlib RPC server - procedures
|
||||
* Copyright (c) 2001 by Stephane Fillod
|
||||
*
|
||||
* $Id: rpcrig_proc.c,v 1.3 2001-12-26 23:44:05 fillods Exp $
|
||||
* $Id: rpcrig_proc.c,v 1.4 2001-12-27 21:56:01 fillods Exp $
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
|
@ -55,6 +55,7 @@ model_x *getmodel_1_svc(void *arg, struct svc_req *svc)
|
|||
rigstate_res *getrigstate_1_svc(void *arg, struct svc_req *svc)
|
||||
{
|
||||
static rigstate_res res;
|
||||
struct rig_state *rs;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE,__FUNCTION__ " called\n");
|
||||
|
||||
|
@ -63,13 +64,36 @@ rigstate_res *getrigstate_1_svc(void *arg, struct svc_req *svc)
|
|||
return &res;
|
||||
}
|
||||
|
||||
res.rigstate_res_u.state.itu_region = the_rpc_rig->state.itu_region;
|
||||
res.rigstate_res_u.state.has_set_func = the_rpc_rig->state.has_set_func;
|
||||
res.rigstate_res_u.state.has_get_func = the_rpc_rig->state.has_get_func;
|
||||
res.rigstate_res_u.state.has_set_level = the_rpc_rig->state.has_set_level;
|
||||
res.rigstate_res_u.state.has_get_level = the_rpc_rig->state.has_get_level;
|
||||
res.rigstate_res_u.state.has_set_parm = the_rpc_rig->state.has_set_parm;
|
||||
res.rigstate_res_u.state.has_get_parm = the_rpc_rig->state.has_get_parm;
|
||||
rs = &the_rpc_rig->state;
|
||||
|
||||
res.rigstate_res_u.state.itu_region = rs->itu_region;
|
||||
res.rigstate_res_u.state.has_set_func = rs->has_set_func;
|
||||
res.rigstate_res_u.state.has_get_func = rs->has_get_func;
|
||||
res.rigstate_res_u.state.has_set_level = rs->has_set_level;
|
||||
res.rigstate_res_u.state.has_get_level = rs->has_get_level;
|
||||
res.rigstate_res_u.state.has_set_parm = rs->has_set_parm;
|
||||
res.rigstate_res_u.state.has_get_parm = rs->has_get_parm;
|
||||
|
||||
res.rigstate_res_u.state.max_rit = rs->max_rit;
|
||||
res.rigstate_res_u.state.max_xit = rs->max_xit;
|
||||
res.rigstate_res_u.state.max_ifshift = rs->max_ifshift;
|
||||
res.rigstate_res_u.state.announces = rs->announces;
|
||||
|
||||
memcpy(res.rigstate_res_u.state.preamp, rs->preamp,
|
||||
sizeof(int)*MAXDBLSTSIZ);
|
||||
memcpy(res.rigstate_res_u.state.attenuator, rs->attenuator,
|
||||
sizeof(int)*MAXDBLSTSIZ);
|
||||
|
||||
memcpy(res.rigstate_res_u.state.tuning_steps, rs->tuning_steps,
|
||||
sizeof(struct tuning_step_list)*TSLSTSIZ);
|
||||
memcpy(res.rigstate_res_u.state.filters, rs->filters,
|
||||
sizeof(struct filter_list)*FLTLSTSIZ);
|
||||
memcpy(res.rigstate_res_u.state.chan_list, rs->chan_list,
|
||||
sizeof(chan_t)*CHANLSTSIZ);
|
||||
memcpy(res.rigstate_res_u.state.rx_range_list, rs->rx_range_list,
|
||||
sizeof(freq_range_t)*FRQRANGESIZ);
|
||||
memcpy(res.rigstate_res_u.state.tx_range_list, rs->tx_range_list,
|
||||
sizeof(freq_range_t)*FRQRANGESIZ);
|
||||
|
||||
res.rigstatus = RIG_OK;
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue