converting ft847 to table driven, similar to ft747.

git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@296 7ae35d74-ebe9-4afe-98af-79ac388436b8
Hamlib-1.1.0
Frank Singleton, VK3FCS 2000-12-17 22:14:19 +00:00
rodzic 52a9a4d535
commit c3711a55ef
2 zmienionych plików z 199 dodań i 20 usunięć

Wyświetl plik

@ -6,7 +6,7 @@
* via serial interface to an FT-847 using the "CAT" interface.
*
*
* $Id: ft847.c,v 1.24 2000-10-16 22:27:12 f4cfe Exp $
* $Id: ft847.c,v 1.25 2000-12-17 22:14:18 javabear Exp $
*
*
*
@ -26,6 +26,13 @@
*
*/
/*
* TODO - Remove static stuff, see ft747 for new style.
*
*/
#include <stdlib.h>
#include <stdio.h> /* Standard input/output definitions */
#include <string.h> /* String function definitions */
@ -41,7 +48,62 @@
#include "ft847.h"
/* prototypes */
int ft847_set_freq_main_vfo_hz(RIG *rig, freq_t freq, rmode_t mode);
/* Native ft847 cmd set prototypes. These are READ ONLY as each */
/* rig instance will copy from these and modify if required . */
/* Complete sequences (1) can be read and used directly as a cmd sequence . */
/* Incomplete sequences (0) must be completed with extra parameters */
/* eg: mem number, or freq etc.. */
static const ft847_cmd_set_t ncmd[] = {
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x00 } }, /* CAT = On */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x80 } }, /* CAT = Off */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x08 } }, /* ptt on */
{ 1, { 0x00, 0x00, 0x00, 0x01, 0x88 } }, /* ptt off */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x4e } }, /* sat mode on */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x8e } }, /* sat mode off */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x01 } }, /* set freq main */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x11 } }, /* set freq sat rx */
{ 0, { 0x00, 0x00, 0x00, 0x00, 0x21 } }, /* set freq sat tx */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main LSB */
{ 1, { 0x01, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main USB */
{ 1, { 0x02, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main CW */
{ 1, { 0x03, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main CWR */
{ 1, { 0x04, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main AM */
{ 1, { 0x08, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main FM */
{ 1, { 0x82, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main CWN */
{ 1, { 0x83, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main CWRN */
{ 1, { 0x84, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main AMN */
{ 1, { 0x88, 0x00, 0x00, 0x00, 0x07 } }, /* mode set main FMN */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx LSB */
{ 1, { 0x01, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx USB */
{ 1, { 0x02, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx CW */
{ 1, { 0x03, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx CWR */
{ 1, { 0x04, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx AM */
{ 1, { 0x08, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx FM */
{ 1, { 0x82, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx CWN */
{ 1, { 0x83, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx CWRN */
{ 1, { 0x84, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx AMN */
{ 1, { 0x88, 0x00, 0x00, 0x00, 0x17 } }, /* mode set sat rx FMN */
{ 1, { 0x00, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx LSB */
{ 1, { 0x01, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx USB */
{ 1, { 0x02, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx CW */
{ 1, { 0x03, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx CWR */
{ 1, { 0x04, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx AM */
{ 1, { 0x08, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx FM */
{ 1, { 0x82, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx CWN */
{ 1, { 0x83, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx CWRN */
{ 1, { 0x84, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx AMN */
{ 1, { 0x88, 0x00, 0x00, 0x00, 0x27 } }, /* mode set sat tx FMN */
/* TODO - Add missing elements */
};
/*
@ -144,13 +206,6 @@ const struct rig_caps ft847_caps = {
NULL,
};
/*
* Init some private data
*/
static const struct ft847_priv_data ft847_priv = { 847 }; /* dummy atm */
/*
* Function definitions below
@ -172,15 +227,11 @@ int ft847_init(RIG *rig) {
/* whoops! memory shortage! */
return -RIG_ENOMEM;
}
/* init the priv_data from static struct
* + override with rig-specific preferences
*/
*p = ft847_priv;
rig->state.priv = (void*)p;
return RIG_OK;
}

Wyświetl plik

@ -6,7 +6,7 @@
* via serial interface to an FT-847 using the "CAT" interface.
*
*
* $Id: ft847.h,v 1.16 2000-10-09 01:17:19 javabear Exp $
* $Id: ft847.h,v 1.17 2000-12-17 22:14:19 javabear Exp $
*
*
* This program is free software; you can redistribute it and/or
@ -44,12 +44,140 @@
/*
* future - private data
* Native FT847 functions. This is what I have to work with :-)
*
*/
enum ft847_native_cmd_e {
/* Set commands to the rig */
FT_847_NATIVE_CAT_ON = 0,
FT_847_NATIVE_CAT_OFF,
FT_847_NATIVE_CAT_PTT_ON,
FT_847_NATIVE_CAT_PTT_OFF,
FT_847_NATIVE_CAT_SAT_MODE_ON,
FT_847_NATIVE_CAT_SAT_MODE_OFF,
FT_847_NATIVE_CAT_SET_FREQ_MAIN,
FT_847_NATIVE_CAT_SET_FREQ_SAT_RX_VFO,
FT_847_NATIVE_CAT_SET_FREQ_SAT_TX_VFO,
FT_847_NATIVE_CAT_SET_MODE_MAIN_LSB, /* MAIN VFO */
FT_847_NATIVE_CAT_SET_MODE_MAIN_USB,
FT_847_NATIVE_CAT_SET_MODE_MAIN_CW,
FT_847_NATIVE_CAT_SET_MODE_MAIN_CWR,
FT_847_NATIVE_CAT_SET_MODE_MAIN_AM,
FT_847_NATIVE_CAT_SET_MODE_MAIN_FM,
FT_847_NATIVE_CAT_SET_MODE_MAIN_CWN,
FT_847_NATIVE_CAT_SET_MODE_MAIN_CWRN,
FT_847_NATIVE_CAT_SET_MODE_MAIN_AMN,
FT_847_NATIVE_CAT_SET_MODE_MAIN_FMN,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_LSB, /* SAT RX VFO */
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_USB,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_CW,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_CWR,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_AM,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_FM,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_CWN,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_CWRN,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_AMN,
FT_847_NATIVE_CAT_SET_MODE_SAT_RX_FMN,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_LSB, /* SAT TX VFO */
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_USB,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_CW,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_CWR,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_AM,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_FM,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_CWN,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_CWRN,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_AMN,
FT_847_NATIVE_CAT_SET_MODE_SAT_TX_FMN,
FT_847_NATIVE_CAT_SET_DCS_ON_MAIN, /* MAIN CTCSS/DCS */
FT_847_NATIVE_CAT_SET_CTCSS_ENC_DEC_ON_MAIN,
FT_847_NATIVE_CAT_SET_CTCSS_ENC_ON_MAIN,
FT_847_NATIVE_CAT_SET_CTCSS_DCS_OFF_MAIN,
FT_847_NATIVE_CAT_SET_DCS_ON_SAT_RX, /* SAT RX CTCSS/DCS */
FT_847_NATIVE_CAT_SET_CTCSS_ENC_DEC_ON_SAT_RX,
FT_847_NATIVE_CAT_SET_CTCSS_ENC_ON_SAT_RX,
FT_847_NATIVE_CAT_SET_CTCSS_DCS_OFF_SAT_RX,
FT_847_NATIVE_CAT_SET_DCS_ON_SAT_TX, /* SAT TX CTCSS/DCS */
FT_847_NATIVE_CAT_SET_CTCSS_ENC_DEC_ON_SAT_TX,
FT_847_NATIVE_CAT_SET_CTCSS_ENC_ON_SAT_TX,
FT_847_NATIVE_CAT_SET_CTCSS_DCS_OFF_SAT_TX,
FT_847_NATIVE_CAT_SET_CTCSS_FREQ_MAIN, /* CTCSS Freq */
FT_847_NATIVE_CAT_SET_CTCSS_FREQ_SAT_RX,
FT_847_NATIVE_CAT_SET_CTCSS_FREQ_SAT_TX,
FT_847_NATIVE_CAT_SET_DCS_CODE_MAIN, /* DCS code */
FT_847_NATIVE_CAT_SET_DCS_CODE_SAT_RX,
FT_847_NATIVE_CAT_SET_DCS_CODE_SAT_TX,
FT_847_NATIVE_CAT_SET_RPT_SHIFT_MINUS, /* RPT SHIFT */
FT_847_NATIVE_CAT_SET_RPT_SHIFT_PLUS,
FT_847_NATIVE_CAT_SET_RPT_SHIFT_SIMPLEX,
FT_847_NATIVE_CAT_SET_RPT_OFFSET, /* RPT Offset frequency */
/* Get info from the rig */
FT_847_NATIVE_CAT_GET_RX_STATUS,
FT_847_NATIVE_CAT_GET_TX_STATUS,
FT_847_NATIVE_CAT_GET_FREQ_MODE_STATUS_MAIN,
FT_847_NATIVE_CAT_GET_FREQ_MODE_STATUS_SAT_RX,
FT_847_NATIVE_CAT_GET_FREQ_MODE_STATUS_SAT_TX,
FT_847_NATIVE_SIZE /* end marker, value indicates number of */
/* native cmd entries */
};
typedef enum ft847_native_cmd_e ft847_native_cmd_t;
/*
* TODO -- Move this to common yaesu.h file -- FS
*
*/
/*
* Basic Data structure for FT847 native cmd set
*/
struct ft847_cmd_set {
unsigned char ncomp; /* 1 = complete, 0 = incomplete, needs extra info */
unsigned char nseq[5]; /* native cmd sequence */
};
typedef struct ft847_cmd_set ft847_cmd_set_t;
/*
* ft847 instance - private data
*
*/
struct ft847_priv_data {
int dummy; /* for test */
unsigned char current_vfo; /* active VFO from last cmd , can be either RIG_VFO_A, SAT_RX, SAT_TX */
ft847_cmd_set_t pcs[FT_847_NATIVE_SIZE]; /* private cmd set */
unsigned char tx_status; /* tx returned data */
unsigned char rx_status; /* rx returned data */
unsigned char fm_status_main; /* freq and mode ,returned data */
unsigned char fm_status_satrx; /* freq and mode ,returned data */
unsigned char fm_status_sattx; /* freq and mode ,returned data */
};