kopia lustrzana https://github.com/Hamlib/Hamlib
182 wiersze
3.7 KiB
Plaintext
182 wiersze
3.7 KiB
Plaintext
[FIXME: this doc is out dated! --SF 03/20/01]
|
|
|
|
hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
|
|
|
|
Take a look at http://sourceforge.net/projects/hamlib/
|
|
Here you will find a mail list, and the latest CVS releases.
|
|
|
|
|
|
See README for frontend/backend outline.
|
|
|
|
General Guidelines.
|
|
-------------------
|
|
|
|
0. The top level directory looks like thus.
|
|
|
|
[frank@kirk hamlib]$ tree -d
|
|
.
|
|
|-- CVS
|
|
|-- common
|
|
| `-- CVS
|
|
|-- ft1000
|
|
| `-- CVS
|
|
|-- ft1000d
|
|
| `-- CVS
|
|
|-- ft747
|
|
| |-- CVS
|
|
| |-- include
|
|
| | `-- CVS
|
|
| |-- lib
|
|
| | `-- CVS
|
|
| `-- test
|
|
| `-- CVS
|
|
|-- ft840
|
|
| `-- CVS
|
|
|-- ft847
|
|
| |-- CVS
|
|
| |-- include
|
|
| | `-- CVS
|
|
| |-- lib
|
|
| | `-- CVS
|
|
| `-- test
|
|
| `-- CVS
|
|
|-- ft920
|
|
| `-- CVS
|
|
|-- ts570d
|
|
| `-- CVS
|
|
|-- ts870s
|
|
| `-- CVS
|
|
`-- ts950
|
|
`-- CVS
|
|
|
|
1.Every new shared lib should be created autonomously
|
|
within its own directory. eg ft747/ for libft747.so
|
|
|
|
2. Every lib should have the following structure
|
|
[frank@kirk ft747]$ tree
|
|
|
|
.
|
|
|-- CVS
|
|
| |-- Entries
|
|
| |-- Entries.Log
|
|
| |-- Repository
|
|
| `-- Root
|
|
|-- Makefile
|
|
|-- README.ft747
|
|
|-- TODO.ft747
|
|
|-- ft747.c
|
|
|-- ft747.h
|
|
|-- include
|
|
| `-- CVS
|
|
| |-- Entries
|
|
| |-- Repository
|
|
| `-- Root
|
|
|-- lib
|
|
| `-- CVS
|
|
| |-- Entries
|
|
| |-- Repository
|
|
| `-- Root
|
|
`-- test
|
|
|-- CVS
|
|
| |-- Entries
|
|
| |-- Repository
|
|
| `-- Root
|
|
|-- Makefile
|
|
|-- testlibft747.c
|
|
`-- testlibft747.h
|
|
|
|
3. Use the ft847 tree for examples of coding style. If there
|
|
are any glaring problems,let me know..
|
|
|
|
4. The "test" directory should contain source code of the
|
|
form testlibXXXX.[ch]
|
|
|
|
5. The "test" directory should build a test suite that
|
|
excercises the API you are implementing.
|
|
|
|
6. libXXXX.so should be built to allow TX (PTT) to be disabled
|
|
if required. See ft847.[ch] for how this is done.
|
|
|
|
7. The Makefile for the test suite should have a target like
|
|
this to allow testing the API.
|
|
|
|
# run test program in local directory
|
|
|
|
.PHONY: runtest
|
|
runtest:
|
|
(LD_LIBRARY_PATH="../lib" ./testlibft747 )
|
|
|
|
|
|
8. You may wish to make an example out from your test suite
|
|
program available as follows.
|
|
|
|
make runtest > RESULT.example
|
|
|
|
9. Your header file (eg ft747.h, ft847.h etc) documents
|
|
your backend API, so please describe it so others can understand.
|
|
If this cannot be done, I may consider an "API.xxx" that
|
|
decsribes the API (eg: API.ft847 )
|
|
|
|
10. C code examples.
|
|
An example piece of code may uses the ft847 API could
|
|
look like this..
|
|
|
|
A C code snippet to connect to a FT847 and set
|
|
the frequency of the main VFO to 439,700,000 Hz ,
|
|
using FM as the required mode, would look something
|
|
like this. The error checking is removed for simplicity.
|
|
|
|
See testrig.c for an example.
|
|
|
|
<snip>
|
|
|
|
#define SERIAL_PORT "/dev/ttyS1"
|
|
...
|
|
|
|
my_rig = rig_init(RIG_MODEL_FT847);
|
|
strncpy(my_rig->state.rig_path,SERIAL_PORT,FILPATHLEN);
|
|
|
|
/*
|
|
* Example of setting rig Main VFO to 439.700 Mhz FM -- FS
|
|
* and some error checking on the return code.
|
|
*/
|
|
|
|
retcode = rig_set_vfo(my_rig, RIG_VFO_MAIN);
|
|
|
|
if (retcode != RIG_OK ) {
|
|
printf("rig_set_vfo: error = %i \n", retcode);
|
|
}
|
|
|
|
rig_set_freq(my_rig, 439700000); /* cq de vk3fcs */
|
|
|
|
if (retcode != RIG_OK ) {
|
|
printf("rig_set_freq: error = %i \n", retcode);
|
|
}
|
|
|
|
rig_set_mode(my_rig, RIG_MODE_FM);
|
|
|
|
if (retcode != RIG_OK ) {
|
|
printf("rig_get_mode: error = %i \n", retcode);
|
|
}
|
|
|
|
<snip>
|
|
|
|
|
|
11. Where are the GUI's.
|
|
|
|
"Build it and they will come ..."
|
|
|
|
Seriously, I am hoping the API's will provide a solid
|
|
framework for some cool GUI development. I would like
|
|
to see some GTK apps that use the hamlib API's
|
|
so they can be used by end users as a nice part of the
|
|
Ham shack.
|
|
|
|
|
|
|
|
Frank Singleton vk3fcs/km5ws
|
|
|
|
|
|
|
|
|