more data passed by rigstate_1

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@815 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.1.3
Stéphane Fillod, F8CFE 2001-12-27 21:56:01 +00:00
rodzic 5681ddebbb
commit 7c5e7f2476
3 zmienionych plików z 96 dodań i 46 usunięć

Wyświetl plik

@ -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))
%

Wyświetl plik

@ -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;
}

Wyświetl plik

@ -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;