summaryrefslogtreecommitdiff
path: root/gr-fcd/lib/fcd
diff options
context:
space:
mode:
Diffstat (limited to 'gr-fcd/lib/fcd')
-rw-r--r--gr-fcd/lib/fcd/CMakeLists.txt32
-rw-r--r--gr-fcd/lib/fcd/COPYRIGHT23
-rw-r--r--gr-fcd/lib/fcd/fcd.c904
-rw-r--r--gr-fcd/lib/fcd/fcd.h79
-rw-r--r--gr-fcd/lib/fcd/fcdhidcmd.h305
5 files changed, 0 insertions, 1343 deletions
diff --git a/gr-fcd/lib/fcd/CMakeLists.txt b/gr-fcd/lib/fcd/CMakeLists.txt
deleted file mode 100644
index 416a7507e..000000000
--- a/gr-fcd/lib/fcd/CMakeLists.txt
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2012 Free Software Foundation, Inc.
-#
-# This file is part of GNU Radio
-#
-# GNU Radio is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# GNU Radio is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Radio; see the file COPYING. If not, write to
-# the Free Software Foundation, Inc., 51 Franklin Street,
-# Boston, MA 02110-1301, USA.
-
-########################################################################
-# This file included, use CMake directory variables
-########################################################################
-
-include_directories(APPEND ${USB_INCLUDES})
-
-set(fcd_sources ${CMAKE_CURRENT_SOURCE_DIR}/fcd.c)
-
-
-########################################################################
-# Append gnuradio-fcd library sources
-########################################################################
-list(APPEND gr_fcd_sources ${fcd_sources})
diff --git a/gr-fcd/lib/fcd/COPYRIGHT b/gr-fcd/lib/fcd/COPYRIGHT
deleted file mode 100644
index f176590e9..000000000
--- a/gr-fcd/lib/fcd/COPYRIGHT
+++ /dev/null
@@ -1,23 +0,0 @@
-For convenience, GNU Radio includes the contents of this directory
-in its distribution, but they are not considered part of GNU Radio.
-
-These files are licensed and redistributed using the terms of the
-GPLv3.
--------------------------------------------------------------------
-Copyright (C) 2010 Howard Long, G6LVB
-CopyRight (C) 2011 Alexandru Csete, OZ9AEC
- Mario Lorenz, DL5MLO
-
-Qthid is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-Qthid is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with Qthid. If not, see <http://www.gnu.org/licenses/>.
-
diff --git a/gr-fcd/lib/fcd/fcd.c b/gr-fcd/lib/fcd/fcd.c
deleted file mode 100644
index 011d77be9..000000000
--- a/gr-fcd/lib/fcd/fcd.c
+++ /dev/null
@@ -1,904 +0,0 @@
-/***************************************************************************
- * This file is part of Qthid.
- *
- * Copyright (C) 2010 Howard Long, G6LVB
- * CopyRight (C) 2011 Alexandru Csete, OZ9AEC
- * Mario Lorenz, DL5MLO
- *
- * Qthid is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Qthid is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Qthid. If not, see <http://www.gnu.org/licenses/>.
- *
- ***************************************************************************/
-
-#define FCD
-#include <string.h>
-#ifdef WIN32
- #include <malloc.h>
-#else
- #include <stdlib.h>
-#endif
-#include "hidapi.h"
-#include "fcd.h"
-#include "fcdhidcmd.h"
-#include <stdio.h>
-
-
-#define FALSE 0
-#define TRUE 1
-typedef int BOOL;
-
-
-const unsigned short _usVID=0x04D8; /*!< USB vendor ID. */
-const unsigned short _usPID=0xFB56; /*!< USB product ID. */
-
-
-
-/** \brief Open FCD device.
- * \return Pointer to the FCD HID device or NULL if none found
- *
- * This function looks for FCD devices connected to the computer and
- * opens the first one found.
- */
-static hid_device *fcdOpen(void)
-{
- struct hid_device_info *phdi=NULL;
- hid_device *phd=NULL;
- char *pszPath=NULL;
-
- phdi=hid_enumerate(_usVID,_usPID);
- if (phdi==NULL)
- {
- return NULL; // No FCD device found
- }
-
- pszPath=strdup(phdi->path);
- if (pszPath==NULL)
- {
- return NULL;
- }
-
- hid_free_enumeration(phdi);
- phdi=NULL;
-
- if ((phd=hid_open_path(pszPath)) == NULL)
- {
- free(pszPath);
- pszPath=NULL;
-
- return NULL;
- }
-
- free(pszPath);
- pszPath=NULL;
-
- return phd;
-}
-
-
-/** \brief Close FCD HID device. */
-static void fcdClose(hid_device *phd)
-{
- hid_close(phd);
-}
-
-
-/** \brief Get FCD mode.
- * \return The current FCD mode.
- * \sa FCD_MODE_ENUM
- */
-EXTERN FCD_MODE_ENUM fcdGetMode(void)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
- FCD_MODE_ENUM fcd_mode = FCD_MODE_NONE;
-
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- /* Send a BL Query Command */
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_QUERY;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- fcdClose(phd);
- phd = NULL;
-
- /* first check status bytes then check which mode */
- if (aucBufIn[0]==FCD_CMD_BL_QUERY && aucBufIn[1]==1) {
-
- /* In bootloader mode we have the string "FCDBL" starting at acBufIn[2] **/
- if (strncmp((char *)(aucBufIn+2), "FCDBL", 5) == 0) {
- fcd_mode = FCD_MODE_BL;
- }
- /* In application mode we have "FCDAPP_18.06" where the number is the FW version */
- else if (strncmp((char *)(aucBufIn+2), "FCDAPP", 6) == 0) {
- fcd_mode = FCD_MODE_APP;
- }
- /* either no FCD or firmware less than 18f */
- else {
- fcd_mode = FCD_MODE_NONE;
- }
- }
-
- return fcd_mode;
-}
-
-
-/** \brief Get FCD firmware version as string.
- * \param str The returned vesion number as a 0 terminated string (must be pre-allocated)
- * \return The current FCD mode.
- * \sa FCD_MODE_ENUM
- */
-EXTERN FCD_MODE_ENUM fcdGetFwVerStr(char *str)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
- FCD_MODE_ENUM fcd_mode = FCD_MODE_NONE;
-
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- /* Send a BL Query Command */
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_QUERY;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- fcdClose(phd);
- phd = NULL;
-
- /* first check status bytes then check which mode */
- if (aucBufIn[0]==FCD_CMD_BL_QUERY && aucBufIn[1]==1) {
-
- /* In bootloader mode we have the string "FCDBL" starting at acBufIn[2] **/
- if (strncmp((char *)(aucBufIn+2), "FCDBL", 5) == 0) {
- fcd_mode = FCD_MODE_BL;
- }
- /* In application mode we have "FCDAPP_18.06" where the number is the FW version */
- else if (strncmp((char *)(aucBufIn+2), "FCDAPP", 6) == 0) {
- strncpy(str, (char *)(aucBufIn+9), 5);
- str[5] = 0;
- fcd_mode = FCD_MODE_APP;
- }
- /* either no FCD or firmware less than 18f */
- else {
- fcd_mode = FCD_MODE_NONE;
- }
- }
-
- return fcd_mode;
-}
-
-
-/** \brief Get hardware and firmware dependent FCD capabilities.
- * \param fcd_caps Pointer to an FCD_CAPS_STRUCT
- * \return The current FCD mode.
- *
- * This function queries the FCD and extracts the hardware and firmware dependent
- * capabilities. Currently these capabilities are:
- * - Bias T (available since S/N TBD)
- * - Cellular block (the certified version of the FCD)
- * When the FCD is in application mode, the string returned by the query command is
- * (starting at index 2):
- * FCDAPP 18.08 Brd 1.0 No blk
- * 1.0 means no bias tee, 1.1 means there is a bias tee
- * 'No blk' means it is not cellular blocked.
- *
- * Ref: http://uk.groups.yahoo.com/group/FCDevelopment/message/303
- */
-EXTERN FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd_caps)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
- FCD_MODE_ENUM fcd_mode = FCD_MODE_NONE;
-
- /* clear output buffer */
- fcd_caps->hasBiasT = 0;
- fcd_caps->hasCellBlock = 0;
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- /* Send a BL Query Command */
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_QUERY;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- fcdClose(phd);
- phd = NULL;
-
- /* first check status bytes then check which mode */
- if (aucBufIn[0]==FCD_CMD_BL_QUERY && aucBufIn[1]==1) {
-
- /* In bootloader mode we have the string "FCDBL" starting at acBufIn[2] **/
- if (strncmp((char *)(aucBufIn+2), "FCDBL", 5) == 0) {
- fcd_mode = FCD_MODE_BL;
- }
- /* In application mode we have "FCDAPP 18.08 Brd 1.0 No blk" (see API doc) */
- else if (strncmp((char *)(aucBufIn+2), "FCDAPP", 6) == 0) {
-
- /* Bias T */
- fcd_caps->hasBiasT = (aucBufIn[21] == '1') ? 1 : 0;
-
- /* cellular block */
- if (strncmp((char *)(aucBufIn+23), "No blk", 6) == 0) {
- fcd_caps->hasCellBlock = 0;
- } else {
- fcd_caps->hasCellBlock = 1;
- }
-
- fcd_mode = FCD_MODE_APP;
- }
- /* either no FCD or firmware less than 18f */
- else {
- fcd_mode = FCD_MODE_NONE;
- }
- }
-
- return fcd_mode;
-}
-
-
-/** \brief Get hardware and firmware dependent FCD capabilities as string.
- * \param caps_str Pointer to a pre-allocated string buffer where the info will be copied.
- * \return The current FCD mode.
- *
- * This function queries the FCD and copies the returned string into the caps_str parameter.
- * THe return buffer must be at least 28 characters.
- * When the FCD is in application mode, the string returned by the query command is
- * (starting at index 2):
- * FCDAPP 18.08 Brd 1.0 No blk
- * 1.0 means no bias tee, 1.1 means there is a bias tee
- * 'No blk' means it is not cellular blocked.
- *
- * Ref: http://uk.groups.yahoo.com/group/FCDevelopment/message/303
- */
-EXTERN FCD_MODE_ENUM fcdGetCapsStr(char *caps_str)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
- FCD_MODE_ENUM fcd_mode = FCD_MODE_NONE;
-
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- /* Send a BL Query Command */
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_QUERY;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- fcdClose(phd);
- phd = NULL;
-
- /* first check status bytes then check which mode */
- if (aucBufIn[0]==FCD_CMD_BL_QUERY && aucBufIn[1]==1) {
-
- /* In bootloader mode we have the string "FCDBL" starting at acBufIn[2] **/
- if (strncmp((char *)(aucBufIn+2), "FCDBL", 5) == 0) {
- fcd_mode = FCD_MODE_BL;
- }
- /* In application mode we have "FCDAPP 18.08 Brd 1.0 No blk" (see API doc) */
- else if (strncmp((char *)(aucBufIn+2), "FCDAPP", 6) == 0) {
-
- strncpy(caps_str, (char *)(aucBufIn+2), 27);
- caps_str[27] = 0;
-
- fcd_mode = FCD_MODE_APP;
- }
- /* either no FCD or firmware less than 18f */
- else {
- fcd_mode = FCD_MODE_NONE;
- }
- }
-
- return fcd_mode;
-}
-
-
-
-/** \brief Reset FCD to bootloader mode.
- * \return FCD_MODE_NONE
- *
- * This function is used to switch the FCD into bootloader mode in which
- * various firmware operations can be performed.
- */
-EXTERN FCD_MODE_ENUM fcdAppReset(void)
-{
- hid_device *phd=NULL;
- //unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Send an App reset command
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_APP_RESET;
- hid_write(phd, aucBufOut, 65);
-
- /** FIXME: hid_read() will occasionally hang due to a pthread_cond_wait() never returning.
- It seems that the read_callback() in hid-libusb.c will never receive any
- data during the reconfiguration. Since the same logic works in the native
- windows application, it could be a libusb thing. Anyhow, since the value
- returned by this function is not used, we may as well just skip the hid_read()
- and return FME_NONE.
- Correct switch from APP to BL mode can be observed in /var/log/messages (linux)
- (when in bootloader mode the device version includes 'BL')
- */
- /*
- memset(aucBufIn,0xCC,65); // Clear out the response buffer
- hid_read(phd,aucBufIn,65);
-
- if (aucBufIn[0]==FCDCMDAPPRESET && aucBufIn[1]==1)
- {
- FCDClose(phd);
- phd=NULL;
- return FME_APP;
- }
- FCDClose(phd);
- phd=NULL;
- return FME_BL;
- */
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_NONE;
-
-}
-
-
-/** \brief Set FCD frequency with kHz resolution.
- * \param nFreq The new frequency in kHz.
- * \return The FCD mode.
- *
- * This function sets the frequency of the FCD with 1 kHz resolution. The parameter
- * nFreq must already contain any necessary frequency correction.
- *
- * \sa fcdAppSetFreq
- */
-EXTERN FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Send an App reset command
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_APP_SET_FREQ_KHZ;
- aucBufOut[2] = (unsigned char)nFreq;
- aucBufOut[3] = (unsigned char)(nFreq>>8);
- aucBufOut[4] = (unsigned char)(nFreq>>16);
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]==FCD_CMD_APP_SET_FREQ_KHZ && aucBufIn[1]==1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
-}
-
-
-/** \brief Set FCD frequency with Hz resolution.
- * \param nFreq The new frequency in Hz.
- * \return The FCD mode.
- *
- * This function sets the frequency of the FCD with 1 Hz resolution. The parameter
- * nFreq must already contain any necessary frequency correction.
- *
- * \sa fcdAppSetFreq
- */
-EXTERN FCD_MODE_ENUM fcdAppSetFreq(int nFreq)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Send an App reset command
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_APP_SET_FREQ_HZ;
- aucBufOut[2] = (unsigned char)nFreq;
- aucBufOut[3] = (unsigned char)(nFreq>>8);
- aucBufOut[4] = (unsigned char)(nFreq>>16);
- aucBufOut[5] = (unsigned char)(nFreq>>24);
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]==FCD_CMD_APP_SET_FREQ_HZ && aucBufIn[1]==1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
-}
-
-
-
-/** \brief Reset FCD to application mode.
- * \return FCD_MODE_NONE
- *
- * This function is used to switch the FCD from bootloader mode
- * into application mode.
- */
-EXTERN FCD_MODE_ENUM fcdBlReset(void)
-{
- hid_device *phd=NULL;
-// unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Send an BL reset command
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_RESET;
- hid_write(phd, aucBufOut, 65);
-
- /** FIXME: hid_read() will hang due to a pthread_cond_wait() never returning.
- It seems that the read_callback() in hid-libusb.c will never receive any
- data during the reconfiguration. Since the same logic works in the native
- windows application, it could be a libusb thing. Anyhow, since the value
- returned by this function is not used, we may as well jsut skip the hid_read()
- and return FME_NONE.
- Correct switch from BL to APP mode can be observed in /var/log/messages (linux)
- (when in bootloader mode the device version includes 'BL')
- */
- /*
- memset(aucBufIn,0xCC,65); // Clear out the response buffer
- hid_read(phd,aucBufIn,65);
-
- if (aucBufIn[0]==FCDCMDBLRESET && aucBufIn[1]==1)
- {
- FCDClose(phd);
- phd=NULL;
- return FME_BL;
- }
- FCDClose(phd);
- phd=NULL;
- return FME_APP;
- */
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_NONE;
-
-}
-
-
-/** \brief Erase firmware from FCD.
- * \return The FCD mode
- *
- * This function deletes the firmware from the FCD. This is required
- * before writing new firmware into the FCD.
- *
- * \sa fcdBlWriteFirmware
- */
-EXTERN FCD_MODE_ENUM fcdBlErase(void)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Send an App reset command
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_ERASE;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]==FCD_CMD_BL_ERASE && aucBufIn[1]==1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
- }
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
-}
-
-
-/** \brief Write new firmware into the FCD.
- * \param pc Pointer to the new firmware data
- * \param n64size The number of bytes in the data
- * \return The FCD mode
- *
- * This function is used to upload new firmware into the FCD flash.
- *
- * \sa fcdBlErase
- */
-EXTERN FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, int64_t n64Size)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
- uint32_t u32AddrStart;
- uint32_t u32AddrEnd;
- uint32_t u32Addr;
- BOOL bFinished=FALSE;
-
- phd = fcdOpen();
-
- if (phd==NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Get the valid flash address range
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_GET_BYTE_ADDR_RANGE;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]!=FCD_CMD_BL_GET_BYTE_ADDR_RANGE || aucBufIn[1]!=1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- u32AddrStart=
- aucBufIn[2]+
- (((uint32_t)aucBufIn[3])<<8)+
- (((uint32_t)aucBufIn[4])<<16)+
- (((uint32_t)aucBufIn[5])<<24);
- u32AddrEnd=
- aucBufIn[6]+
- (((uint32_t)aucBufIn[7])<<8)+
- (((uint32_t)aucBufIn[8])<<16)+
- (((uint32_t)aucBufIn[9])<<24);
-
- // Set start address for flash
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_SET_BYTE_ADDR;
- aucBufOut[2] = ((unsigned char)u32AddrStart);
- aucBufOut[3] = ((unsigned char)(u32AddrStart>>8));
- aucBufOut[4] = ((unsigned char)(u32AddrStart>>16));
- aucBufOut[5] = ((unsigned char)(u32AddrStart>>24));
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]!=FCD_CMD_BL_SET_BYTE_ADDR || aucBufIn[1]!=1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- // Write blocks
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_WRITE_FLASH_BLOCK;
- for (u32Addr=u32AddrStart; u32Addr+47<u32AddrEnd && u32Addr+47<n64Size && !bFinished; u32Addr+=48)
- {
- memcpy(&aucBufOut[3], &pc[u32Addr], 48);
-
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]!=FCD_CMD_BL_WRITE_FLASH_BLOCK || aucBufIn[1]!=1)
- {
- bFinished = TRUE;
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
- }
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
-}
-
-
-/** \brief Verify firmware in FCd flash.
- * \param pc Pointer to firmware data to verify against.
- * \param n64Size Size of the data in pc.
- * \return The FCD_MODE_BL if verification was succesful.
- *
- * This function verifies the firmware currently in the FCd flash against the firmware
- * image pointed to by pc. The function return FCD_MODE_BL if the verification is OK and
- * FCD_MODE_APP otherwise.
- */
-EXTERN FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, int64_t n64Size)
-{
- hid_device *phd=NULL;
- unsigned char aucBufIn[65];
- unsigned char aucBufOut[65];
- uint32_t u32AddrStart;
- uint32_t u32AddrEnd;
- uint32_t u32Addr;
- BOOL bFinished=FALSE;
-
- phd = fcdOpen();
-
- if (phd==NULL)
- {
- return FCD_MODE_NONE;
- }
-
- // Get the valid flash address range
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_GET_BYTE_ADDR_RANGE;
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]!=FCD_CMD_BL_GET_BYTE_ADDR_RANGE || aucBufIn[1]!=1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- u32AddrStart=
- aucBufIn[2]+
- (((uint32_t)aucBufIn[3])<<8)+
- (((uint32_t)aucBufIn[4])<<16)+
- (((uint32_t)aucBufIn[5])<<24);
-
- u32AddrEnd=
- aucBufIn[6]+
- (((uint32_t)aucBufIn[7])<<8)+
- (((uint32_t)aucBufIn[8])<<16)+
- (((uint32_t)aucBufIn[9])<<24);
-
- // Set start address for flash
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_SET_BYTE_ADDR;
- aucBufOut[2] = ((unsigned char)u32AddrStart);
- aucBufOut[3] = ((unsigned char)(u32AddrStart>>8));
- aucBufOut[4] = ((unsigned char)(u32AddrStart>>16));
- aucBufOut[5] = ((unsigned char)(u32AddrStart>>24));
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]!=FCD_CMD_BL_SET_BYTE_ADDR || aucBufIn[1]!=1)
- {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- // Read blocks
- aucBufOut[0] = 0; // Report ID, ignored
- aucBufOut[1] = FCD_CMD_BL_READ_FLASH_BLOCK;
- for (u32Addr=u32AddrStart; u32Addr+47<u32AddrEnd && u32Addr+47<n64Size && !bFinished; u32Addr+=48)
- {
- hid_write(phd, aucBufOut, 65);
- memset(aucBufIn, 0xCC, 65); // Clear out the response buffer
- hid_read(phd, aucBufIn, 65);
-
- if (aucBufIn[0]!=FCD_CMD_BL_READ_FLASH_BLOCK || aucBufIn[1]!=1)
- {
- bFinished = TRUE;
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- if (memcmp(&aucBufIn[2],&pc[u32Addr],48)!=0)
- {
- bFinished = TRUE;
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
- }
-
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
-}
-
-
-
-/** \brief Write FCD parameter (e.g. gain or filter)
- * \param u8Cmd The command byte / parameter ID, see FCD_CMD_APP_SET_*
- * \param pu8Data The parameter value to be written
- * \param u8len Length of pu8Data in bytes
- * \return One of FCD_MODE_NONE, FCD_MODE_APP or FCD_MODE_BL (see description)
- *
- * This function can be used to set the value of a parameter in the FCD for which there is no
- * high level API call. It gives access to the low level API of the FCD and the caller is expected
- * to be aware of the various FCD commands, since they are required to be supplied as parameter
- * to this function.
- *
- * The return value can be used to determine the success or failure of the command execution:
- * - FCD_MODE_APP : Reply from FCD was as expected (nominal case).
- * - FCD_MODE_BL : Reply from FCD was not as expected.
- * - FCD_MODE_NONE : No FCD was found
- */
-EXTERN FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len)
-{
- hid_device *phd=NULL;
- unsigned char aucBufOut[65];
- unsigned char aucBufIn[65];
-
-
- phd = fcdOpen();
-
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- aucBufOut[0]=0; // Report ID, ignored
- aucBufOut[1]=u8Cmd;
- memcpy(aucBufOut+2, pu8Data,u8len);
- hid_write(phd,aucBufOut,65);
-
- /* we must read after each write in order to empty FCD/HID buffer */
- memset(aucBufIn,0xCC,65); // Clear out the response buffer
- hid_read(phd,aucBufIn,65);
-
- /* Check the response, if OK return FCD_MODE_APP */
- if (aucBufIn[0]==u8Cmd && aucBufIn[1]==1) {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- /* Response did not contain the expected bytes */
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
-
-}
-
-
-/** \brief Read FCD parameter (e.g. gain or filter)
- * \param u8Cmd The command byte / parameter ID, see FCD_CMD_APP_GET_*
- * \param pu8Data TPointer to buffer where the parameter value(s) will be written
- * \param u8len Length of pu8Data in bytes
- * \return One of FCD_MODE_NONE, FCD_MODE_APP or FCD_MODE_BL (see description)
- *
- * This function can be used to read the value of a parameter in the FCD for which there is no
- * high level API call. It gives access to the low level API of the FCD and the caller is expected
- * to be aware of the various FCD commands, since they are required to be supplied as parameter
- * to this function.
- *
- * The return value can be used to determine the success or failure of the command execution:
- * - FCD_MODE_APP : Reply from FCD was as expected (nominal case).
- * - FCD_MODE_BL : Reply from FCD was not as expected.
- * - FCD_MODE_NONE : No FCD was found
- */
-EXTERN FCD_MODE_ENUM fcdAppGetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len)
-{
- hid_device *phd=NULL;
- unsigned char aucBufOut[65];
- unsigned char aucBufIn[65];
-
- phd = fcdOpen();
- if (phd == NULL)
- {
- return FCD_MODE_NONE;
- }
-
- aucBufOut[0]=0; // Report ID, ignored
- aucBufOut[1]=u8Cmd;
- hid_write(phd,aucBufOut,65);
-
- memset(aucBufIn,0xCC,65); // Clear out the response buffer
- hid_read(phd,aucBufIn,65);
- /* Copy return data to output buffer (even if cmd exec failed) */
- memcpy(pu8Data,aucBufIn+2,u8len);
-
- /* Check status bytes in returned data */
- if (aucBufIn[0]==u8Cmd && aucBufIn[1]==1) {
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_APP;
- }
-
- /* Response did not contain the expected bytes */
- fcdClose(phd);
- phd = NULL;
-
- return FCD_MODE_BL;
-}
-
diff --git a/gr-fcd/lib/fcd/fcd.h b/gr-fcd/lib/fcd/fcd.h
deleted file mode 100644
index 7cfe9b7ed..000000000
--- a/gr-fcd/lib/fcd/fcd.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/***************************************************************************
- * This file is part of Qthid.
- *
- * Copyright (C) 2010 Howard Long, G6LVB
- * CopyRight (C) 2011 Alexandru Csete, OZ9AEC
- * Mario Lorenz, DL5MLO
- *
- * Qthid is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Qthid is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Qthid. If not, see <http://www.gnu.org/licenses/>.
- *
- ***************************************************************************/
-
-#ifndef FCD_H
-#define FCD_H 1
-
-#include <fcd_api.h>
-
-#ifdef FCD
-#define EXTERN
-#define ASSIGN (x) =x
-#else
-#define EXTERN extern
-#define ASSIGN(x)
-#endif
-
-#include <inttypes.h>
-
-/** \brief FCD mode enumeration. */
-typedef enum {
- FCD_MODE_NONE, /*!< No FCD detected. */
- FCD_MODE_BL, /*!< FCD present in bootloader mode. */
- FCD_MODE_APP /*!< FCD present in aplpication mode. */
-} FCD_MODE_ENUM; // The current mode of the FCD: none inserted, in bootloader mode or in normal application mode
-
-/** \brief FCD capabilities that depend on both hardware and firmware. */
-typedef struct {
- unsigned char hasBiasT; /*!< Whether FCD has hardware bias tee (1=yes, 0=no) */
- unsigned char hasCellBlock; /*!< Whether FCD has cellular blocking. */
-} FCD_CAPS_STRUCT;
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Application functions */
-EXTERN FCD_API FCD_MODE_ENUM fcdGetMode(void);
-EXTERN FCD_API FCD_MODE_ENUM fcdGetFwVerStr(char *str);
-EXTERN FCD_API FCD_MODE_ENUM fcdGetCaps(FCD_CAPS_STRUCT *fcd_caps);
-EXTERN FCD_API FCD_MODE_ENUM fcdGetCapsStr(char *caps_str);
-EXTERN FCD_API FCD_MODE_ENUM fcdAppReset(void);
-EXTERN FCD_API FCD_MODE_ENUM fcdAppSetFreqkHz(int nFreq);
-EXTERN FCD_API FCD_MODE_ENUM fcdAppSetFreq(int nFreq);
-
-EXTERN FCD_API FCD_MODE_ENUM fcdAppSetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len);
-EXTERN FCD_API FCD_MODE_ENUM fcdAppGetParam(uint8_t u8Cmd, uint8_t *pu8Data, uint8_t u8len);
-
-
-/* Bootloader functions */
-EXTERN FCD_API FCD_MODE_ENUM fcdBlReset(void);
-EXTERN FCD_API FCD_MODE_ENUM fcdBlErase(void);
-EXTERN FCD_API FCD_MODE_ENUM fcdBlWriteFirmware(char *pc, int64_t n64Size);
-EXTERN FCD_API FCD_MODE_ENUM fcdBlVerifyFirmware(char *pc, int64_t n64Size);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // FCD_H
diff --git a/gr-fcd/lib/fcd/fcdhidcmd.h b/gr-fcd/lib/fcd/fcdhidcmd.h
deleted file mode 100644
index 1741ede30..000000000
--- a/gr-fcd/lib/fcd/fcdhidcmd.h
+++ /dev/null
@@ -1,305 +0,0 @@
-/***************************************************************************
- * This file is part of Qthid.
- *
- * Copyright (C) 2010 Howard Long, G6LVB
- * CopyRight (C) 2011 Alexandru Csete, OZ9AEC
- * Mario Lorenz, DL5MLO
- *
- * Qthid is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * Qthid is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Qthid. If not, see <http://www.gnu.org/licenses/>.
- *
- ***************************************************************************/
-#ifndef FCDHIDCMD_H
-#define FCD_HID_CMD_H 1
-
-
-/* Commands applicable in bootloader mode */
-#define FCD_CMD_BL_QUERY 1 /*!< Returns string with "FCDAPP version". */
-#define FCD_CMD_BL_RESET 8 /*!< Reset to application mode. */
-#define FCD_CMD_BL_ERASE 24 /*!< Erase firmware from FCD flash. */
-#define FCD_CMD_BL_SET_BYTE_ADDR 25 /*!< TBD */
-#define FCD_CMD_BL_GET_BYTE_ADDR_RANGE 26 /*!< Get address range. */
-#define FCD_CMD_BL_WRITE_FLASH_BLOCK 27 /*!< Write flash block. */
-#define FCD_CMD_BL_READ_FLASH_BLOCK 28 /*!< Read flash block. */
-
-/* Commands applicable in application mode */
-#define FCD_CMD_APP_SET_FREQ_KHZ 100 /*!< Send with 3 byte unsigned little endian frequency in kHz. */
-#define FCD_CMD_APP_SET_FREQ_HZ 101 /*!< Send with 4 byte unsigned little endian frequency in Hz, returns with actual frequency set in Hz */
-#define FCD_CMD_APP_GET_FREQ_HZ 102 /*!< Returns 4 byte unsigned little endian frequency in Hz. */
-
-#define FCD_CMD_APP_GET_IF_RSSI 104 /*!< Supposed to return 1 byte unsigned IF RSSI (-35dBm=0, -10dBm=70) but it is not functional. */
-#define FCD_CMD_APP_GET_PLL_LOCK 105 /*!< Returns 1 bit, true if locked. */
-
-#define FCD_CMD_APP_SET_DC_CORR 106 /*!< Send with 2 byte unsigned I DC correction followed by 2 byte unsigned Q DC correction. 32768 is the default centre value. */
-#define FCD_CMD_APP_GET_DC_CORR 107 /*!< Returns 2 byte unsigned I DC correction followed by 2 byte unsigned Q DC correction. 32768 is the default centre value. */
-#define FCD_CMD_APP_SET_IQ_CORR 108 /*!< Send with 2 byte signed phase correction followed by 2 byte unsigned gain correction. 0 is the default centre value for phase correction, 32768 is the default centre value for gain. */
-#define FCD_CMD_APP_GET_IQ_CORR 109 /*!< Returns 2 byte signed phase correction followed by 2 byte unsigned gain correction. 0 is the default centre value for phase correction, 32768 is the default centre value for gain. */
-
-#define FCD_CMD_APP_SET_LNA_GAIN 110 /*!< Send a 1 byte value, see enums for reference. */
-#define FCD_CMD_APP_SET_LNA_ENHANCE 111
-#define FCD_CMD_APP_SET_BAND 112
-#define FCD_CMD_APP_SET_RF_FILTER 113
-#define FCD_CMD_APP_SET_MIXER_GAIN 114
-#define FCD_CMD_APP_SET_BIAS_CURRENT 115
-#define FCD_CMD_APP_SET_MIXER_FILTER 116
-#define FCD_CMD_APP_SET_IF_GAIN1 117
-#define FCD_CMD_APP_SET_IF_GAIN_MODE 118
-#define FCD_CMD_APP_SET_IF_RC_FILTER 119
-#define FCD_CMD_APP_SET_IF_GAIN2 120
-#define FCD_CMD_APP_SET_IF_GAIN3 121
-#define FCD_CMD_APP_SET_IF_FILTER 122
-#define FCD_CMD_APP_SET_IF_GAIN4 123
-#define FCD_CMD_APP_SET_IF_GAIN5 124
-#define FCD_CMD_APP_SET_IF_GAIN6 125
-#define FCD_CMD_APP_SET_BIAS_TEE 126 /*!< Bias T for ext LNA. Send with one byte: 1=ON, 0=OFF. */
-
-#define FCD_CMD_APP_GET_LNA_GAIN 150 // Retrieve a 1 byte value, see enums for reference
-#define FCD_CMD_APP_GET_LNA_ENHANCE 151
-#define FCD_CMD_APP_GET_BAND 152
-#define FCD_CMD_APP_GET_RF_FILTER 153
-#define FCD_CMD_APP_GET_MIXER_GAIN 154
-#define FCD_CMD_APP_GET_BIAS_CURRENT 155
-#define FCD_CMD_APP_GET_MIXER_FILTER 156
-#define FCD_CMD_APP_GET_IF_GAIN1 157
-#define FCD_CMD_APP_GET_IF_GAIN_MODE 158
-#define FCD_CMD_APP_GET_IF_RC_FILTER 159
-#define FCD_CMD_APP_GET_IF_GAIN2 160
-#define FCD_CMD_APP_GET_IF_GAIN3 161
-#define FCD_CMD_APP_GET_IF_FILTER 162
-#define FCD_CMD_APP_GET_IF_GAIN4 163
-#define FCD_CMD_APP_GET_IF_GAIN5 164
-#define FCD_CMD_APP_GET_IF_GAIN6 165
-#define FCD_CMD_APP_GET_BIAS_TEE 166 /*!< Bias T. 1=ON, 0=OFF. */
-
-#define FCD_CMD_APP_SEND_I2C_BYTE 200
-#define FCD_CMD_APP_RECV_I2C_BYTE 201
-
-#define FCD_CMD_APP_RESET 255 // Reset to bootloader
-
-
-typedef enum
-{
- TLGE_N5_0DB=0,
- TLGE_N2_5DB=1,
- TLGE_P0_0DB=4,
- TLGE_P2_5DB=5,
- TLGE_P5_0DB=6,
- TLGE_P7_5DB=7,
- TLGE_P10_0DB=8,
- TLGE_P12_5DB=9,
- TLGE_P15_0DB=10,
- TLGE_P17_5DB=11,
- TLGE_P20_0DB=12,
- TLGE_P25_0DB=13,
- TLGE_P30_0DB=14
-} TUNER_LNA_GAIN_ENUM;
-
-typedef enum
-{
- TLEE_OFF=0,
- TLEE_0=1,
- TLEE_1=3,
- TLEE_2=5,
- TLEE_3=7
-} TUNER_LNA_ENHANCE_ENUM;
-
-typedef enum
-{
- TBE_VHF2,
- TBE_VHF3,
- TBE_UHF,
- TBE_LBAND
-} TUNER_BAND_ENUM;
-
-typedef enum
-{
- // Band 0, VHF II
- TRFE_LPF268MHZ=0,
- TRFE_LPF299MHZ=8,
- // Band 1, VHF III
- TRFE_LPF509MHZ=0,
- TRFE_LPF656MHZ=8,
- // Band 2, UHF
- TRFE_BPF360MHZ=0,
- TRFE_BPF380MHZ=1,
- TRFE_BPF405MHZ=2,
- TRFE_BPF425MHZ=3,
- TRFE_BPF450MHZ=4,
- TRFE_BPF475MHZ=5,
- TRFE_BPF505MHZ=6,
- TRFE_BPF540MHZ=7,
- TRFE_BPF575MHZ=8,
- TRFE_BPF615MHZ=9,
- TRFE_BPF670MHZ=10,
- TRFE_BPF720MHZ=11,
- TRFE_BPF760MHZ=12,
- TRFE_BPF840MHZ=13,
- TRFE_BPF890MHZ=14,
- TRFE_BPF970MHZ=15,
- // Band 2, L band
- TRFE_BPF1300MHZ=0,
- TRFE_BPF1320MHZ=1,
- TRFE_BPF1360MHZ=2,
- TRFE_BPF1410MHZ=3,
- TRFE_BPF1445MHZ=4,
- TRFE_BPF1460MHZ=5,
- TRFE_BPF1490MHZ=6,
- TRFE_BPF1530MHZ=7,
- TRFE_BPF1560MHZ=8,
- TRFE_BPF1590MHZ=9,
- TRFE_BPF1640MHZ=10,
- TRFE_BPF1660MHZ=11,
- TRFE_BPF1680MHZ=12,
- TRFE_BPF1700MHZ=13,
- TRFE_BPF1720MHZ=14,
- TRFE_BPF1750MHZ=15
-} TUNER_RF_FILTER_ENUM;
-
-typedef enum
-{
- TMGE_P4_0DB=0,
- TMGE_P12_0DB=1
-} TUNER_MIXER_GAIN_ENUM;
-
-typedef enum
-{
- TBCE_LBAND=0,
- TBCE_1=1,
- TBCE_2=2,
- TBCE_VUBAND=3
-} TUNER_BIAS_CURRENT_ENUM;
-
-typedef enum
-{
- TMFE_27_0MHZ=0,
- TMFE_4_6MHZ=8,
- TMFE_4_2MHZ=9,
- TMFE_3_8MHZ=10,
- TMFE_3_4MHZ=11,
- TMFE_3_0MHZ=12,
- TMFE_2_7MHZ=13,
- TMFE_2_3MHZ=14,
- TMFE_1_9MHZ=15
-} TUNER_MIXER_FILTER_ENUM;
-
-typedef enum
-{
- TIG1E_N3_0DB=0,
- TIG1E_P6_0DB=1
-} TUNER_IF_GAIN1_ENUM;
-
-typedef enum
-{
- TIGME_LINEARITY=0,
- TIGME_SENSITIVITY=1
-} TUNER_IF_GAIN_MODE_ENUM;
-
-typedef enum
-{
- TIRFE_21_4MHZ=0,
- TIRFE_21_0MHZ=1,
- TIRFE_17_6MHZ=2,
- TIRFE_14_7MHZ=3,
- TIRFE_12_4MHZ=4,
- TIRFE_10_6MHZ=5,
- TIRFE_9_0MHZ=6,
- TIRFE_7_7MHZ=7,
- TIRFE_6_4MHZ=8,
- TIRFE_5_3MHZ=9,
- TIRFE_4_4MHZ=10,
- TIRFE_3_4MHZ=11,
- TIRFE_2_6MHZ=12,
- TIRFE_1_8MHZ=13,
- TIRFE_1_2MHZ=14,
- TIRFE_1_0MHZ=15
-} TUNER_IF_RC_FILTER_ENUM;
-
-typedef enum
-{
- TIG2E_P0_0DB=0,
- TIG2E_P3_0DB=1,
- TIG2E_P6_0DB=2,
- TIG2E_P9_0DB=3
-} TUNER_IF_GAIN2_ENUM;
-
-typedef enum
-{
- TIG3E_P0_0DB=0,
- TIG3E_P3_0DB=1,
- TIG3E_P6_0DB=2,
- TIG3E_P9_0DB=3
-} TUNER_IF_GAIN3_ENUM;
-
-typedef enum
-{
- TIG4E_P0_0DB=0,
- TIG4E_P1_0DB=1,
- TIG4E_P2_0DB=2
-} TUNER_IF_GAIN4_ENUM;
-
-typedef enum
-{
- TIFE_5_50MHZ=0,
- TIFE_5_30MHZ=1,
- TIFE_5_00MHZ=2,
- TIFE_4_80MHZ=3,
- TIFE_4_60MHZ=4,
- TIFE_4_40MHZ=5,
- TIFE_4_30MHZ=6,
- TIFE_4_10MHZ=7,
- TIFE_3_90MHZ=8,
- TIFE_3_80MHZ=9,
- TIFE_3_70MHZ=10,
- TIFE_3_60MHZ=11,
- TIFE_3_40MHZ=12,
- TIFE_3_30MHZ=13,
- TIFE_3_20MHZ=14,
- TIFE_3_10MHZ=15,
- TIFE_3_00MHZ=16,
- TIFE_2_95MHZ=17,
- TIFE_2_90MHZ=18,
- TIFE_2_80MHZ=19,
- TIFE_2_75MHZ=20,
- TIFE_2_70MHZ=21,
- TIFE_2_60MHZ=22,
- TIFE_2_55MHZ=23,
- TIFE_2_50MHZ=24,
- TIFE_2_45MHZ=25,
- TIFE_2_40MHZ=26,
- TIFE_2_30MHZ=27,
- TIFE_2_28MHZ=28,
- TIFE_2_24MHZ=29,
- TIFE_2_20MHZ=30,
- TIFE_2_15MHZ=31
-} TUNER_IF_FILTER_ENUM;
-
-typedef enum
-{
- TIG5E_P3_0DB=0,
- TIG5E_P6_0DB=1,
- TIG5E_P9_0DB=2,
- TIG5E_P12_0DB=3,
- TIG5E_P15_0DB=4
-} TUNER_IF_GAIN5_ENUM;
-
-typedef enum
-{
- TIG6E_P3_0DB=0,
- TIG6E_P6_0DB=1,
- TIG6E_P9_0DB=2,
- TIG6E_P12_0DB=3,
- TIG6E_P15_0DB=4
-} TUNER_IF_GAIN6_ENUM;
-
-
-#endif // FCDHIDCMD_H