kopia lustrzana https://github.com/Hamlib/Hamlib
				
				
				
			
		
			
				
	
	
		
			180 wiersze
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			180 wiersze
		
	
	
		
			3.6 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.
 | |
| 
 | |
| 
 | |
| 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
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |