Wykres commitów

165 Commity (be0f371bdef014cd08b05f861a519f09f84e9d32)

Autor SHA1 Wiadomość Data
Bill Somerville be0f371bde
Remove duplication across GPIO and GPION handling of PTT and DCD 2020-01-26 14:46:21 +00:00
Bill Somerville 6573a283a8
Fixed erroneous messages in rig_close with GPIO(N) PTT or DCD types 2020-01-26 12:50:07 +00:00
Michael Black d853c36fb3
Change get_ant to add another option for icom rigs (and others if needed) 2020-01-21 17:53:12 -06:00
Michael Black b7e8f01701 Fix mingw32 DLL linkage of hl_sleep 2020-01-10 15:58:16 -06:00
Michael Black 6fe29ad942
Fix cppcheck warnings in rig.c 2019-12-24 15:47:06 -06:00
Michael Black ef5d2b7838
Fix cppcheck warnings in rig.c 2019-12-19 10:57:17 -06:00
Michael Black 8ff9a682cc
Add set_powerstat to icom.c and debug msg to rig.c 2019-12-16 10:51:36 -06:00
Michael Black fb73e5abd7
Fix some cppcheck warnings
Fix declarations after statements
Remove some !rig checks...we either don't need them or need them everywhere with a new error code
If you pass a NULL rig you get what you deserve :-)
2019-12-09 17:12:13 -06:00
Michael Black 6c0f101900
Fix cppcheck warnings in rig.c 2019-12-08 22:45:29 -06:00
Michael Black dddf63ca16
Fix cppcheck warnings in rig.c 2019-12-08 22:37:56 -06:00
Michael Black 0ec255366f
Fix gpio file descriptor leak in gpio.c 2019-12-08 16:54:15 -06:00
Michael Black 6bf3b00c4f
astyle all files 2019-11-30 10:19:08 -06:00
Michael Black 73c1ecd165
Change freq & chan struct start/end to avoid colliding with LUA SWIG start/end 2019-08-17 23:20:48 -05:00
Michael Black cf2a551524
Fixup some amplifier code 2019-06-26 06:39:42 -05:00
Michael Black 7e9c566944
Add first cut at amplifier control 2019-06-12 15:52:35 -05:00
Michael Black 25736acd4b
Fix CM108 ptt_bitnum for pttport 2019-05-27 23:18:43 -05:00
C-Elegans d8f010cfa3
Add ability to have rigctld display transverter frequency
Use -C lo_freq=xxxxx to have rigctld add x to your vfo frequency
internally
2018-11-07 11:49:06 -05:00
Jeroen Vreeken bfa948ebc5 Add GPIO and GPION options for DCD.
Also bump abi version since the config params struct needed resizing.
2018-03-29 23:55:25 +02:00
Dieter Röver 1a272f5b0e Fix bug in vfo_comp calculation in Hamlib
I tried to control my "FUNcube Dongle Pro" SDR with Hamlib. At first it
worked fine, but when I tried to correct the frequency divergence with
the vfo_comp parameter, I found a bug in the software.

Example:
$ ./rigctl -m 2513 -C vfo_comp=0.01
  Rig command: F 100000000
  Rig command: f
  Frequency: 102010000

The correction must toke place when setting the frequency and when it
is read back. But one time the correction must work in on direction,
the other time quite opposite.

I found the code in the file rig.c and could see, that both times the
same calculation is used.

The simplest way to correct this is to go to the “rig_get_freq(“
subroutine and change it in the line 1188 from “+=” to “-=” , even that
is mathematically not correct.

Result:
$ ./rigctl -m 2513 -C vfo_comp=0.01
  Rig command: F 100000000
  Rig command: f
  Frequency: 99990000

$ ./rigctl -m 2513 -C vfo_comp=0.000022
  Rig command: F 100000000
  Rig command: f
  Frequency: 99999999

You can see, that the result is quite good for small divergences of
some ppm, but there is still an error for bigger divergences. So I
changed the line 1188 to the form I hope it is the mathematically
correct one:

*freq = (freq_t)(*freq/(1.0+(double)rig->state.vfo_comp));

Result:
$ ./rigctl -m 2513 -C vfo_comp=0.01
  Rig command: F 100000000
  Rig command: f
  Frequency: 100000000

$ ./rigctl -m 2513 -C vfo_comp=0.000022
  Rig command: F 100000000
  Rig command: f
  Frequency: 100000000

Now the result looks good for small and for bigger divergences.

Best regards
Dieter Röver (DK6OV)
2018-02-23 12:34:28 -06:00
Nate Bargmann ab3e6bb5a5 Formatted src/ to final coding guidelines 2017-10-04 21:32:08 -05:00
Jaroslav Skarvada 9693cce0b3 Fix serial_port DCD squelch
Hi,

I had trouble with CTS serial port squelch (on microHAM USB Interface III).
It seems there is a bug in the hamlib code and I think the similar thing
should be done as has been done for the pttport, i.e. if the dcdport is
the same as the rigport, do not reopen it. Otherwise the serial port will
be reset to its default and it will key the radio PTT forever (because
the RTS line is reset on the port reopen). Patch attached

73! Jaroslav, OK2JRQ
2017-09-10 21:04:55 -05:00
Bill Somerville 80a4097aba Add best guess transmit status to rig state structure
This flag can  be used by back  ends that need to  take special action
while the  rig is transmitting e.g.  the FT-747GX and similar  that do
not process CAT commands while transmitting.

The flag  is also used as  a default answer to  rig_get_ptt if nothing
better is available.

Deal with inaccurate CAT query for Rx/Tx on the Yaesu FT-847

This rig  doesn't set the Rx/Tx  status flag when PTT  is asserted via
the PTT pin on the rear PACKET  socket so we need to override which we
can do if we known we have asserted PTT via rig_set_ptt().

Adjust style and fix set PTT defects

Fix a warning from a declaration of a deleted function definition
2017-08-09 21:54:50 -05:00
Nate Bargmann f76b354588 Reformatted src directory 2017-08-09 06:14:31 -05:00
c vw fc6d87addf Do not set DTR/RTS on dedicated PTT port if it is already closed. 2017-05-29 09:37:32 +02:00
Bill Somerville 62fb76019f Fix a state machine defect with repeated PTT reset calls
When the PTT serial  port is not the control port  the intention is to
free the port  when PTT is reset so that  other applications can share
it. This logic  was faulty with attempts to call  port functions on an
unopened port when repeatedly calling the rig_set_ptt API.

Thanks to Christoph van Wullen, DL1YCF, for finding and analyzing this
defect.
2017-02-27 13:02:04 +00:00
Michael Black 199111bcc4 Changed some modules to LGPL in lieu of GPL 2016-10-31 11:05:24 -05:00
Nate Bargmann 234122bb50 Merge pull request #25 from mdblack98/master
Expose version and licensing via function calls
2016-08-31 20:46:18 -05:00
Bill Somerville e44566e8a7 Release the serial port used for PTT when possible
When  using  separate  serial port  for  PTT  via  RTS  pr DTR  it  is
convienent to close  the port when the PTT line  is not asserted. This
allows other applications to share the PTT serial port.

This has been  achieved by ensuring that file descriptor  for the port
is set to -1 when the port  is closed, this then allows the invalid FD
to be used as a PTT surrogate for the rig_get_ptt API when the port is
only being used for PTT.
2016-08-31 22:34:09 +01:00
Michael Black da40941d7f Merge branch 'master' of https://github.com/N0NB/hamlib 2016-08-31 09:22:13 -05:00
Michael Black 15b3e73e7f Exposed constants via function calls 2016-08-31 09:05:47 -05:00
Jeroen Vreeken 3ee7b68d42 Add missing breaks and improve error messages 2016-05-30 14:12:01 +02:00
Jeroen Vreeken 1bf736d650 Add support for GPIO PTT. 2016-05-28 16:00:03 +02:00
Bill Somerville 222ad74de7 Add RIG_PASSBAND_NOCHANGE as possible set_{split_,split_freq_,}mode argument
This change  allows the set_mode  functions to leave the  rig passband
unchanged  if required.  For the  few rigs  that do  not have  explcit
passband width control either current state is read and rewritten or a
"normal" width  is chosen e.g. select  a normal width when  there is a
choice like CW and CW-NARROW.
2016-04-19 21:27:52 +01:00
Bill Somerville 21c346453a Implement combined split VFO frequency and mode setting.
CAT protocols that don't allow  direct addressing of VFOs require that
the  "other" VFO  be queried  or set  via a  select then  get/set then
select back  to original or  swap then  get/set then swap  again. When
both frequncy and  mode need to be set the  sequences can be optimized
if a single funciton is avaiable.

This enhancement adds those single functions rig_set_split_freq_mode()
and  rig_get_split_freq_mode()  with  a default  impelementation  that
calls the individual rig_{get,set}_split_{freq,mode}() functions. Back
ends  can choose  to  implement  an optimized  version  which is  used
instead of the default if present.

Using these  functions when  an optimized implementation  is available
allows the TX VFO's frequency and mode to be set in a single operation
with  only  one   VFO  exchange  or  selection  either   side  of  the
operation.  Many CAT  protocols  are very  efficient  when getting  or
setting both  frequency and mode  and some even  combine the two  in a
single command.

The letters 'K' and 'k' are used for the rigctl short command name for
these functions.
2016-03-23 17:09:26 +00:00
Bill Somerville cf65505511 Honour any error status from serial port calls
The  previous commit  introduced  a regression  that  masks any  error
return from  opening the serial  port used for  PTT when that  port is
different from the CAT serial port.
2015-04-22 22:16:35 +01:00
Bill Somerville de3fccf033 Lower both RTS and DTR on alternate PTT serial port
Before this  change only the  line used for  PTT was being  lowered on
open.   It is  necessary for  platforms  other than  Windows to  avoid
issues with other uses of the line not used for PTT such as interfaces
that wire-or RTS and DTR together or use it for CW or FSK keying. This
is because  platforms other  than Windows  raise both  DTR and  RTS on
serial port opening.

Also changed  code that opens CAT  port to lower  RTS or DTR if  it is
used for PTT. In this case there is no need to lower the other line of
DTR  or RTS  as there  is  already a  config parameter  to control  it
(dtr_state or rts_state). This change is necessary to maintain current
functionality.
2015-04-16 23:59:43 +01:00
Bill Somerville ddb0a12403 Use correct argument type for serial control line functions
The serial port  line control functions take a boolean  argument not a
ptt_t argument.   Changed usage in  rig_open() to use a  explicit zero
instead of RIG_PTT_OFF  value which only coincidentally  happens to be
zero.
2015-04-14 10:04:31 +01:00
Bill Somerville 36b8a972cf Error checks on simulated direct VFO addressing
Many APIs  emulate direct VFO  addressing by using  caps->set_vfo() or
caps->vfo_op(..., RIG_OP_TOGGLE)  to simulate  direct addressing  of a
non-current  VFO. The  mirrored function  call to  revert back  to the
original  current  VFO was  not  checking  for  errors.  This  is  not
unreasonable but it turns out that some rigs can arbitarily fail doing
VFO changes or swaps (e.g. Yaesu FT-450).

I have added checks to these calls but only fail with the error if the
API call being wrapped does not fail itself. This allows the mirroring
VFO  operation to  be  completed,  if possible,  even  if the  wrapped
function could not be completed,  hence as before, making every effort
not to change the rig state unnecessarily.
2014-12-11 17:14:58 +00:00
Bill Somerville 4e2a6adf12 Move serial line control error checks to lower level routines
Moved in preference to introducing errno.h into rig.c.
2014-11-24 00:51:12 +00:00
Bill Somerville 0e0779877d Add more diagnostics and error checks to serial line control 2014-11-24 00:18:48 +00:00
Bill Somerville e1a0e9121c Always clear serial control lines when used for PTT
When a serial  control line (DTR or  RTS) is used for  PTT control the
rig_open()  function clears  the PTT  control line  after opening  the
port. This  is necessary on Linux  because opening the port  sets them
both as part  of the normal RS-232 protocol. The  lines were not being
cleared when the PTT port was the same port as the CAT control port.
2014-11-21 20:58:18 +00:00
Bill Somerville cd44a8d926 Only check for serial control line conflicts if PTT shares CAT port 2014-10-14 12:51:23 +01:00
Bill Somerville 19f131b1b8 Remove redundant RIG_PTT_SERIAL_CAT enum from ptt_t
The Icom IC-7100 back end added this enum instead of using the extant
RIG_PTT_RIG enum.  Also the rig_get_ptt() implementation didn't handle
it and errored out.

Note: RIG_PTT_SERIAL_CAT was added in commit
e9ee671149  - N0NB
2014-10-09 10:25:38 -05:00
Nate Bargmann 0fa8a5656c Quell warning from MinGW on setting CM108 pttbitnum
MinGW was issuing the following warning:

  CC     rig.lo
rig.c: In function 'rig_init':
rig.c:330:36: warning: assignment makes integer from pointer without a cast [enabled by default]
  rs->rigport.parm.cm108.ptt_bitnum = DEFAULT_CM108_PTT_BITNUM;
                                    ^

The constant DEFAULT_CM108_PTT_BITNUM was being defined as a string on
non-linux platforms.  Now defined to an integer on these platforms.  The
actual value may need to be corrected at some point in the future when
CM108 support is completed for those platforms.
2014-02-16 07:33:42 -06:00
mvcstroomer e9ee671149 Add Icom IC-7100 support.
From Martin, CT1IQI:

"Several programs under Linux rely on Hamlib for control. I wanted to
try WSJT-X (digital modes like JT65) and found that my new IC-7100 was
not yet supported, also after having compiled the current git version of
Hamlib and having compiled WSJT-X against that.

So I added a IC-7100 by taking the ic-7200 and 7420 rig files as
example, be it without going (yet) through all of the very many commands
the ic-7100 supports.

This produced the situation where there was communication, e.g. setting
and reading frequencies, but the PTT control did not work.  I debugged
that to actually the lack of a PTT mode in Hamlib that uses serial and
CAT at the same time; currently PTT per 'serial' seems equivalent to
toggling certain RS232 pins but not to any serial command level. So I
added a RIG_PTT_SERIAL_CAT mode for PTT control. Now the wsjt-x program
works nicely with the ic-7100 and controls both frequency and PTT via
the single USB cable."

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2013-10-25 08:40:36 -05:00
Bill Somerville efd1917e98 Fix rig_open not failing when PTT/DCD port is unavailable.
rig_open was giving RIG_DEBUG_ERR messsages if PTT or DCD
port was unavailable but the function was not returning an
error status.

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2013-09-21 21:14:11 -05:00
Bill Somerville ef28e435d8 Patch to allow same serial port for PTT and CAT.
Hi,

patch attached to enable the above which was partially coded but not
quite working.

73
Bill
G4WJS.

>From 9dab3a250dfad7203772df91aadf79d38c108f04 Mon Sep 17 00:00:00 2001
From: Bill Somerville <bill@classdesign.com>
Date: Fri, 6 Sep 2013 01:13:34 +0100
Subject: [PATCH] Fix using same serail port for PTT and CAT

src/rig.c was coded to allow the same serial port for PTT and
CAT but them tried to open the port twice. I have added code
to share the file descriptor in this situation.

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2013-09-18 12:34:20 -05:00
Kamal Mostafa 3466512dbd Fix spelling errors 2012-08-21 19:54:50 -07:00
Stephane Fillod 46033db165 CM108 GPIO PTT: do not break ABI
Move around the ptt_bitnum field in the union of hamlib_port_t.
Increase Hamlib frontend revision.
2012-01-11 23:28:01 +01:00
Andrew Errington 1a77ef9eb9 Initial support for CM108 GPIO contorl of PTT
Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2012-01-11 06:16:51 -06:00