mirror of
				https://github.com/saitohirga/WSJT-X.git
				synced 2025-10-30 20:40:28 -04:00 
			
		
		
		
	Note that Makefile should go since it should be rebuilt from Makefile.in by configure. - start_threads now has HAVE_ALSA_ALSASOUND_H - ptt_unix now uses configure HAVE_SYS_PARAM_H Initial *non production* commit I am a little rusty with it, sorry. --db git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@58 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
		
			
				
	
	
		
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * WSJT is Copyright (c) 2001-2006 by Joseph H. Taylor, Jr., K1JT, 
 | |
|  * and is licensed under the GNU General Public License (GPL).
 | |
|  */
 | |
| 
 | |
| #include <unistd.h>
 | |
| #include <stdio.h>
 | |
| #include <fcntl.h>
 | |
| #include <sys/ioctl.h>
 | |
| #include "conf.h"	/* XXX Could use CFLAGS later instead --db */
 | |
| 
 | |
| #ifdef HAVE_SYS_PARAM_H
 | |
| #include <sys/param.h>
 | |
| #endif
 | |
| 
 | |
| /* First cut, note that this only distinguishes Linux from BSDs,
 | |
|  * it will be done better later on using configure. N.B. that OSX
 | |
|  * will come up as BSD but I think this is also the right serial port
 | |
|  * for OSX. -db
 | |
|  */
 | |
| #if defined(BSD)
 | |
| #define TTYNAME "/dev/ttyd%d"
 | |
| #else
 | |
| #include <sys/io.h>
 | |
| #define TTYNAME	"/dev/ttyS%d"
 | |
| #endif
 | |
| 
 | |
| /* Not quite right for size but '%d + 1' should be plenty enough -db */
 | |
| #define TTYNAME_SIZE	sizeof(TTYNAME)+1
 | |
| 
 | |
| int ptt_(int *nport, int *ntx, int *iptt)
 | |
| {
 | |
|   static int nopen=0;
 | |
|   int control = TIOCM_RTS | TIOCM_DTR;
 | |
|   int fd;
 | |
|   char s[TTYNAME_SIZE];	
 | |
| 
 | |
|   if(*nport < 0) {
 | |
|     *iptt=*ntx;
 | |
|     return(0);
 | |
|   }
 | |
| 
 | |
|   if(*ntx && (!nopen)) {
 | |
|     snprintf(s, TTYNAME_SIZE, TTYNAME, *nport);
 | |
|     s[TTYNAME_SIZE] = '\0';
 | |
| 
 | |
|     //open the device
 | |
|     if ((fd = open(s, O_RDWR | O_NDELAY)) < 0) {
 | |
|       fprintf(stderr, "device not found");
 | |
|       return(1);
 | |
|     }
 | |
|     nopen=1;
 | |
|     return(0);
 | |
|   }
 | |
| 
 | |
|   if(*ntx && nopen) {
 | |
|     //    printf("Set DTR/RTS   %d   %d\n",TIOCMBIS,control);
 | |
|     ioctl(fd, TIOCMBIS, &control);               // Set DTR and RTS
 | |
|     *iptt=1;
 | |
|   }
 | |
| 
 | |
|   else {
 | |
|     //    printf("Clear DTR/RTS   %d   %d\n",TIOCMBIC,control);
 | |
|     ioctl(fd, TIOCMBIC, &control);
 | |
|     close(fd);
 | |
|     *iptt=0;
 | |
|     nopen=0;
 | |
|   }
 | |
|   return(0);
 | |
| }
 |