| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  | #include "config.h"
 | 
					
						
							|  |  |  | #include <stdio.h>
 | 
					
						
							|  |  |  | #include <stdlib.h>
 | 
					
						
							|  |  |  | #include <string.h>
 | 
					
						
							|  |  |  | #include "tstrig.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | RIG *my_rig;                                       // handle to rig
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int set_conf(RIG *my_rig, char *conf_parms); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------
 | 
					
						
							|  |  |  | int set_conf(RIG *my_rig, char *conf_parms) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   char *p, *q, *n; | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |   int iret; | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   p = conf_parms; | 
					
						
							|  |  |  |   while (p && *p != '\0') { | 
					
						
							|  |  |  |     /* FIXME: left hand value of = cannot be null */ | 
					
						
							|  |  |  |     q = strchr(p, '='); | 
					
						
							|  |  |  |     if ( !q ) | 
					
						
							|  |  |  |       return -RIG_EINVAL; | 
					
						
							|  |  |  |     *q++ = '\0'; | 
					
						
							|  |  |  |     n = strchr(q, ','); | 
					
						
							|  |  |  |     if (n) *n++ = '\0'; | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |     iret = rig_set_conf(my_rig, rig_token_lookup(my_rig, p), q); | 
					
						
							|  |  |  |     if (iret != RIG_OK) | 
					
						
							|  |  |  |       return iret; | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  |     p = n; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   return RIG_OK; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //------------------------------------------------------------------------
 | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  | int rigOpen(int verbose, rig_model_t my_model, const char* rig_file, | 
					
						
							|  |  |  | 	    int serial_rate, const char* conf_parms2) | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |   int iret;		/* generic return code from functions */ | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  |   char *civaddr = NULL;	/* NULL means no need to set conf */ | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |   //  const char *rig_file;
 | 
					
						
							|  |  |  |   //  const char *conf_parms2;
 | 
					
						
							|  |  |  |   //  int serial_rate;
 | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   rig_set_debug(verbose); | 
					
						
							|  |  |  |   my_rig=rig_init(my_model); | 
					
						
							|  |  |  |    | 
					
						
							|  |  |  |   if (!my_rig) { | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |     //    fprintf(stderr, "Unknown rig num %d, or initialization error.\n",my_model);
 | 
					
						
							|  |  |  |     return -1; | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   //  rig_file="COM1";
 | 
					
						
							|  |  |  |   //  serial_rate=4800;
 | 
					
						
							|  |  |  |   //  conf_parms2="data_bits=8,stop_bits=2,serial_handshake=Hardware";
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   iret=set_conf(my_rig, conf_parms2); | 
					
						
							|  |  |  |   if (iret!=RIG_OK) { | 
					
						
							|  |  |  |     //    fprintf(stderr, "Config parameter error: %s\n", rigerror(iret));
 | 
					
						
							|  |  |  |     return -2; | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (rig_file) | 
					
						
							|  |  |  |     strncpy(my_rig->state.rigport.pathname, rig_file, FILPATHLEN - 1); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (serial_rate!=0) | 
					
						
							|  |  |  |     my_rig->state.rigport.parm.serial.rate = serial_rate; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (civaddr) | 
					
						
							|  |  |  |     rig_set_conf(my_rig, rig_token_lookup(my_rig, "civaddr"), civaddr); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |   iret = rig_open(my_rig); | 
					
						
							|  |  |  |   if(iret!=0) return -3; | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  |   return 0; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int rigSetFreq(int fHz) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   return rig_set_freq(my_rig,RIG_VFO_CURR,fHz); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  | int rigFreq(int *fHz) | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  | { | 
					
						
							|  |  |  |   int iret=0; | 
					
						
							|  |  |  |   freq_t freq; | 
					
						
							|  |  |  |   iret=rig_get_freq(my_rig, RIG_VFO_CURR, &freq); | 
					
						
							| 
									
										
										
										
											2013-04-15 20:20:06 +00:00
										 |  |  |   *fHz=freq; | 
					
						
							|  |  |  |   return iret; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | int rigSetPTT(int iptt) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   return rig_set_ptt(my_rig, RIG_VFO_CURR, iptt); | 
					
						
							| 
									
										
										
										
											2013-04-15 00:28:27 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | void rigClose() | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   rig_close(my_rig); | 
					
						
							|  |  |  |   rig_cleanup(my_rig); | 
					
						
							|  |  |  | } |