diff --git a/ft847/ft847.c b/ft847/ft847.c index 8c7a03f0e..bb77de5e6 100644 --- a/ft847/ft847.c +++ b/ft847/ft847.c @@ -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 #include /* Standard input/output definitions */ #include /* 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; } diff --git a/ft847/ft847.h b/ft847/ft847.h index 2b925305f..3cee05629 100644 --- a/ft847/ft847.h +++ b/ft847/ft847.h @@ -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 */ + };