Wykres commitów

674 Commity (bcf08e2f99e8d80e104326bd93a72e20d472fe76)

Autor SHA1 Wiadomość Data
Michael Black 03b39da00b
Fix cppcheck warnings in parallel.c 2019-12-08 22:35:50 -06:00
Michael Black 9aa920a873
Fix cppcheck warnings in parallel.c 2019-12-08 22:35:33 -06:00
Michael Black 8f5ac2d68c
Fix cppcheck warnings in misc.c 2019-12-08 22:29:48 -06:00
Michael Black c90b1dd7c6
Fix cppcheck warnings in microham.c 2019-12-08 22:27:44 -06:00
Michael Black 6ba8f88e2f
Fix cppcheck warnings in network.c 2019-12-08 17:09:08 -06:00
Michael Black 7020aba16d
Fix cppcheck warnings in mem.c 2019-12-08 17:04:08 -06:00
Michael Black 5be9dfe161
Fix cppcheck warnings in locator.c 2019-12-08 16:58:18 -06:00
Michael Black 1011ea16e4
Fix cppcheck warnings in iofunc.c 2019-12-08 16:56:14 -06:00
Michael Black 0ec255366f
Fix gpio file descriptor leak in gpio.c 2019-12-08 16:54:15 -06:00
Michael Black 55e36895bf
Fix cppcheck warnings in extamp.c 2019-12-08 16:36:45 -06:00
Michael Black 314fe20f39
Fix cppcheck warnings in ext.c 2019-12-08 16:35:55 -06:00
Michael Black 67c3b56ccd
Fix cppcheck warnings in event.c 2019-12-08 16:32:13 -06:00
Michael Black 531782d339
Fix cppcheck warnings in debug.c 2019-12-08 16:30:33 -06:00
Michael Black 910d799494
Fix cppcheck warnings in cm108.c 2019-12-08 16:29:39 -06:00
Michael Black 91678ef573
Fix cppcheck warnings in amplifier.c 2019-12-08 16:27:46 -06:00
Michael Black 8e5dc87ffd
Fix cppcheck warnings in amp_conf.c 2019-12-08 16:06:58 -06:00
Michael Black 09aecd5ce9
Fix uninitialize waqrning in parallel.c 2019-12-06 10:20:38 -06:00
Malcolm Herring b12a3e31b3 Fix Icom DCS SQL funnctions
Copied get/set_dcs_code functions to get/set_dcs_sql
Re-mapped all receivers DCS functiosn to sql.
2019-12-05 08:01:59 +00:00
Michael Black 12494c92d5
Add MainA, MainB, SubA, and SubB vfo choices for icom rigs with SATMODE
Clean up debug statements in icom.c
2019-12-02 07:50:05 -06:00
Michael Black dc3f33bc11
Change %z to %d with casts for portability 2019-11-30 13:05:21 -06:00
Michael Black 6bf3b00c4f
astyle all files 2019-11-30 10:19:08 -06:00
Michael Black 72087f1b10
Change all __FUNCTION__ to __func__ 2019-11-30 10:16:28 -06:00
Michael Black 2f4d62709e
Added a dummy snprintf to rig_debug to allow gcc to check format strings
This found tons of errors in rig_debug statements
So this patch cleans up all the files that were producing warnings or errors
This should fix a few segfaults when running with debug turned on
2019-11-30 10:04:31 -06:00
Michael Black 0c72d75b57
Add south_zero option to token.h 2019-11-23 23:10:21 -06:00
Michael Black fa2293be50
Add south_zero option to rotator.c 2019-11-23 23:09:59 -06:00
Michael Black cda5aa1b37
Add south_zero optiont to rot_conf.c 2019-11-23 23:08:27 -06:00
Michael Black dc3ae60e1c
silence some debug in misc.c 2019-11-19 11:32:39 -06:00
Michael Black fab30e07c1
Add some debug for flush 2019-09-09 12:49:11 -05: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 08df457ab2
Restore else clause in network.c -- mistakenly removed 2019-07-31 23:13:35 -05:00
Michael Black 0f404dea20
Remove unneeded debug in network_flush 2019-07-31 12:37:06 -05:00
Michael Black cf2a551524
Fixup some amplifier code 2019-06-26 06:39:42 -05:00
Michael Black b23734fb5b
Fix rig.h for merge 2019-06-12 16:13:56 -05:00
Michael Black 7e9c566944
Add first cut at amplifier control 2019-06-12 15:52:35 -05:00
Johan Ström af7bb1a0fc Backup serial options on open, restore on close
Before altering the serial port settings, make a copy of the settings
and track it by the fd. On serial port close, restore the original
settings for that port.

On Mac OS the Prolific PL2032 kernel driver locks up if closing without
first restoring the options. When this happens, further usage of the port
is impossible until computer is rebooted, which cannot even be done
without a hard power-off.
With this fix, a clean close make sure we can re-open the port again.
2019-06-09 23:22:18 +02:00
Mikael Nousiainen 45a8c5c575 More fixes to many Icom HF rig backends: tuner function, VFO tune op, rig-specific AGC levels, basic set of filters where missing, get/set split, get/set powerstat, make get/set RIT/XIT commands shared functions, add new level for Noise Blanker level, fix RIG_MODE_PKTAM and add missing PKT modes for many rigs, add dual-watch function. Add RIT/XIT functions for TS-480 and TS-890. 2019-06-01 09:51:17 +03:00
Mikael Nousiainen 3dbbe02b78 Add new levels: RFPOWER_METER, COMP_METER, VD_METER and ID_METER, supported at least by most of recent Icom rigs. Add level NOTCHF_RAW for manual notch frequency without specified unit for Icom rigs. Add level MONITOR_GAIN. Add functions DUAL_WATCH and DIVERSITY, supported now by K3/K3S. Fix VOXDELAY level commands for many Icom rigs. Add MONITOR_GAIN level for Icom rigs. Fix and add many K3 commands and add specific rig models for K3S, KX2 and KX3 -- they are very similar to K3, but have slight differences. Extend dump_caps output for rigctl: add complete details of ext levels and frequency ranges. Tests have been performed on IC-7000, IC-756ProIII, IC-7300, IC-7600 and K3. 2019-05-30 09:37:49 +03:00
Michael Black 25736acd4b
Fix CM108 ptt_bitnum for pttport 2019-05-27 23:18:43 -05:00
Michael Black 8dae7db02c astyle debug.c 2019-05-22 08:52:50 -05:00
Michael Black ba712ce904 Fix compiler warning in debug.c 2019-05-22 08:52:14 -05:00
Michael Black 37f87c9b62 astyle parallel.c 2019-05-21 12:45:09 -05:00
Michael Black 151a7059c5 Fix compile warnings in parallel.c 2019-05-21 12:42:39 -05:00
Michael Black 9570d6c669 Add flush to serial open 2019-04-02 08:49:56 -05:00
c vw 9d927d3370 typo, also include NUM_UHTYPES 2019-02-22 10:23:30 +01:00
c vw 00ff1b2832 Included MicroKeyer-III 2019-02-22 10:21:40 +01:00
Michael Black eb9e59211a network.c astyle applied 2019-02-07 11:46:52 -06:00
Michael Black 48c8247a86 Fix network_flush as it was not actually flushing before
This was causing an infinite loop and WSJT-X to lock up using flex6xxx backend
2019-02-07 11:44:33 -06:00
Michael Black 2fa14476f6 Reduce verbosity of rig_strvfo 2019-02-05 09:44:19 -06:00
Michael Black 63570dd791 Improve error handling in network_flush when disconnect happens 2019-02-05 09:40:46 -06:00
Michael Black 8f93173462 Reduce verbosity of rig_strrmode and read_string 2019-02-05 09:31:54 -06:00
Michael Black 8b695bcc03 Add BC2 and NB2 functions for newer kenwoods
Change RIG_SETTING_MAX for 64-bit compatibility
2019-01-01 12:33:22 -06:00
Michael Black 772b1ba2c1 Fix rig_idx2settings for 64-bit sprintf_list functions 2018-12-31 15:39:49 -06:00
Malcolm Herring 2ccf99da04 icr30 updates 2018-12-26 08:25:38 +00:00
Malcolm Herring 1747595f10 ICR6 new functions 2018-12-24 11:00:12 +00:00
Michael Black ce3f6806d0 Fix RIG_MODE structure in src/msic.c 2018-12-23 17:37:27 -05:00
Michael Black 64b35ccbee Add PRXll macro for 64-bit use 2018-12-21 16:46:48 -05:00
Malcolm Herring 31cc85bf57 Add IC-R30 2018-12-21 07:07:41 +00:00
Ekki Plicht (DF4OR) 4e8ba3d6f3 Patch for Icom DCS code handling
* Change magic numbers in icom_set|get_ctcss|dcs_sql|code functions to
constants defined in src/tones.h

* fix a minor bug in icom_get_dcs_code (now ignoring polarity instead of
reporting invalid DCS code when sending reverse pol. DCS code)

* introduce DCS codes to IC-R8600 rig backend

73,
Ekki, DF4OR
2018-12-19 18:09:14 -06:00
Robert Benedict 3724ce87ee New iOptron rotator backend
I have an potential initial release of a backend for iOptron alt-az mounts.
I have tested it and it appears to work well both from the command line and
driven by Gpredict with my iEQ45Pro. I ran the source through astyle and I
think that it's OK. Compiling and testing was done under Unbuntu 18.

   Bob KD8CGH
2018-12-13 15:23:46 -06: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
Nate Bargmann 1ecadcc594 Quell various defined but not used warnings from MinGW
Enclose various variable and function definitions in CPP macro blocks to quell
warnings when cross-compiling for Microsoft Windows using MinGW.
2018-10-27 20:49:20 -05:00
Nate Bargmann ac540c82cc Quell gcc 8.2.0 warning of possible truncation
On Debian Buster gcc ((Debian 8.2.0-8) 8.2.0) was throwing the following
warning:

  CC       network.lo
../../hamlib/src/network.c: In function ‘network_open’:
../../hamlib/src/network.c:245:46: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 139 [-Wformat-truncation=]
         snprintf(msg,sizeof(msg),"connect to %s failed, (trying next interface)",rp->pathname);
                                              ^~
../../hamlib/src/network.c:245:9: note: ‘snprintf’ output between 44 and 555 bytes into a destination of size 150
         snprintf(msg,sizeof(msg),"connect to %s failed, (trying next interface)",rp->pathname);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Raising the size of the msg buffer to 1024 quelled the warning.
2018-10-25 16:58:51 -05:00
Michael Black W9MDB aadd458b99 Ensure read_string value is terminated 2018-10-25 08:37:59 -05:00
phl0 b2b20af07e
Ass support for CM108AH chipsets 2018-09-08 21:57:25 +02:00
HB9EIK bde028485a Update build system for ELAD backend 2018-08-21 06:07:09 -05:00
Nate Bargmann ac83428f7b Merge branch 'master' of https://github.com/JeroenVreeken/Hamlib 2018-08-05 21:11:40 -05:00
andz 75228aa974 Added Meade LX200 Protocol to Rotors
* Added new rotor module (18) for Meade telescope rotors
* Implemented all needed rotor functions
* Added README.md

* Tested with DS-2000 Rotor with Autostar 494 and 506 serial cable
* Tested on Linux (Debian) with rotctl and gpredict
2018-07-17 08:57:05 -05:00
Jeroen Vreeken 0057b2f8b1 GPIO working after debugging 2018-06-30 16:09:56 +02:00
Jeroen Vreeken 9c7ce6eacb Merge branch 'master' of github.com:Hamlib/Hamlib 2018-05-06 00:12:23 +02:00
Michael Black W9MDB 1e883d0195 Fix compile warnings for src 2018-04-22 18:38:16 -05:00
Michael Black W9MDB 2dae3ae8fe Reverse bad patch for Android 2018-04-15 16:10:27 -05:00
Michael Black W9MDB 6c369109e6 Add debug time stamps via -Z and --debug-time-stamps 2018-04-15 15:06:52 -05:00
Michael Black W9MDB 841acdf011 Improve network connect error message 2018-04-14 10:46:13 -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
Mikael Nousiainen 3cdbad1064 TM-D710: Rewrite the whole backend, since most of it was not working anyway. TM-D710 protocol is significantly different from TM-D700 or the TH handheld ones. Most features work, but the control protocol is quite limited: for example, it is not possible to change the selected frequency band of a VFO. Additionally, selecting MEM VFO uses the previously selected band (VFOA/VFOB), since there are no separate MEM VFO definitions for A/B bands. Added FMN mode to string constants, so that it can be used with the set_mode command. 2018-03-15 09:33:01 +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
Max Lock 5b0a2d851d Addition of support for CM108B PTT 2018-02-19 06:42:08 -06:00
Nate Bargmann ab3e6bb5a5 Formatted src/ to final coding guidelines 2017-10-04 21:32:08 -05:00
c vw 028732bdfd Changes to make microHam support compile under MinGW 2017-09-21 17:55:21 +02: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
c vw d008ca6e5d Microham support. Use "uh-rig" for rig_pathname to talk to the
microHam device for CAT. If you want hardware PTT via the microham
device, use DTR method and ptt_pathname "uh-ptt".
2017-09-10 19:56:59 -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
Michael Black W9MDB 21a6909a9a Add Barrett 2050 backend 2017-07-04 12:50:23 -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
Jeroen Vreeken 70127b6b9c Add Dorji DRA818 modules (VHF and UHF variants)
Also works with NiceRF SA818 modules
2017-02-22 12:14:50 +01:00
Jae Stutzman dfd969acd3 Use Windows ioctlsocket to avoid buffer overrun 2017-01-26 19:42:00 -06:00
Jae Stutzman 230430c4e9 Clears potential garbage data in read buffer prior to command being sent 2017-01-25 20:45:24 -06:00
Michael Tatarinov 7848d49a53 Fix typos. 2016-12-18 08:17:54 +04: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
Bill Somerville 4e53f99e51 Adjust rig_list_foreach to allow use for unregistering
This patch changes rig_list_foreach such  that the called function may
call rig_unregister without having to access freed memory. This avoids
a valgrind  MemCheck and makes  it possible  to clean up  teh rig_list
database.
2016-06-10 01:13:57 +01:00
Nate Bargmann bf2b5c80ba Merge branch 'master' of http://video.vreeken.net/~pe1rxq/hamlib-code 2016-06-05 11:43:53 -05:00
Michael Black W9MDB\n d5b3c049af Fixed SCAN_STOP for all rigs and implmented it plus SCOPE for ic7300 2016-06-02 23:08:22 -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
Nate Bargmann 0db862e560 Apply Linux C Style to parallel.c 2016-02-21 15:06:16 -06:00
Nate Bargmann 6a3214fd43 Apply Linux C style
Update files modified to support libusb-1.0.
2016-02-21 14:56:44 -06:00
Nate Bargmann 07353e1f80 Fix compiler warnings with x86_64-w64-mingw32-gcc
Compiling for Windows 64 resulted in several warnings.  Correct them by
using proper Windows function calls rather than casts.
2016-02-20 11:44:19 -06:00
Nate Bargmann 9ec98e0fe3 Check for libusb-1.0/libusb.h
Some distributions--Debian and Alpine tested--put libusb.h under the
libusb-1.0 directory.  Test for its presence and if found define
HAVE_LIBUSB_1_0_LIBUSB_H.  Also test for HAVE_LIBUSB or
HAVE_LIBUSB_1_0_LIBUSB_H and conditionally include the correct header
file in the sources.
2016-02-15 08:10:07 -06:00
Stephane Fillod 8d7697c3bd Migrating from libusb-0.1 to libusb-1.0 2016-02-14 18:02:26 +01:00
Michael Black 61a0e77110 Fix port->pathname checks
Was always true since it's statically allocated

RRR
Mike W9MDB
2016-02-09 10:59:09 -06:00
Bill Somerville fca48348a6 Add missing configuration getters 2016-02-04 09:09:35 -06:00
Dario Ventura 46fe57190e New Prosistel rotor backend from IZ7CRX
This is patch adding prosistel rotator backend.
Simply reading and setting azimuth for now.

73,
Dario Iz7crx
2015-12-31 08:25:14 -06:00
Bill Somerville aebe52a45e Add a new command line option '--no-restore-ai' ('-n') to rigctl
As Hamlib now restores the rig auto information state (AI) on exit
there is now a need to disable that functionality so that rigctl can
be used to set/reset AI mode on the rig explicitly.

A new  public API  function 'rig_no_restore_ai()'  is also  added that
allows any  client to  disable this auto  AI restore  functionality if
required. Most  clients should do nothing  as restoring AI state  is a
good thing.
2015-12-04 00:22:01 +00:00
Bill Somerville ca7cbd89f4 Fix compiler warnings 2015-11-27 19:17:47 +00:00
Bill Somerville 181a3e9697 Proper IPv6 and dual stack networking
This means that rigctl & rigctld  now work with default arguments on a
modern Windows  machine with dual  stack and localhost being  [::1] as
the first interface returned by getaddrinfo().

Try all the interfaces return by DNS lookups to establish a connection
or listening  port. Handle  Windows network  errors correctly  so that
meaningful messages are printed.

The rigctl program now accepts  IPv6 numeric addresses in the portname
field like [<addr>}:<port> for example  the IPv6 loopback on port 4531
would be [::1]:4531.
2015-11-27 13:47:48 +00:00
Nate Bargmann ffe3126a85 Make cnctrk visible to rotctl
After all these years one would think I would remember to read the
directions for all the steps involved.  Ummm, nope!

cnctrk is now visible to rotctl.
2015-08-22 11:21:23 -05:00
Michael Black e780f2dc66 Flush the debug stream
Testing under JTSDK MSYS environment debug info was not being seen while
running rigctl -vvvv

Adding a flush to the debug stream fixes it.

Mike W9MDB
2015-05-07 17:13:44 -05: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 143f305b49 Further clarification in the implementation of kenwood_transaction()
Buffer size is  now an input parameter only as  the return data length
is  implicit since  a null  terminated C  string is  returned.  Better
precondition checks are impelmented.
2015-02-16 12:46:35 +00:00
Stephane Fillod 80f921954b New IC-M700PRO backend
Backend for the ICOM IC-M700PRO marine transceiver.
2015-01-21 23:57:08 +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 82b8649030 Revert read_string() to partial results are a success status
The read_string() function was changed to return a -RIG_ETIMEOUT error
when timing out after having read  some characters. This caused a back
end to fail because it was  using a read_string() with an invalid stop
character  and relying  on the  timed out  read_string() to  fetch the
data. This  patch reverts to  the prior  behavior of returning  a null
terminated buffer and  read bytes count if at least  one byte has been
read.
2014-12-10 01:25:33 +00:00
Bill Somerville 849f1e1bf8 Fix serial i/o on Windows.
Fix bytes read count accumulation in Windows serial I/O.

read_string  from  communications  port   doesn't  handle  timeout  on
anything but the first character read.

Honour VMIN tty parameter correctly.
2014-11-30 11:22: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
Nate Bargmann 870da0a422 Merge branch 'serial-contro-line-error-fix'
of git://git.code.sf.net/u/bsomervi/hamlib
2014-10-18 07:37:20 -05:00
Bill Somerville cd44a8d926 Only check for serial control line conflicts if PTT shares CAT port 2014-10-14 12:51:23 +01:00
Nate Bargmann c38dfb97aa Quell compiler warning--missing parens
Got too quick on the trigger on the previous commit.  Added compiler
requested parentheses around AND test for previous commit.
2014-10-12 09:17:31 -05:00
Veijo Arponen 89ebe6bc84 Add support for DMK Engineering URI
I have a problem with the CM119A GPIO. The PTT line of the DMK
Engineering URI was not activated by the hamlib  when using fldigi or
rigctl.

I fiddled with the source code and managed to edit the code in cm108.c
to get the PTT-line activate on my URI-box.
A successful rigctl command is:

rigctl -p /dev/hidraw0 -C ptt_pathname=/dev/hidraw0,ptt_type=CM108,ptt_bitnum=2
Attached is the modified source code file and a patch in 'git diff'
format.

The version of origin is 1.2.15.3.

73 de Veijo OH3NFC

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2014-10-12 09:05:25 -05: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
Nate Bargmann 6ea09a138a Clean up build system, fix test programs
Clean up various left over commented lines from dlopen to single
libhamlib transition.  Remove unneeded configure variables.

Correct minor inconsistencies in Makefile.am files.

Define a new variable, READLINE_LIBS, so that only programs that offer
Readline support are linked against it.

Fix various compilation warnings and errors in test files revealed with
'make check' on MinGW.

Define rig and rotor backends to (mostly) be built in alphabetical
order.
2013-12-10 20:14:22 -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
Nate Bargmann 9cd11ebe27 Force libhamlib to be relinked when a backend is updated
Add the rig and rotor backends to the list of dependencies for
libhamlib.la so that updating a given backend will force libhamlib.la to
be relinked as well.  Thanks to Bill Sommerville, G4WJS, for reporting
this.

Removed obsolete references and variables related to LTDL.
2013-09-26 21:57:04 -05:00
Nate Bargmann 1f0590dfbe Fix conditional build of winradio backend
With the new registration code set the HAVE_WINRADIO preprocessor
conditional if the winradio backend is to be built and test this
conditional in src/register.c whether to build winradio support.
2013-09-22 20:45:49 -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
Nate Bargmann 1bac099494 Remove remaining references to rpc
As rpc backends were removed some time ago, remove all remaining
documentation and other references to rpc.
2013-09-19 15:24:52 -05:00
Ladislav Vaiz f632695131 Android build updates for monolithic build
Android is now built as a static library.

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2013-09-19 07:25:08 -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
Nate Bargmann 332a04b7cd Clean up backend Makefile.am files
Moved all backend *.h files into the SOURCES primary as Automake
documentation states all source file types should be listed.  This
causes Automake to include *.h files in rebuild rules for the targets.

Removed the '-DIN_HAMLIB' assignment from the CFLAGS primary in each
backend and assigned it to AM_CPPFLAGS in configure.ac.  The effect is
the same and it simplifies the backend Makefile.am files.

Removed all commented lines.
2013-09-16 21:51:39 -05:00
Nate Bargmann 36f5f4cf6a Revert to previous handling of getaddrinfo()
Use the system gettaddrinfo function when possible as before.  Tested on
GNU, Cygwin, MinGW on Linux, and MinGW on Windows.  Under MinGW the
replacement getaddrinfo is used.  Perhaps this is an area for
investigation to be certain MinGW really doesn't supply getaddrinfo.
This reverts some of the patches from Remi Chateauneu in commit
60019c9.  This fixes build issues encountered building the Windows
binary daily snapshots.

Enabled static library build by default at configure time.

Fixed pthread library linking for the ars backend on MinGW.
2013-09-15 19:47:49 -05:00
Remi Chateauneu 60019c9444 Monolitic libraries. 2013-09-08 14:56:28 +01:00
Nate Bargmann b9ff04abf0 Fix W2k 'freeaddrinfo' error
Trying to run the pthread enabled binaries on W2k resulted in an error
dialog with the text, "The procedure entry point freeaddrinfo could not be
located in ws2_32.dll".  A Microsoft support page
(http://support.microsoft.com/kb/955045) hints that when 'ws2tcpip.h' is
included that 'wspiapi.h' should be included as well.  Since MinGw
includes both files, this patch corrects the runtime error on W2k
2013-05-18 07:31:40 -05:00
Nate Bargmann df64a49428 Specify libhamlib.la dependencies 2013-05-09 22:11:01 -05:00
Nate Bargmann 245ab86441 Quell compiler warnings on Cygwin
Quell mostly harmless warnings from the older GCC installed in Cygwin.
Produces a quiet compilation.
2013-05-09 22:06:39 -05:00
Stephane Fillod 212f2c97b2 serial: round up VTIME
Round up the VTIME setting in case the rig timeout is less than 100 ms,
which would make the termios timeout infinite.
2013-05-07 07:59:49 +02:00
Stephane Fillod 6c370dd36d serial: fix blocking call on ports, esp. on win32
Summary from Lada:

On Win7, good testing command is:
C:\hamlib> rigctl -vvvvv -m 214 -r COM1 -s 4800 -C data_bits=8 -C
stop_bits=2 -C serial_handshake=Hardware -C timeout=1000

Behavior of this command differs on COM port. On hardware ports
(onboard, PCI NetMos, all probably 16550-compatible) rigctl freeze in
data write. It is correct, no hardware handshake is estabilished. On
FT232 USB port initialization failed by timeout. I think it is not
correct but this is not subject of this e-mail.

Looked into hamlib source and found, that timeout argument is no
longer handled. SetCommTimeouts takes timeout from c_cc[VTIME] which
is not filled.

Signed-off-by: Ladislav Vaiz <spam@nagano.cz>
2013-05-06 23:47:56 +02:00
Ladislav Vaiz 6d4295af2c Add Android build support
Android makefile fragments are distributed as extra distribution files
by the GNU build system but are otherwise ignored.  The Android build
support is independent and does not rely on the GNU build system.

See android/README.android for more info.

Signed-off-by: Nate Bargmann <n0nb@n0nb.us>
2013-04-26 22:31:56 -05:00
Nate Bargmann 3f2bc78485 misc.c: Place RIG_FUNC_RIT in numeric order
Debugging made more sense with RIG_FUNC_RIT in numeric order in
func_str.func members.
2013-01-31 17:58:21 -06:00