Hamlib/README.developer

156 wiersze
3.1 KiB
Plaintext

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.
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 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 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>
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.