added set_level/get_level, get_func/set_func and set_parm/get_parm

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@960 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.1.3
Stéphane Fillod, F8CFE 2002-02-15 00:14:17 +00:00
rodzic 4476081add
commit ee972fe23f
1 zmienionych plików z 136 dodań i 14 usunięć

Wyświetl plik

@ -2,7 +2,7 @@
* Hamlib tcl/tk bindings - rig
* Copyright (c) 2001,2002 by Stephane Fillod
*
* $Id: tclrig.c,v 1.1 2002-01-22 00:34:48 fillods Exp $
* $Id: tclrig.c,v 1.2 2002-02-15 00:14:17 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
@ -71,10 +71,16 @@ declare_proto_rig(set_vfo);
declare_proto_rig(get_vfo);
declare_proto_rig(get_info);
declare_proto_rig(get_strength);
declare_proto_rig(set_level);
declare_proto_rig(get_level);
declare_proto_rig(set_func);
declare_proto_rig(get_func);
declare_proto_rig(set_parm);
declare_proto_rig(get_parm);
#if 0
declare_proto_rig(set_ptt);
declare_proto_rig(get_ptt);
declare_proto_rig(get_ptt);
declare_proto_rig(get_dcd);
declare_proto_rig(set_rptr_shift);
declare_proto_rig(get_rptr_shift);
declare_proto_rig(set_rptr_offs);
@ -92,12 +98,6 @@ declare_proto_rig(get_split);
declare_proto_rig(set_ts);
declare_proto_rig(get_ts);
declare_proto_rig(power2mW);
declare_proto_rig(set_level);
declare_proto_rig(get_level);
declare_proto_rig(set_func);
declare_proto_rig(get_func);
declare_proto_rig(set_parm);
declare_proto_rig(get_parm);
declare_proto_rig(set_bank);
declare_proto_rig(set_mem);
declare_proto_rig(get_mem);
@ -124,6 +124,12 @@ static struct cmd_table cmd_list[] = {
{ "set_vfo", set_vfo, ARG_IN, "VFO" },
{ "get_vfo", get_vfo, ARG_OUT, "VFO" },
{ "get_strength", get_strength, ARG_OUT, "Strength" },
{ "set_level", set_level, ARG_IN, "Level", "Value" },
{ "get_level", get_level, ARG_IN1|ARG_OUT2, "Level", "Value" },
{ "set_func", set_func, ARG_IN, "Func", "Func status" },
{ "get_func", get_func, ARG_IN1|ARG_OUT2, "Func", "Func status" },
{ "set_parm", set_parm, ARG_IN, "Parm", "Value" },
{ "get_parm", get_parm, ARG_IN1|ARG_OUT2, "Parm", "Value" },
#if 0
{ "set_ptt", set_ptt, ARG_IN, "PTT" },
{ "get_ptt", get_ptt, ARG_OUT, "PTT" },
@ -143,12 +149,6 @@ static struct cmd_table cmd_list[] = {
{ "get_split", get_split, ARG_OUT, "Split mode" },
{ "set_ts", set_ts, ARG_IN, "Tuning step" },
{ "get_ts", get_ts, ARG_OUT, "Tuning step" },
{ "set_level", set_level, ARG_IN, "Level", "Value" },
{ "get_level", get_level, ARG_IN1|ARG_OUT2, "Level", "Value" },
{ "set_func", set_func, ARG_IN, "Func", "Func status" },
{ "get_func", get_func, ARG_IN1|ARG_OUT2, "Func", "Func status" },
{ "set_parm", set_parm, ARG_IN, "Level", "Value" },
{ "get_parm", get_parm, ARG_IN1|ARG_OUT2, "Level", "Value" },
{ "set_mem", set_mem, ARG_IN, "Memory#" },
{ "get_mem", get_mem, ARG_OUT, "Memory#" },
{ "vfo_op", vfo_op, ARG_IN, "Mem/VFO op" },
@ -457,6 +457,128 @@ declare_proto_rig(get_info)
return RIG_OK;
}
declare_proto_rig(set_func)
{
int status;
setting_t func;
int stat;
func = parse_func(Tcl_GetString(objv[2]));
status = Tcl_GetIntFromObj(interp, objv[3], &stat);
if (status != TCL_OK)
return status;
return rig_set_func(rig, RIG_VFO_CURR, func, stat);
}
declare_proto_rig(get_func)
{
int status;
setting_t func;
int stat;
Tcl_Obj *resultPtr;
resultPtr = Tcl_GetObjResult(interp);
func = parse_func(Tcl_GetString(objv[2]));
status = rig_get_func(rig, RIG_VFO_CURR, func, &stat);
if (status != RIG_OK)
return status;
Tcl_SetIntObj(resultPtr, stat);
return RIG_OK;
}
declare_proto_rig(set_level)
{
int status;
setting_t level;
value_t val;
double d;
level = parse_level(Tcl_GetString(objv[2]));
if (RIG_LEVEL_IS_FLOAT(level)) {
status = Tcl_GetDoubleFromObj(interp, objv[3], &d);
val.f = d;
} else {
status = Tcl_GetIntFromObj(interp, objv[3], &val.i);
}
if (status != TCL_OK)
return status;
return rig_set_level(rig, RIG_VFO_CURR, level, val);
}
declare_proto_rig(get_level)
{
int status;
setting_t level;
value_t val;
double d;
Tcl_Obj *resultPtr;
resultPtr = Tcl_GetObjResult(interp);
level = parse_level(Tcl_GetString(objv[2]));
status = rig_get_level(rig, RIG_VFO_CURR, level, &val);
if (status != RIG_OK)
return status;
if (RIG_LEVEL_IS_FLOAT(level)) {
d = val.f;
Tcl_SetDoubleObj(resultPtr, d);
} else {
Tcl_SetIntObj(resultPtr, val.i);
}
return RIG_OK;
}
declare_proto_rig(set_parm)
{
int status;
setting_t parm;
value_t val;
double d;
parm = parse_parm(Tcl_GetString(objv[2]));
if (RIG_PARM_IS_FLOAT(parm)) {
status = Tcl_GetDoubleFromObj(interp, objv[3], &d);
val.f = d;
} else {
status = Tcl_GetIntFromObj(interp, objv[3], &val.i);
}
if (status != TCL_OK)
return status;
return rig_set_parm(rig, parm, val);
}
declare_proto_rig(get_parm)
{
int status;
setting_t parm;
value_t val;
double d;
Tcl_Obj *resultPtr;
resultPtr = Tcl_GetObjResult(interp);
parm = parse_parm(Tcl_GetString(objv[2]));
status = rig_get_parm(rig, parm, &val);
if (status != RIG_OK)
return status;
if (RIG_PARM_IS_FLOAT(parm)) {
d = val.f;
Tcl_SetDoubleObj(resultPtr, d);
} else {
Tcl_SetIntObj(resultPtr, val.i);
}
return RIG_OK;
}
#if 0
declare_proto_rig(set_ptt)