hamlib-developer Mailing List for Ham Radio Control Libraries (Page 656)
Library to control radio transceivers and receivers
Brought to you by:
n0nb
You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
(24) |
Oct
(16) |
Nov
(8) |
Dec
(9) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(49) |
Feb
(17) |
Mar
(3) |
Apr
(7) |
May
(3) |
Jun
(1) |
Jul
(2) |
Aug
(8) |
Sep
(18) |
Oct
(15) |
Nov
(15) |
Dec
(26) |
| 2002 |
Jan
(46) |
Feb
(14) |
Mar
(44) |
Apr
(3) |
May
(6) |
Jun
(47) |
Jul
(40) |
Aug
(14) |
Sep
(59) |
Oct
(39) |
Nov
(58) |
Dec
(76) |
| 2003 |
Jan
(82) |
Feb
(66) |
Mar
(37) |
Apr
(56) |
May
(34) |
Jun
(19) |
Jul
(23) |
Aug
(55) |
Sep
(31) |
Oct
(40) |
Nov
(21) |
Dec
(60) |
| 2004 |
Jan
(57) |
Feb
(110) |
Mar
(41) |
Apr
(17) |
May
(18) |
Jun
(19) |
Jul
(18) |
Aug
(5) |
Sep
(31) |
Oct
(16) |
Nov
(26) |
Dec
(36) |
| 2005 |
Jan
(69) |
Feb
(26) |
Mar
(62) |
Apr
(120) |
May
(31) |
Jun
(47) |
Jul
(7) |
Aug
(27) |
Sep
(4) |
Oct
(9) |
Nov
(26) |
Dec
(21) |
| 2006 |
Jan
(13) |
Feb
(26) |
Mar
(38) |
Apr
(31) |
May
(17) |
Jun
(6) |
Jul
(23) |
Aug
(6) |
Sep
(38) |
Oct
(87) |
Nov
(49) |
Dec
(49) |
| 2007 |
Jan
(52) |
Feb
(19) |
Mar
(20) |
Apr
(5) |
May
(25) |
Jun
(15) |
Jul
(49) |
Aug
(43) |
Sep
(21) |
Oct
(21) |
Nov
(27) |
Dec
(10) |
| 2008 |
Jan
(23) |
Feb
(20) |
Mar
(25) |
Apr
(39) |
May
(36) |
Jun
(17) |
Jul
(10) |
Aug
(18) |
Sep
(44) |
Oct
(88) |
Nov
(60) |
Dec
(65) |
| 2009 |
Jan
(99) |
Feb
(91) |
Mar
(49) |
Apr
(34) |
May
(52) |
Jun
(9) |
Jul
(11) |
Aug
(4) |
Sep
(41) |
Oct
(16) |
Nov
(51) |
Dec
(71) |
| 2010 |
Jan
(43) |
Feb
(79) |
Mar
(59) |
Apr
(55) |
May
(51) |
Jun
(38) |
Jul
(38) |
Aug
(61) |
Sep
(53) |
Oct
(46) |
Nov
(43) |
Dec
(41) |
| 2011 |
Jan
(74) |
Feb
(96) |
Mar
(41) |
Apr
(42) |
May
(61) |
Jun
(66) |
Jul
(50) |
Aug
(40) |
Sep
(11) |
Oct
(30) |
Nov
(21) |
Dec
(45) |
| 2012 |
Jan
(59) |
Feb
(4) |
Mar
(52) |
Apr
(19) |
May
(62) |
Jun
(46) |
Jul
(61) |
Aug
(18) |
Sep
(21) |
Oct
(25) |
Nov
(66) |
Dec
(41) |
| 2013 |
Jan
(36) |
Feb
(64) |
Mar
(37) |
Apr
(24) |
May
(74) |
Jun
(40) |
Jul
(43) |
Aug
(34) |
Sep
(65) |
Oct
(52) |
Nov
(23) |
Dec
(20) |
| 2014 |
Jan
(18) |
Feb
(29) |
Mar
(13) |
Apr
(41) |
May
(10) |
Jun
(12) |
Jul
(16) |
Aug
(25) |
Sep
(20) |
Oct
(56) |
Nov
(43) |
Dec
(61) |
| 2015 |
Jan
(36) |
Feb
(38) |
Mar
(92) |
Apr
(42) |
May
(13) |
Jun
(19) |
Jul
(18) |
Aug
(22) |
Sep
(21) |
Oct
(2) |
Nov
(49) |
Dec
(22) |
| 2016 |
Jan
(55) |
Feb
(144) |
Mar
(40) |
Apr
(98) |
May
(61) |
Jun
(36) |
Jul
(16) |
Aug
(33) |
Sep
(59) |
Oct
(16) |
Nov
(37) |
Dec
(32) |
| 2017 |
Jan
(70) |
Feb
(71) |
Mar
(14) |
Apr
(43) |
May
(31) |
Jun
(24) |
Jul
(38) |
Aug
(54) |
Sep
(24) |
Oct
(15) |
Nov
(26) |
Dec
(27) |
| 2018 |
Jan
(22) |
Feb
(24) |
Mar
(109) |
Apr
(12) |
May
(46) |
Jun
(23) |
Jul
(39) |
Aug
(34) |
Sep
(22) |
Oct
(43) |
Nov
(26) |
Dec
(157) |
| 2019 |
Jan
(102) |
Feb
(51) |
Mar
(63) |
Apr
(60) |
May
(91) |
Jun
(55) |
Jul
(27) |
Aug
(76) |
Sep
(52) |
Oct
(95) |
Nov
(67) |
Dec
(204) |
| 2020 |
Jan
(311) |
Feb
(148) |
Mar
(230) |
Apr
(122) |
May
(204) |
Jun
(204) |
Jul
(114) |
Aug
(36) |
Sep
(120) |
Oct
(186) |
Nov
(60) |
Dec
(151) |
| 2021 |
Jan
(182) |
Feb
(171) |
Mar
(202) |
Apr
(153) |
May
(110) |
Jun
(50) |
Jul
(58) |
Aug
(142) |
Sep
(112) |
Oct
(120) |
Nov
(97) |
Dec
(125) |
| 2022 |
Jan
(175) |
Feb
(147) |
Mar
(54) |
Apr
(73) |
May
(127) |
Jun
(95) |
Jul
(88) |
Aug
(85) |
Sep
(38) |
Oct
(40) |
Nov
(116) |
Dec
(159) |
| 2023 |
Jan
(175) |
Feb
(55) |
Mar
(83) |
Apr
(70) |
May
(165) |
Jun
(79) |
Jul
(123) |
Aug
(90) |
Sep
(40) |
Oct
(95) |
Nov
(84) |
Dec
(88) |
| 2024 |
Jan
(105) |
Feb
(60) |
Mar
(52) |
Apr
(43) |
May
(56) |
Jun
(59) |
Jul
(53) |
Aug
(47) |
Sep
(62) |
Oct
(36) |
Nov
(45) |
Dec
(100) |
| 2025 |
Jan
(52) |
Feb
(45) |
Mar
(30) |
Apr
(97) |
May
(72) |
Jun
(83) |
Jul
(124) |
Aug
(83) |
Sep
(84) |
Oct
(20) |
Nov
(49) |
Dec
(53) |
|
From: Frank S. <vk...@ix...> - 2000-09-13 22:50:26
|
Hi, I was thinking of adding a new directory to the cvs tree eg: "generic" or "frontend" to hold the generic front end code. I will place it at the same level as "common". ie: just under "hamlib". Comments ?? /Frank -- Frank Singleton VK3FCS Email: victor kilo three foxtrot charlie sierra at ix dot netcom dot com |
|
From: Frank S. <vk...@ix...> - 2000-09-13 02:33:15
|
Hi,
Welcome aboard, its no fun sending emails to myself ;-)
See comments below...
/Frank
Stephane Fillod wrote:
>
> Okay, I started to code a generic rig API layer (kinf of frontend),
> based on Frank's code and ideas in the air. This will lead to a generic
> framework, making it even easier to develop rig backend seamlessly.
> However, I have a few questions:
>
> 1) Should we assume any rig has no more than 2 VFOs ? Do you have examples?
**
should get from hardware capability structure -- see below
yaesu have at least 3 in some cases
**
Rig lib should return actual and symbolic info.
eg: no. of VFO's and their symbolic
meaning. ie: generic VFO-0 is Main or VFO-A or Sub VFO on rig xxx
eg: 3rd RX is sattelite RX ?
>
> 2) Is a rig able to notify asynchronously the "host" any event (like a key has been depressed on the panel, main VFO freq changed, etc.) ? Examples?
**
Hmmm, rig callbacks, lets start an api for it anyway - event based,
hmmm.. rig deamon (server) send a IP packet to client for example
I am not aware of yaesu doing it, but we should code for it.
>
> 3) Should cmd_set_freq_main_vfo_hz() set both freq and mode or should we split in two separate functions?
**
Some rigs may behave differently, lets cover both !!
>
> Here is a non-exhaustive list of things IMO to keep in mind when
> developping the hamlib library.
>
> Plan:
> ----
> o develop the library as a shared/static library * yes
> o portable (not only Linux, but UN*X, Win32 using cygwin,etc. -> autoconf?) - * yes, gtk for GUI
> o generic (any rig made, any model) - yes
> o wrappable (Java, perl module, Python module, etc.) - * yes java wrappers and some jni stuff ok
> o support serial ports, IrDA ports, USB ports, network ports (w/ a daemon) - * yes, and client / server also
> o thread safe (reentrant) would be a must - * yep, posix threads here we come !!
> o support preference file (eg. /etc/hamlibrc, ~/.hamlibrc ) - * yes, read from /etc then home
> o written in C (C++ would have been more appropriate, but C is okay) - * i kind of like C and java :-)
> o support more than one rig per application (ie. generic code) - * ok
> o support more than one rig per serial port (ie. Icoms) - *ok
> o handle serial retransmission and timeouts would be nice - * yep, threaded read/writes are good
> o i18n support if applicable - ok
> o software compensation for the actual radio oscillator frequency errors
> o if avail., support events sent by the rig (eg. main freq has been changed,..) - event notifaction
> o maybe add some misc functions like PTT signaling (through serial/parallel..)
> o ...
****
A few more functions / addons
- software scanning (and huristics)
- s/w squelch
- real time spectral analysis and digital modes ( I have written some
working code for this)
it does 40 frames / sec and no load, really cool to see time and
spectral info !!
I have based it on generic data engine and plugins !! output also to
small gtk window.
ie: DSP API
- doppler compensation in tracking mode
- ie: let real time signal analysis drive freq/modes/etc....
- software controlled hopping (poor mans GSM frequency hopping)
also, must output hopping sequence to other rig to be useful
- networked rigs, provides realtime (global) spectral analysis to
find (a common) quiet part of the band for a qso between 2 parties
-
>
> -> Christmas is in sight, time for whishlists!
>
> Good inspiration:
> ----------------
> o SANE, with frontend/backend scheme, dynamic loading, autoconf, etc.
> o struct net_device (Linux kernel) for the void *priv idea
> o any rigctrl sources out there ?
>
> Capabilities: - ** this is definitely the challenge
> ------------
> We have to find a way to code capabilities in the hamlib in order
> to let the application know what this rig is able to do (before
> attempting to do it and crash :).
> I think some features can be coded using bit fields and masking.
>
> Maybe we can distinguish between 3 states :
> - Don't have this feature,
> - Have it,
> - Have it and can control (r/w) it remotly using the backend in hamlib
>
> o freq ranges supported: rx/mode?, tx/modes/power ? ->How to code this??
> o number of VFO, operations (set VFO separately, VFO A=B, switch, ..)
> o freq granularity (resolution), tuning steps
> o SCAN functions (start, stop, ..)
> o Split (cross band, duplex, ...)
> o RIT (+- KHz)
> o Memory scheme, what is stored in, quantity, call channels, scan edges
> o ATT, P.AMP, AGC, NB, TONE, TSQL, COMP, VOX, BK-IN, ...
> o Tuner control (internal, external, can control)
> o Meter indication: Squelch condition, S-meter level, ALC, SWR
> o Number of antennas (which band ?) and selection
> o available "set mode" items (ie. rig setup), and provide a way to modify them
> o DSP ? - one of my favorite areas, see comments above
>
> any other ideas?
Many of above fall into a general "rig function capability structure"
Could be internal data structures populated inside each lib,
and requested by the app.
Note generic <-> symbolic transforms
any app generic (front) rig lib (backend)
------- ------- -------
----------->
get caps for
rig xxxx
get caps
--------------> { internal data structure }
caps struct populated
<--------------
apps knows rigs
capability. now
do something useful.
Also frontend can request 2 modes of commands
- acknowledged / unacknowledged mode
unack
------
eg:
set freq to xxx
--------------->
returns -1 if error
assume ok otherwise
OR
acked mode
set freq to xxx
--------------->
set freq
------------------------->
get freq
------------------------->
freq retuerned
<-------------------------
compare requested
with actual
result
<--------------
I think we are forced to bite the bullet so to speak,
and start some rig capabilities stuff. I have only
scratched the surface with rig.h and rig_caps structure.
Also, each backend must provide a rigxxx_read and rigxxx_write etc..
inside serial.c.
frontend only sees read/write
Also, returned data must be uniform accross all rigs.
eg: TX power in dbm, not 0-15 units on yaesu and 0 - 23 units on icom
.... more to come I am sure...
>
> --
> Stephane
> _______________________________________________
> Hamlib-developer mailing list
> Ham...@li...
> http://lists.sourceforge.net/mailman/listinfo/hamlib-developer
Cheers / Frank..
--
Frank Singleton VK3FCS
Email: victor kilo three foxtrot charlie sierra at ix dot netcom dot com
|
|
From: Stephane F. <f4...@fr...> - 2000-09-12 22:47:03
|
Okay, I started to code a generic rig API layer (kinf of frontend), based on Frank's code and ideas in the air. This will lead to a generic framework, making it even easier to develop rig backend seamlessly. However, I have a few questions: 1) Should we assume any rig has no more than 2 VFOs ? Do you have examples? 2) Is a rig able to notify asynchronously the "host" any event (like a key has been depressed on the panel, main VFO freq changed, etc.) ? Examples? 3) Should cmd_set_freq_main_vfo_hz() set both freq and mode or should we split in two separate functions? Here is a non-exhaustive list of things IMO to keep in mind when developping the hamlib library. Plan: ---- o develop the library as a shared/static library o portable (not only Linux, but UN*X, Win32 using cygwin,etc. -> autoconf?) o generic (any rig made, any model) o wrappable (Java, perl module, Python module, etc.) o support serial ports, IrDA ports, USB ports, network ports (w/ a daemon) o thread safe (reentrant) would be a must o support preference file (eg. /etc/hamlibrc, ~/.hamlibrc ) o written in C (C++ would have been more appropriate, but C is okay) o support more than one rig per application (ie. generic code) o support more than one rig per serial port (ie. Icoms) o handle serial retransmission and timeouts would be nice o i18n support if applicable o software compensation for the actual radio oscillator frequency errors o if avail., support events sent by the rig (eg. main freq has been changed,..) o maybe add some misc functions like PTT signaling (through serial/parallel..) o ... -> Christmas is in sight, time for whishlists! Good inspiration: ---------------- o SANE, with frontend/backend scheme, dynamic loading, autoconf, etc. o struct net_device (Linux kernel) for the void *priv idea o any rigctrl sources out there ? Capabilities: ------------ We have to find a way to code capabilities in the hamlib in order to let the application know what this rig is able to do (before attempting to do it and crash :). I think some features can be coded using bit fields and masking. Maybe we can distinguish between 3 states : - Don't have this feature, - Have it, - Have it and can control (r/w) it remotly using the backend in hamlib o freq ranges supported: rx/mode?, tx/modes/power ? ->How to code this?? o number of VFO, operations (set VFO separately, VFO A=B, switch, ..) o freq granularity (resolution), tuning steps o SCAN functions (start, stop, ..) o Split (cross band, duplex, ...) o RIT (+- KHz) o Memory scheme, what is stored in, quantity, call channels, scan edges o ATT, P.AMP, AGC, NB, TONE, TSQL, COMP, VOX, BK-IN, ... o Tuner control (internal, external, can control) o Meter indication: Squelch condition, S-meter level, ALC, SWR o Number of antennas (which band ?) and selection o available "set mode" items (ie. rig setup), and provide a way to modify them o DSP ? any other ideas? -- Stephane |
|
From: Frank S. <vk...@ix...> - 2000-08-20 18:39:55
|
Hi,
Well here is the first release of the hamlib libraries.
There is a lot of work to do, but I do have API's
implemeneted for FT747GX and FT847 radios mostly
implemented. :-)
Examples of test programs to say connect to a radio
and do something usefuly (like change frequency for
example) are in the test directory for each radio
type.
At the moment the API's are described in each
radio's header file.
eg: ft747.h of ft847.h
Basically you connect to a rig, issue commands, and
then diconnect.
A C code snippet to connect to a FT847 and set
the frequnecy of the main VFO to 439,700,000 Hz ,
using FM as the required mode, would look something
like this.
<snip>
int fd;
fd = rig_open(SERIAL_PORT);
printf("port %s opened ok \n",SERIAL_PORT);
cmd_set_cat_on(fd); /* cat on */
cmd_set_freq_main_vfo_hz(fd,439700000,MODE_FM);
cmd_set_cat_off(fd); /* cat off */
rig_close(fd);
printf("port %s closed ok \n",SERIAL_PORT);
<snip>
There are NO GUI's yet, but I mainly wanted to
get the libraries implemented, so people can
start using them for implementing cool stuff.
Perhaps I will even add a GUI section as well if
I get enough volunteers.
If you are interested in joining the crew, let me
know and I can arrange that.
It mainly helps if you have some type of radio and
a copy of the control docs (eg: User Manuals).
It is hoped that the API's get documented well enough
for developers to just use this library. In fact I have
made function wrappers for some of the raw "CAT" calls
that make life a bit easier.
eg: You dont have to worry about BCD conversion and
packing data according to the Radio's manual.
Most command can use specify the freq in Hz and mode
like MODE_FM, MODE_CW etc..
cmd_set_freq_main_vfo_hz(fd,439700000,MODE_FM);
Any common routines should eventually live in
the "common" directory.
Anyway, take a look around. No fancy web pages yet
(volunteers ??) but the core libraries are being
developed all the time and provide useful
functionality.
If you want to help me out, contact me at the
"Open Discussion Forum" news area at
http://sourceforge.net/projects/hamlib/
-- Frank..
--
Frank Singleton VK3FCS
Email: victor kilo three foxtrot charlie sierra at ix dot netcom dot com
|