From e115bf459b563ed6ac844351567c64246d2f3720 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Fillod=2C=20F8CFE?= Date: Wed, 25 Jul 2001 21:58:15 +0000 Subject: [PATCH] feed me! I wanna grow up git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@607 7ae35d74-ebe9-4afe-98af-79ac388436b8 --- src/conf.c | 122 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 116 insertions(+), 6 deletions(-) diff --git a/src/conf.c b/src/conf.c index aefcc78a8..a5f8a5c53 100644 --- a/src/conf.c +++ b/src/conf.c @@ -2,7 +2,7 @@ * Hamlib Interface - configuration interface * Copyright (c) 2000,2001 by Stephane Fillod and Frank Singleton * - * $Id: conf.c,v 1.1 2001-07-21 12:55:04 f4cfe Exp $ + * $Id: conf.c,v 1.2 2001-07-25 21:58:15 f4cfe 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 @@ -35,27 +35,137 @@ #include "conf.h" -#define TOK_EXAMPLE RIG_TOKEN_FRONTEND(1) + +#define TOK_RIG_PATHNAME RIG_TOKEN_FRONTEND(10) +#define TOK_WRITE_DELAY RIG_TOKEN_FRONTEND(12) +#define TOK_POST_WRITE_DELAY RIG_TOKEN_FRONTEND(13) +#define TOK_TIMEOUT RIG_TOKEN_FRONTEND(14) +#define TOK_RETRY RIG_TOKEN_FRONTEND(15) +#define TOK_ITU_REGION RIG_TOKEN_FRONTEND(20) /* * Place holder for now. Here will be defined all the configuration * options available in the rig->state struct. */ static const struct confparams frontend_cfg_params[] = { - { TOK_EXAMPLE, "example", "Example", "Frontend conf param example", - "0", RIG_CONF_NUMERIC, { n: { 0, 10, 1 } } + { TOK_RIG_PATHNAME, "rig_pathname", "Rig path name", + "Path name to the device file of the rig", + "/dev/rig", RIG_CONF_STRING, + }, + { TOK_WRITE_DELAY, "write_delay", "Write delay", + "Delay in ms between each byte sent out", + "0", RIG_CONF_NUMERIC, { n: { 0, 1000, 1 } } + }, + { TOK_POST_WRITE_DELAY, "post_write_delay", "Post write delay", + "Delay in ms between each command sent out", + "0", RIG_CONF_NUMERIC, { n: { 0, 1000, 1 } } + }, + { TOK_TIMEOUT, "timeout", "Timeout", "Timeout in ms", + "0", RIG_CONF_NUMERIC, { n: { 0, 10000, 1 } } + }, + { TOK_RETRY, "retry", "Retry", "Max number of retry", + "0", RIG_CONF_NUMERIC, { n: { 0, 10, 1 } } + }, + { TOK_ITU_REGION, "itu_region", "ITU region", + "ITU region this rig has been manufactured for (freq. band plan)", + "0", RIG_CONF_NUMERIC, { n: { 1, 3, 1 } } }, { RIG_CONF_END, NULL, } }; +/* + * frontend_set_conf + * assumes rig!=NULL, val!=NULL + * TODO: check format of val before doing atoi(). + */ int frontend_set_conf(RIG *rig, token_t token, const char *val) { - return -RIG_ENIMPL; + const struct rig_caps *caps; + struct rig_state *rs; + + caps = rig->caps; + rs = &rig->state; + + switch(token) { + case TOK_RIG_PATHNAME: + strcpy(rs->rigport.pathname, val); + break; + case TOK_WRITE_DELAY: + rs->rigport.write_delay = atoi(val); + break; + case TOK_POST_WRITE_DELAY: + rs->rigport.post_write_delay = atoi(val); + break; + case TOK_TIMEOUT: + rs->rigport.timeout = atoi(val); + break; + case TOK_RETRY: + rs->rigport.retry = atoi(val); + break; + + case TOK_ITU_REGION: + rs->itu_region = atoi(val); + switch(rs->itu_region) { + case RIG_ITU_REGION1: + memcpy(rs->tx_range_list, caps->tx_range_list1, + sizeof(struct freq_range_list)*FRQRANGESIZ); + memcpy(rs->rx_range_list, caps->rx_range_list1, + sizeof(struct freq_range_list)*FRQRANGESIZ); + break; + case RIG_ITU_REGION2: + case RIG_ITU_REGION3: + default: + memcpy(rs->tx_range_list, caps->tx_range_list2, + sizeof(struct freq_range_list)*FRQRANGESIZ); + memcpy(rs->rx_range_list, caps->rx_range_list2, + sizeof(struct freq_range_list)*FRQRANGESIZ); + break; + } + break; + + default: + return -RIG_EINVAL; + } + return RIG_OK; } +/* + * frontend_get_conf + * assumes rig!=NULL, val!=NULL + */ int frontend_get_conf(RIG *rig, token_t token, char *val) { - return -RIG_ENIMPL; + const struct rig_caps *caps; + struct rig_state *rs; + + caps = rig->caps; + rs = &rig->state; + + switch(token) { + case TOK_RIG_PATHNAME: + strcpy(val, rs->rigport.pathname); + break; + case TOK_WRITE_DELAY: + sprintf(val, "%d", rs->rigport.write_delay); + break; + case TOK_POST_WRITE_DELAY: + sprintf(val, "%d", rs->rigport.post_write_delay); + break; + case TOK_TIMEOUT: + sprintf(val, "%d", rs->rigport.timeout); + break; + case TOK_RETRY: + sprintf(val, "%d", rs->rigport.retry); + break; + case TOK_ITU_REGION: + sprintf(val, "%d", + rs->itu_region == 1 ? RIG_ITU_REGION1 : RIG_ITU_REGION2); + break; + default: + return -RIG_EINVAL; + } + + return RIG_OK; } /*