kopia lustrzana https://github.com/Hamlib/Hamlib
Update LGPL header in kit source files.
TNX to Lucian Laga, YO6PLB, for the notification.Hamlib-1.2.15
rodzic
8d16bebf40
commit
1fbece183b
25
kit/dds60.c
25
kit/dds60.c
|
@ -2,21 +2,20 @@
|
|||
* Hamlib KIT backend - DDS-60 description
|
||||
* Copyright (c) 2007 by Stephane Fillod
|
||||
*
|
||||
* $Id: dds60.c,v 1.1 2007-10-23 21:56:30 fillods Exp $
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -68,7 +67,7 @@ static const struct confparams dds60_cfg_params[] = {
|
|||
"0", RIG_CONF_NUMERIC, { .n = { 0, MHz(180), 1 } }
|
||||
},
|
||||
{ TOK_MULTIPLIER, "multiplier", "Multiplier", "Optional X6 multiplier",
|
||||
"1", RIG_CONF_CHECKBUTTON
|
||||
"1", RIG_CONF_CHECKBUTTON
|
||||
},
|
||||
{ TOK_IFMIXFREQ, "phase_mod", "Phase Modulation", "Phase modulation in degrees",
|
||||
"0", RIG_CONF_NUMERIC, { .n = { 0, 360, PHASE_INCR } }
|
||||
|
@ -86,7 +85,7 @@ static int dds60_get_conf(RIG *rig, token_t token, char *val);
|
|||
/*
|
||||
* The DDS-60 kit exists with a AD9851 chip (60 MHz),
|
||||
* as well as with the AD9850 chip (30 MHz) (no multiplier).
|
||||
* There is an option to enable/disable the AD9851 X6 multiplier.
|
||||
* There is an option to enable/disable the AD9851 X6 multiplier.
|
||||
* http://www.amqrp.org/kits/dds60/
|
||||
* http://www.analog.com/en/prod/0,2877,AD9851,00.html
|
||||
*
|
||||
|
@ -332,7 +331,7 @@ int dds60_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
frg = (unsigned long)(((double)freq + priv->if_mix_freq) /
|
||||
osc_ref * 4294967296.0 + 0.5);
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: word %lu, X6 multipler %d, phase %.2f\n",
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: word %lu, X6 multipler %d, phase %.2f\n",
|
||||
__FUNCTION__, frg, priv->multiplier, priv->phase_step*PHASE_INCR);
|
||||
|
||||
control = priv->multiplier ? 0x01 : 0x00;
|
||||
|
|
25
kit/drt1.c
25
kit/drt1.c
|
@ -2,21 +2,20 @@
|
|||
* Hamlib KIT backend - Sat-Schneider DRT1/SAD1 DRM receiver description
|
||||
* Copyright (c) 2004-2005 by Stephane Fillod
|
||||
*
|
||||
* $Id: drt1.c,v 1.4 2005-04-03 12:27:15 fillods Exp $
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -285,7 +284,7 @@ Inputs (SDI(O)); SCLK und I/O UPDATE haves 5V TTL level, so that a
|
|||
/*
|
||||
* Introduce delay after changing the bit state
|
||||
* FIXME: This implementation may not work for very fast computers,
|
||||
* or smart compilers. However, nanosleep can have
|
||||
* or smart compilers. However, nanosleep can have
|
||||
* granularity > 10ms!
|
||||
*/
|
||||
static int ad_delay(int m)
|
||||
|
@ -365,7 +364,7 @@ static int ad_write_reg(hamlib_port_t *port, unsigned addr, unsigned nb_bytes, u
|
|||
ad_ioupd(port, 0); /* DTR 0 */
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
}
|
||||
|
||||
/* Register serial adresses */
|
||||
#define CFR1 0x0
|
||||
|
@ -406,7 +405,7 @@ int drt1_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
|
||||
/* all frequencies are in Hz */
|
||||
frg = (unsigned long)(((double)freq + priv->if_mix_freq) /
|
||||
(priv->osc_freq * priv->ref_mult)
|
||||
(priv->osc_freq * priv->ref_mult)
|
||||
* 4294967296.0);
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: [%#lx]\n", __FUNCTION__,frg);
|
||||
|
|
65
kit/dwt.c
65
kit/dwt.c
|
@ -2,21 +2,20 @@
|
|||
* Hamlib KIT backend - Digital World Traveller DRM receiver description
|
||||
* Copyright (c) 2005-2008 by Stephane Fillod
|
||||
*
|
||||
* $Id: dwt.c,v 1.5 2008-12-09 22:07:21 fillods Exp $
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -49,7 +48,7 @@
|
|||
/*
|
||||
* Coding Technologies Digital World Traveller DRM tuner.
|
||||
*
|
||||
* TODO: rig_scan, set/get FM mode (mono/stereo),
|
||||
* TODO: rig_scan, set/get FM mode (mono/stereo),
|
||||
* get antenna mode (loop/wire),
|
||||
* get low intermediate frequency (LIF) which may vary up to +-667 Hz
|
||||
* and may be additionally increased of up to 2000 Hz
|
||||
|
@ -244,39 +243,39 @@ int dwtdll_init(RIG *rig)
|
|||
/* Get process addresses from dll for function access */
|
||||
priv->FrontendOpen =
|
||||
(FNCFrontendOpen) GetProcAddress(priv->dll, "FrontendOpen");
|
||||
priv->FrontendClose =
|
||||
priv->FrontendClose =
|
||||
(FNCFrontendClose) GetProcAddress(priv->dll, "FrontendClose");
|
||||
priv->FrontendGetId =
|
||||
priv->FrontendGetId =
|
||||
(FNCFrontendGetId) GetProcAddress(priv->dll, "FrontendGetId");
|
||||
priv->FrontendSetMode =
|
||||
priv->FrontendSetMode =
|
||||
(FNCFrontendSetMode) GetProcAddress(priv->dll, "FrontendSetMode");
|
||||
priv->FrontendGetMode =
|
||||
priv->FrontendGetMode =
|
||||
(FNCFrontendGetMode) GetProcAddress(priv->dll, "FrontendGetMode");
|
||||
priv->FrontendSetFrequency =
|
||||
priv->FrontendSetFrequency =
|
||||
(FNCFrontendSetFrequency) GetProcAddress(priv->dll, "FrontendSetFrequency");
|
||||
priv->FrontendGetFrequency =
|
||||
priv->FrontendGetFrequency =
|
||||
(FNCFrontendGetFrequency) GetProcAddress(priv->dll, "FrontendGetFrequency");
|
||||
priv->FrontendGetRfLevel =
|
||||
priv->FrontendGetRfLevel =
|
||||
(FNCFrontendGetRfLevel) GetProcAddress(priv->dll, "FrontendGetRfLevel");
|
||||
priv->FrontendGetLIF =
|
||||
priv->FrontendGetLIF =
|
||||
(FNCFrontendGetLIF) GetProcAddress(priv->dll, "FrontendGetLIF");
|
||||
priv->FrontendStartScan =
|
||||
priv->FrontendStartScan =
|
||||
(FNCFrontendStartScan) GetProcAddress(priv->dll, "FrontendStartScan");
|
||||
priv->FrontendStopScan =
|
||||
priv->FrontendStopScan =
|
||||
(FNCFrontendStopScan) GetProcAddress(priv->dll, "FrontendStopScan");
|
||||
priv->FrontendGetScanStatus =
|
||||
priv->FrontendGetScanStatus =
|
||||
(FNCFrontendGetScanStatus) GetProcAddress(priv->dll, "FrontendGetScanStatus");
|
||||
priv->FrontendSetRfAttenuator =
|
||||
priv->FrontendSetRfAttenuator =
|
||||
(FNCFrontendSetRfAttenuator) GetProcAddress(priv->dll, "FrontendSetRfAttenuator");
|
||||
priv->FrontendGetRfAttenuator =
|
||||
priv->FrontendGetRfAttenuator =
|
||||
(FNCFrontendGetRfAttenuator) GetProcAddress(priv->dll, "FrontendGetRfAttenuator");
|
||||
priv->FrontendSetAntennaMode =
|
||||
priv->FrontendSetAntennaMode =
|
||||
(FNCFrontendSetAntennaMode) GetProcAddress(priv->dll, "FrontendSetAntennaMode");
|
||||
priv->FrontendGetAntennaMode =
|
||||
priv->FrontendGetAntennaMode =
|
||||
(FNCFrontendGetAntennaMode) GetProcAddress(priv->dll, "FrontendGetAntennaMode");
|
||||
priv->FrontendSetFmMode =
|
||||
priv->FrontendSetFmMode =
|
||||
(FNCFrontendSetFmMode) GetProcAddress(priv->dll, "FrontendSetFmMode");
|
||||
priv->FrontendGetFmMode =
|
||||
priv->FrontendGetFmMode =
|
||||
(FNCFrontendGetFmMode) GetProcAddress(priv->dll, "FrontendGetFmMode");
|
||||
|
||||
rig->state.priv = (void*)priv;
|
||||
|
@ -345,7 +344,7 @@ int dwtdll_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
int dwtdll_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
||||
{
|
||||
struct dwtdll_priv_data *priv = (struct dwtdll_priv_data *)rig->state.priv;
|
||||
|
||||
|
||||
*freq = (freq_t) priv->FrontendGetFrequency();
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -366,7 +365,7 @@ int dwtdll_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width)
|
|||
}
|
||||
|
||||
ret = priv->FrontendSetMode(dwtmode);
|
||||
|
||||
|
||||
return ret < 0 ? -RIG_EIO : RIG_OK;
|
||||
}
|
||||
|
||||
|
@ -394,7 +393,7 @@ int dwtdll_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
{
|
||||
struct dwtdll_priv_data *priv = (struct dwtdll_priv_data *)rig->state.priv;
|
||||
short ret=0;
|
||||
|
||||
|
||||
switch(level) {
|
||||
case RIG_LEVEL_ATT:
|
||||
ret = priv->FrontendSetRfAttenuator(val.i ? 1 : 0);
|
||||
|
@ -606,8 +605,8 @@ int dwt_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
if (r < 0) {
|
||||
/* we get EPIPE if the firmware stalls the endpoint. */
|
||||
if (errno != EPIPE)
|
||||
rig_debug (RIG_DEBUG_ERR,
|
||||
"usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR,
|
||||
"usb_control_msg failed: %s\n",
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
}
|
||||
|
|
|
@ -2,21 +2,20 @@
|
|||
* Hamlib KIT backend - Elektor DRM receiver description
|
||||
* Copyright (c) 2004-2005 by Stephane Fillod
|
||||
*
|
||||
* $Id: elektor304.c,v 1.7 2007-11-07 19:12:55 fillods Exp $
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -238,7 +237,7 @@ int elektor304_get_conf(RIG *rig, token_t token, char *val)
|
|||
/*
|
||||
* Introduce delay after changing the bit state
|
||||
* FIXME: This implementation may not work for very fast computers,
|
||||
* or smart compilers. However, nanosleep can have
|
||||
* or smart compilers. However, nanosleep can have
|
||||
* granularity > 10ms!
|
||||
*/
|
||||
static int ad_delay(int m)
|
||||
|
@ -310,7 +309,7 @@ static int ad_write(hamlib_port_t *port, unsigned data)
|
|||
ad_fsync(port, 0); /* DTR 0 */
|
||||
|
||||
return RIG_OK;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int elektor304_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
||||
|
@ -339,7 +338,7 @@ int elektor304_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
fhl = (frg>>16)& 0xff;
|
||||
fhh = (frg>>24)& 0xff;
|
||||
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: %lu=[%02x.%02x.%02x.%02x]\n",
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: %lu=[%02x.%02x.%02x.%02x]\n",
|
||||
__FUNCTION__,frg,fll,flh,fhl,fhh);
|
||||
|
||||
ad_write(port, 0xF800); /* Reset */
|
||||
|
@ -347,7 +346,7 @@ int elektor304_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
ad_write(port, 0x3000|fll); /* 4 Bytes to FREQ0 */
|
||||
ad_write(port, 0x2100|flh);
|
||||
ad_write(port, 0x3200|fhl);
|
||||
ad_write(port, 0x2300|fhh);
|
||||
ad_write(port, 0x2300|fhh);
|
||||
|
||||
ad_write(port, 0x8000); /* Sync */
|
||||
ad_write(port, 0xC000); /* Reset end */
|
||||
|
|
|
@ -3,19 +3,19 @@
|
|||
* Copyright (c) 2007-2010 by Stephane Fillod
|
||||
*
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -78,7 +78,7 @@ static const char * elektor507_get_info(RIG *rig);
|
|||
|
||||
|
||||
static int cy_update_pll(RIG *rig, unsigned char IICadr);
|
||||
static int i2c_write_regs(RIG *rig, unsigned char IICadr, int reg_count, unsigned char reg_adr,
|
||||
static int i2c_write_regs(RIG *rig, unsigned char IICadr, int reg_count, unsigned char reg_adr,
|
||||
unsigned char reg_val1, unsigned char reg_val2, unsigned char reg_val3);
|
||||
#define i2c_write_reg(rig, IICadr, reg_adr, reg_val) \
|
||||
i2c_write_regs(rig, IICadr, 1, reg_adr, reg_val, 0, 0)
|
||||
|
@ -99,7 +99,7 @@ static int i2c_write_regs(RIG *rig, unsigned char IICadr, int reg_count, unsigne
|
|||
|
||||
|
||||
/* Some type definitions needed for dll access */
|
||||
typedef enum
|
||||
typedef enum
|
||||
{
|
||||
FT_OK = 0,
|
||||
FT_INVALID_HANDLE = 1,
|
||||
|
@ -241,7 +241,7 @@ int elektor507_init(RIG *rig)
|
|||
return -RIG_EIO; /* huh! */
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
* Get process addresses from dll for function access
|
||||
*/
|
||||
|
||||
|
@ -249,16 +249,16 @@ int elektor507_init(RIG *rig)
|
|||
extra_priv->FT_Open =
|
||||
(FNCFT_Open) GetProcAddress(extra_priv->dll, "FT_Open");
|
||||
/* Close_USB_Device */
|
||||
extra_priv->FT_Close =
|
||||
extra_priv->FT_Close =
|
||||
(FNCFT_Close) GetProcAddress(extra_priv->dll, "FT_Close");
|
||||
/* Set_USB_Device_BitMode */
|
||||
extra_priv->FT_SetBitMode =
|
||||
extra_priv->FT_SetBitMode =
|
||||
(FNCFT_SetBitMode) GetProcAddress(extra_priv->dll, "FT_SetBitMode");
|
||||
/* Set_USB_Device_BaudRate */
|
||||
extra_priv->FT_SetBaudRate =
|
||||
extra_priv->FT_SetBaudRate =
|
||||
(FNCFT_SetBaudRate) GetProcAddress(extra_priv->dll, "FT_SetBaudRate");
|
||||
/* Write_USB_Device_Buffer */
|
||||
extra_priv->FT_Write =
|
||||
extra_priv->FT_Write =
|
||||
(FNCFT_Write) GetProcAddress(extra_priv->dll, "FT_Write");
|
||||
|
||||
rig->state.priv = (void*)priv;
|
||||
|
@ -268,7 +268,7 @@ int elektor507_init(RIG *rig)
|
|||
|
||||
int elektor507_ftdi_write_data(RIG *rig, void *FTOutBuf, unsigned long BufferSize)
|
||||
{
|
||||
struct elektor507_extra_priv_data *extra_priv =
|
||||
struct elektor507_extra_priv_data *extra_priv =
|
||||
&((struct elektor507_priv_data *)rig->state.priv)->extra_priv;
|
||||
FT_Result ret;
|
||||
int Result;
|
||||
|
@ -402,7 +402,7 @@ int elektor507_libusb_setup(RIG *rig)
|
|||
#if 1
|
||||
ret = usb_control_msg(udh, 0x40, 0, 0, index, NULL, 0, FTDI_USB_WRITE_TIMEOUT);
|
||||
if (ret != 0) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg reset failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg reset failed: %s\n",
|
||||
__FUNCTION__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
@ -417,7 +417,7 @@ int elektor507_libusb_setup(RIG *rig)
|
|||
|
||||
ret = usb_control_msg(udh, 0x40, 0x0B, usb_val, index, NULL, 0, FTDI_USB_WRITE_TIMEOUT);
|
||||
if (ret != 0) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg bitbangmode failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg bitbangmode failed: %s\n",
|
||||
__FUNCTION__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
@ -431,7 +431,7 @@ int elektor507_libusb_setup(RIG *rig)
|
|||
index = 0;
|
||||
ret = usb_control_msg(udh, 0x40, 3, usb_val, index, NULL, 0, FTDI_USB_WRITE_TIMEOUT);
|
||||
if (ret != 0) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg baudrate failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg baudrate failed: %s\n",
|
||||
__FUNCTION__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
@ -451,8 +451,8 @@ int elektor507_ftdi_write_data(RIG *rig, void *FTOutBuf, unsigned long BufferSiz
|
|||
if (ret < 0) {
|
||||
/* we get EPIPE if the firmware stalls the endpoint. */
|
||||
if (errno != EPIPE)
|
||||
rig_debug (RIG_DEBUG_ERR,
|
||||
"usb_bulk_write failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR,
|
||||
"usb_bulk_write failed: %s\n",
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
}
|
||||
|
@ -736,7 +736,7 @@ static void find_P_Q_DIV1N(struct elektor507_priv_data *priv, freq_t freq)
|
|||
/*
|
||||
* Q:2..129
|
||||
* P:8..2055, best 16..1023 (because of Pump)
|
||||
|
||||
|
||||
For stable operation:
|
||||
+ REF/Qtotal must not fall below 250kHz (
|
||||
+ P*(REF/Qtotal) must not be above 400 MHz or below 100 MHz
|
||||
|
@ -760,7 +760,7 @@ static void find_P_Q_DIV1N(struct elektor507_priv_data *priv, freq_t freq)
|
|||
|
||||
VCO = ((double)priv->osc_freq/priv->Q)*priv->P;
|
||||
if (VCO < 100e3 || VCO > 400e3)
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Unstable parameters for VCO=%.1f\n",
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Unstable parameters for VCO=%.1f\n",
|
||||
__FUNCTION__, VCO);
|
||||
}
|
||||
#endif /* ORIG_ALGORITHM */
|
||||
|
@ -780,7 +780,7 @@ static void find_P_Q_DIV1N(struct elektor507_priv_data *priv, freq_t freq)
|
|||
/*
|
||||
* Q:2..129
|
||||
* P:8..2055, best 16..1023 (because of Pump)
|
||||
|
||||
|
||||
For stable operation:
|
||||
+ REF/Qtotal must not fall below 250kHz (
|
||||
+ P*(REF/Qtotal) must not be above 400 MHz or below 100 MHz
|
||||
|
@ -804,7 +804,7 @@ static void find_P_Q_DIV1N(struct elektor507_priv_data *priv, freq_t freq)
|
|||
|
||||
for (div1n = div1n_min; div1n <= div1n_max; div1n++) {
|
||||
// P/Qtotal = FREQ4*DIV1N/REF
|
||||
// (Q*int(r) + frac(r)*Q)/Q
|
||||
// (Q*int(r) + frac(r)*Q)/Q
|
||||
for (q = q_max; q >= 2; q--) {
|
||||
p = q*freq4*div1n/priv->osc_freq;
|
||||
#if 1
|
||||
|
@ -828,7 +828,7 @@ static void find_P_Q_DIV1N(struct elektor507_priv_data *priv, freq_t freq)
|
|||
|
||||
VCO = ((double)priv->osc_freq/priv->Q)*priv->P;
|
||||
if (VCO < vco_min || VCO > 400e3)
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Unstable parameters for VCO=%.1f\n",
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Unstable parameters for VCO=%.1f\n",
|
||||
__FUNCTION__, VCO);
|
||||
}
|
||||
#endif /* default alternative to ORIG_ALGORITHM */
|
||||
|
@ -904,12 +904,12 @@ int elektor507_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
find_P_Q_DIV1N(priv, freq); /* Compute PLL parameters */
|
||||
|
||||
elektor507_get_freq(rig, vfo, &final_freq);
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Freq=%.0f kHz, delta=%d Hz, Div1N=%d, P=%d, Q=%d, FREQ_ALGORITHM=%d\n",
|
||||
rig_debug(RIG_DEBUG_VERBOSE, "%s: Freq=%.0f kHz, delta=%d Hz, Div1N=%d, P=%d, Q=%d, FREQ_ALGORITHM=%d\n",
|
||||
__FUNCTION__, freq/kHz(1), (int)(final_freq-freq), priv->Div1N, priv->P, priv->Q, FREQ_ALGORITHM);
|
||||
|
||||
if ((double)priv->osc_freq/priv->Q < 250)
|
||||
rig_debug(RIG_DEBUG_WARN,
|
||||
"%s: Unstable parameters for REF/Qtotal=%.1f\n",
|
||||
rig_debug(RIG_DEBUG_WARN,
|
||||
"%s: Unstable parameters for REF/Qtotal=%.1f\n",
|
||||
__FUNCTION__, (double)priv->osc_freq/priv->Q);
|
||||
|
||||
ret = cy_update_pll(rig, CY_I2C_RAM_ADR);
|
||||
|
@ -935,7 +935,7 @@ int elektor507_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val)
|
|||
struct elektor507_priv_data *priv = (struct elektor507_priv_data *)rig->state.priv;
|
||||
int ret=0;
|
||||
int att=0;
|
||||
|
||||
|
||||
switch(level) {
|
||||
case RIG_LEVEL_ATT:
|
||||
/* val.i */
|
||||
|
@ -966,7 +966,7 @@ int elektor507_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val)
|
|||
{
|
||||
struct elektor507_priv_data *priv = (struct elektor507_priv_data *)rig->state.priv;
|
||||
int ret=0;
|
||||
|
||||
|
||||
switch(level) {
|
||||
case RIG_LEVEL_ATT:
|
||||
|
||||
|
@ -995,7 +995,7 @@ int elektor507_set_ant(RIG * rig, vfo_t vfo, ant_t ant)
|
|||
|
||||
rig_debug(RIG_DEBUG_TRACE,"%s called\n", __FUNCTION__);
|
||||
|
||||
/*
|
||||
/*
|
||||
* FTDI: RTS, CTS, DTR
|
||||
*
|
||||
* A4,A5,A6 are not connected
|
||||
|
@ -1047,18 +1047,18 @@ static int cy_update_pll(RIG *rig, unsigned char IICadr)
|
|||
int Pump;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
/*
|
||||
* PLL Pump setting according to table 9
|
||||
*/
|
||||
if (priv->P < 45)
|
||||
Pump = 0;
|
||||
else
|
||||
else
|
||||
if (priv->P < 480)
|
||||
Pump = 1;
|
||||
else
|
||||
else
|
||||
if (priv->P < 640)
|
||||
Pump = 2;
|
||||
else
|
||||
else
|
||||
if (priv->P < 800)
|
||||
Pump = 3;
|
||||
else
|
||||
|
@ -1163,7 +1163,7 @@ static void ftdi_I2C_Stop(RIG *rig)
|
|||
SCL=0, SDA=0
|
||||
SCL=1
|
||||
SCL=0
|
||||
|
||||
|
||||
No Acknowledge:
|
||||
SCL=0, SDA=1
|
||||
SCL=1
|
||||
|
@ -1187,7 +1187,7 @@ static void ftdi_I2C_Write_Byte(RIG *rig, unsigned char c)
|
|||
}
|
||||
|
||||
|
||||
int i2c_write_regs(RIG *rig, unsigned char IICadr, int reg_count, unsigned char reg_adr,
|
||||
int i2c_write_regs(RIG *rig, unsigned char IICadr, int reg_count, unsigned char reg_adr,
|
||||
unsigned char reg_val1, unsigned char reg_val2, unsigned char reg_val3)
|
||||
{
|
||||
struct elektor507_priv_data *priv = (struct elektor507_priv_data *)rig->state.priv;
|
||||
|
|
|
@ -7,19 +7,20 @@
|
|||
* Copyright (C) 2004-2010 Stephane Fillod
|
||||
*
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
|
|
@ -7,19 +7,20 @@
|
|||
*
|
||||
* Author: Stefano Speretta, Innovative Solutions In Space BV
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
|
|
@ -7,19 +7,20 @@
|
|||
*
|
||||
* Author: Stefano Speretta, Innovative Solutions In Space BV
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _FUNCUBE_H
|
||||
|
|
18
kit/kit.c
18
kit/kit.c
|
@ -3,19 +3,19 @@
|
|||
* Copyright (c) 2004-2010 by Stephane Fillod
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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 Library General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
18
kit/kit.h
18
kit/kit.h
|
@ -3,19 +3,19 @@
|
|||
* Copyright (c) 2004-2010 by Stephane Fillod
|
||||
*
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Library General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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 Library General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -2,21 +2,20 @@
|
|||
* Hamlib miniVNA backend - main file
|
||||
* Copyright (c) 2001-2008 by Stephane Fillod
|
||||
*
|
||||
* $Id: miniVNA.c,v 1.1 2008-04-11 18:03:53 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
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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 Library General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -44,7 +43,7 @@ static int miniVNA_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
int retval;
|
||||
|
||||
sprintf_freq(fstr, freq);
|
||||
rig_debug(RIG_DEBUG_TRACE,"%s called: %s %s\n", __FUNCTION__,
|
||||
rig_debug(RIG_DEBUG_TRACE,"%s called: %s %s\n", __FUNCTION__,
|
||||
rig_strvfo(vfo), fstr);
|
||||
|
||||
serial_flush(&rig->state.rigport);
|
||||
|
|
|
@ -2,21 +2,20 @@
|
|||
* Hamlib Rotator backend - PcRotor/WA6UFQ parallel port
|
||||
* Copyright (c) 2001-2008 by Stephane Fillod
|
||||
*
|
||||
* $Id: pcrotor.c,v 1.1 2008-10-31 07:45: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
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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 Library General Public License for more details.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -6,19 +6,20 @@
|
|||
* Copyright (C) 2009 Andrew Nilsson (andrew.nilsson@gmail.com)
|
||||
*
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
|
@ -454,7 +455,7 @@ static int setBPF(RIG *rig, int enable)
|
|||
|
||||
if (nBytes < 0)
|
||||
return -RIG_EIO;
|
||||
|
||||
|
||||
if (nBytes > 2) {
|
||||
|
||||
nBytes = usb_control_msg(udh, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
|
||||
|
@ -470,7 +471,7 @@ static int setBPF(RIG *rig, int enable)
|
|||
i, (double) FilterCrossOver[i] / (1UL << 5));
|
||||
}
|
||||
rig_debug (RIG_DEBUG_TRACE, " BPF Enabled: %d\n",
|
||||
FilterCrossOver[(nBytes / 2) - 1]);
|
||||
FilterCrossOver[(nBytes / 2) - 1]);
|
||||
}
|
||||
return RIG_OK;
|
||||
}
|
||||
|
@ -493,7 +494,7 @@ int si570xxxusb_open(RIG *rig)
|
|||
(char *) &version, sizeof(version), rig->state.rigport.timeout);
|
||||
|
||||
if (ret != 2) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
@ -543,7 +544,7 @@ const char * si570xxxusb_get_info(RIG *rig)
|
|||
(char *) &version, sizeof(version), rig->state.rigport.timeout);
|
||||
|
||||
if (ret != 2) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return NULL;
|
||||
|
@ -561,15 +562,15 @@ static const int HS_DIV_MAP[] = {4,5,6,7,-1,9,-1,11};
|
|||
static int calcDividers(RIG *rig, double f, struct solution* solution)
|
||||
{
|
||||
struct si570xxxusb_priv_data *priv = (struct si570xxxusb_priv_data *)rig->state.priv;
|
||||
struct solution sols[8];
|
||||
struct solution sols[8];
|
||||
int i;
|
||||
int imin;
|
||||
double fmin;
|
||||
double y;
|
||||
|
||||
|
||||
// Count down through the dividers
|
||||
for (i=7;i >= 0;i--) {
|
||||
|
||||
|
||||
if (HS_DIV_MAP[i] > 0) {
|
||||
sols[i].HS_DIV = i;
|
||||
y = (SI570_DCO_HIGH + SI570_DCO_LOW) / (2 * f);
|
||||
|
@ -590,7 +591,7 @@ static int calcDividers(RIG *rig, double f, struct solution* solution)
|
|||
}
|
||||
imin = -1;
|
||||
fmin = 10000000000000000.0;
|
||||
|
||||
|
||||
for (i=0; i < 8; i++) {
|
||||
if ((sols[i].f0 >= SI570_DCO_LOW) && (sols[i].f0 <= SI570_DCO_HIGH)) {
|
||||
if (sols[i].f0 < fmin) {
|
||||
|
@ -599,14 +600,14 @@ static int calcDividers(RIG *rig, double f, struct solution* solution)
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (imin >= 0) {
|
||||
solution->HS_DIV = sols[imin].HS_DIV;
|
||||
solution->N1 = sols[imin].N1;
|
||||
solution->f0 = sols[imin].f0;
|
||||
solution->RFREQ = sols[imin].f0 / priv->osc_freq;
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: solution: HS_DIV = %d, N1 = %d, f0 = %f, RFREQ = %f\n",
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: solution: HS_DIV = %d, N1 = %d, f0 = %f, RFREQ = %f\n",
|
||||
__func__, solution->HS_DIV, solution->N1, solution->f0, solution->RFREQ);
|
||||
|
||||
return 1;
|
||||
|
@ -626,7 +627,7 @@ static void setLongWord(uint32_t value, unsigned char * bytes)
|
|||
bytes[1] = ((value & 0xff00) >> 8) & 0xff;
|
||||
bytes[2] = ((value & 0xff0000) >> 16) & 0xff;
|
||||
bytes[3] = ((value & 0xff000000) >> 24) & 0xff;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int si570xxxusb_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
||||
|
@ -656,7 +657,7 @@ int si570xxxusb_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
RFREQ_frac = round((theSolution.RFREQ - RFREQ_int)*268435456);
|
||||
setLongWord(RFREQ_int, intBuffer);
|
||||
setLongWord(RFREQ_frac, fracBuffer);
|
||||
|
||||
|
||||
buffer[5] = fracBuffer[0];
|
||||
buffer[4] = fracBuffer[1];
|
||||
buffer[3] = fracBuffer[2];
|
||||
|
@ -670,19 +671,19 @@ int si570xxxusb_set_freq(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
ret = usb_control_msg(udh, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_OUT,
|
||||
request, value, index, (char*)buffer, sizeof(buffer), rig->state.rigport.timeout);
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Freq=%.6f MHz, Real=%.6f MHz, buf=%02x%02x%02x%02x%02x%02x\n",
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Freq=%.6f MHz, Real=%.6f MHz, buf=%02x%02x%02x%02x%02x%02x\n",
|
||||
__func__, freq/1e6, f,
|
||||
buffer[0], buffer[1], buffer[2], buffer[3], buffer[4], buffer[5]);
|
||||
|
||||
|
||||
if (!ret) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Result buf=%02x%02x\n",
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Result buf=%02x%02x\n",
|
||||
__func__, buffer[0], buffer[1]);
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -704,7 +705,7 @@ int si570xxxusb_set_freq_by_value(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
|
||||
setLongWord(round(f * 2097152.0), buffer);
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Freq=%.6f MHz, Real=%.6f MHz, buf=%02x%02x%02x%02x\n",
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Freq=%.6f MHz, Real=%.6f MHz, buf=%02x%02x%02x%02x\n",
|
||||
__func__, freq/1e6, f,
|
||||
buffer[0], buffer[1], buffer[2], buffer[3]);
|
||||
|
||||
|
@ -712,13 +713,13 @@ int si570xxxusb_set_freq_by_value(RIG *rig, vfo_t vfo, freq_t freq)
|
|||
request, value, index, (char*)buffer, sizeof(buffer), rig->state.rigport.timeout);
|
||||
|
||||
if (!ret) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
}
|
||||
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Result buf=%02x%02x\n",
|
||||
rig_debug(RIG_DEBUG_TRACE, "%s: Result buf=%02x%02x\n",
|
||||
__func__, buffer[0], buffer[1]);
|
||||
|
||||
return RIG_OK;
|
||||
|
@ -734,7 +735,7 @@ static double calculateFrequency(RIG *rig, const unsigned char * buffer)
|
|||
int N1 = ((buffer[1] & 0xc0 ) >> 6) + ((buffer[0] & 0x1f) * 4);
|
||||
int HS_DIV = (buffer[0] & 0xE0) >> 5;
|
||||
double fout = priv->osc_freq * RFREQ / ((N1 + 1) * HS_DIV_MAP[HS_DIV]);
|
||||
|
||||
|
||||
rig_debug (RIG_DEBUG_VERBOSE,
|
||||
"%s: Registers 7..13: %02x%02x%02x%02x%02x%02x\n",
|
||||
__func__,
|
||||
|
@ -768,7 +769,7 @@ int si570xxxusb_get_freq(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
(char *)buffer, sizeof(buffer), rig->state.rigport.timeout);
|
||||
|
||||
if (ret <= 0) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
@ -791,7 +792,7 @@ int si570xxxusb_get_freq_by_value(RIG *rig, vfo_t vfo, freq_t *freq)
|
|||
(char *)&iFreq, sizeof(iFreq), rig->state.rigport.timeout);
|
||||
|
||||
if (ret != 4) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
@ -814,12 +815,12 @@ int si570xxxusb_set_ptt(RIG * rig, vfo_t vfo, ptt_t ptt)
|
|||
buffer[0] = 0;
|
||||
buffer[1] = 0;
|
||||
buffer[2] = 0;
|
||||
|
||||
|
||||
ret = usb_control_msg(udh, USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_ENDPOINT_IN,
|
||||
REQUEST_SET_PTT, (ptt == RIG_PTT_ON) ? 1 : 0, 0,
|
||||
(char *)buffer, sizeof(buffer), rig->state.rigport.timeout);
|
||||
if (ret < 0) {
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
rig_debug (RIG_DEBUG_ERR, "%s: usb_control_msg failed: %s\n",
|
||||
__func__,
|
||||
usb_strerror ());
|
||||
return -RIG_EIO;
|
||||
|
|
|
@ -2,24 +2,25 @@
|
|||
* SoftRock USB I2C host control program
|
||||
* Copyright (C) 2009 Andrew Nilsson (andrew.nilsson@gmail.com)
|
||||
*
|
||||
* This program 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 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
* This program 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 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program 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 this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
* This program 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 this program; if not, write to the Free Software Foundation, Inc.,
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Based on powerSwitch.c by Christian Starkjohann,
|
||||
* and usbtemp.c by Mathias Dalheimer
|
||||
* of Objective Development Software GmbH (2005)
|
||||
* (see http://www.obdev.at/avrusb)
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _SI570AVRUSB_H
|
||||
|
@ -42,7 +43,7 @@
|
|||
#define REQUEST_SET_FREQ_BY_VALUE 0x32
|
||||
#define REQUEST_SET_XTALL_FREQ 0x33
|
||||
#define REQUEST_SET_STARTUP_FREQ 0x34
|
||||
#define REQUEST_READ_MULTIPLY_LO 0x39
|
||||
#define REQUEST_READ_MULTIPLY_LO 0x39
|
||||
#define REQUEST_READ_FREQUENCY 0x3A
|
||||
#define REQUEST_READ_SMOOTH_TUNE_PPM 0x3B
|
||||
#define REQUEST_READ_STARTUP 0x3C
|
||||
|
|
19
kit/usrp.c
19
kit/usrp.c
|
@ -2,21 +2,20 @@
|
|||
* Hamlib KIT backend - Universal Software Radio Peripheral description
|
||||
* Copyright (c) 2005 by Stephane Fillod
|
||||
*
|
||||
* $Id: usrp.c,v 1.1 2005-11-01 23:12:11 fillods Exp $
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
|
@ -3,19 +3,19 @@
|
|||
* Copyright (c) 2010 by Stephane Fillod
|
||||
*
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
@ -80,7 +80,7 @@ int usrp_open(RIG *rig)
|
|||
|
||||
int which_board = 0;
|
||||
int decim = 125;
|
||||
|
||||
|
||||
priv->urx = usrp_standard_rx::make (which_board, decim, 1, -1, usrp_standard_rx::FPGA_MODE_NORMAL).get();
|
||||
if (priv->urx == 0)
|
||||
return -RIG_EIO;
|
||||
|
|
|
@ -2,21 +2,20 @@
|
|||
* Hamlib KIT backend - Universal Software Radio Peripheral
|
||||
* Copyright (c) 2005 by Stephane Fillod
|
||||
*
|
||||
* $Id: usrp_impl.h,v 1.1 2005-11-01 23:12:11 fillods Exp $
|
||||
*
|
||||
* This library 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 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* This library 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.
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
*/
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue