kopia lustrzana https://github.com/Hamlib/Hamlib
using read_sleep from serial.h
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@36 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.0.1
rodzic
f07abe9364
commit
d6393077c2
116
ft847/ft847.c
116
ft847/ft847.c
|
@ -6,7 +6,7 @@
|
||||||
* via serial interface to an FT-847 using the "CAT" interface.
|
* via serial interface to an FT-847 using the "CAT" interface.
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Id: ft847.c,v 1.4 2000-07-26 23:36:54 javabear Exp $
|
* $Id: ft847.c,v 1.5 2000-07-28 01:20:00 javabear Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -245,72 +245,35 @@ void cmd_set_repeater_offset(int fd, unsigned char d1, unsigned char d2,
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get data rx from the RIG...
|
* Get data rx from the RIG...only 1 byte
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
unsigned char cmd_get_rx_status(int fd) {
|
unsigned char cmd_get_rx_status(int fd) {
|
||||||
int bytes; /* read from rig */
|
|
||||||
int n; /* counters */
|
int n; /* counters */
|
||||||
|
|
||||||
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0xe7 }; /* get receiver status */
|
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0xe7 }; /* get receiver status */
|
||||||
|
|
||||||
write_block(fd,data);
|
write_block(fd,data);
|
||||||
|
n = read_sleep(fd,datain,1); /* wait and read for 1 byte to be read */
|
||||||
/*
|
|
||||||
* Sleep regularly until the buffer contains 1 byte
|
|
||||||
* This should handle most cases.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bytes = 0;
|
|
||||||
while(1) {
|
|
||||||
ioctl(fd, FIONREAD, &bytes); /* get bytes in buffer */
|
|
||||||
if (bytes == 1)
|
|
||||||
break;
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this should not block now */
|
|
||||||
|
|
||||||
n = read(fd,datain,1); /* grab 1 byte from rig */
|
|
||||||
|
|
||||||
printf("Byte read = %x \n", datain[0]);
|
|
||||||
|
|
||||||
return datain[0];
|
return datain[0];
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get data tx from the RIG...
|
* Get data tx from the RIG...only 1 byte
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned char cmd_get_tx_status(int fd) {
|
unsigned char cmd_get_tx_status(int fd) {
|
||||||
int bytes; /* read from rig */
|
|
||||||
int n; /* counters */
|
int n; /* counters */
|
||||||
|
|
||||||
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0xf7 }; /* get tx status */
|
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0xf7 }; /* get tx status */
|
||||||
|
|
||||||
write_block(fd,data);
|
write_block(fd,data);
|
||||||
|
n = read_sleep(fd,datain,1); /* wait and read for 1 byte to be read */
|
||||||
/*
|
|
||||||
* Sleep regularly until the buffer contains all 1 bytes
|
|
||||||
* This should handle most cases.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bytes = 0;
|
|
||||||
while(1) {
|
|
||||||
ioctl(fd, FIONREAD, &bytes); /* get bytes in buffer */
|
|
||||||
if (bytes == 1)
|
|
||||||
break;
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this should not block now */
|
|
||||||
|
|
||||||
n = read(fd,datain,1); /* grab 1 byte from rig */
|
|
||||||
|
|
||||||
printf("datain[0] = %x \n",datain[0]);
|
printf("datain[0] = %x \n",datain[0]);
|
||||||
|
|
||||||
|
@ -319,35 +282,18 @@ unsigned char cmd_get_tx_status(int fd) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get freq and mode data from the RIG...
|
* Get freq and mode data from the RIG main VFO...only 1 byte
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
unsigned char cmd_get_freq_mode_status_main_vfo(int fd) {
|
unsigned char cmd_get_freq_mode_status_main_vfo(int fd) {
|
||||||
int bytes; /* read from rig */
|
|
||||||
int n; /* counters */
|
int n; /* counters */
|
||||||
|
|
||||||
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0x03 }; /* get freq and mode status */
|
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0x03 }; /* get freq and mode status */
|
||||||
/* main vfo*/
|
/* main vfo*/
|
||||||
|
|
||||||
write_block(fd,data);
|
write_block(fd,data);
|
||||||
|
n = read_sleep(fd,datain,1); /* wait and read for 1 byte to be read */
|
||||||
/*
|
|
||||||
* Sleep regularly until the buffer contains all 1 bytes
|
|
||||||
* This should handle most cases.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bytes = 0;
|
|
||||||
while(1) {
|
|
||||||
ioctl(fd, FIONREAD, &bytes); /* get bytes in buffer */
|
|
||||||
if (bytes == 1)
|
|
||||||
break;
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this should not block now */
|
|
||||||
|
|
||||||
n = read(fd,datain,1); /* grab 1 byte from rig */
|
|
||||||
|
|
||||||
printf("datain[0] = %x \n", datain[0]);
|
printf("datain[0] = %x \n", datain[0]);
|
||||||
|
|
||||||
|
@ -355,31 +301,19 @@ unsigned char cmd_get_freq_mode_status_main_vfo(int fd) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get freq and mode data from the RIG sat RX vfo ...only 1 byte
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
unsigned char cmd_get_freq_mode_status_sat_rx_vfo(int fd) {
|
unsigned char cmd_get_freq_mode_status_sat_rx_vfo(int fd) {
|
||||||
int bytes; /* read from rig */
|
|
||||||
int n; /* counters */
|
int n; /* counters */
|
||||||
|
|
||||||
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0x13 }; /* get freq and mode status */
|
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0x13 }; /* get freq and mode status */
|
||||||
/* sat rx vfo*/
|
/* sat rx vfo*/
|
||||||
|
|
||||||
write_block(fd,data);
|
write_block(fd,data);
|
||||||
|
n = read_sleep(fd,datain,1); /* wait and read for 1 byte to be read */
|
||||||
/*
|
|
||||||
* Sleep regularly until the buffer contains all 1 bytes
|
|
||||||
* This should handle most cases.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bytes = 0;
|
|
||||||
while(1) {
|
|
||||||
ioctl(fd, FIONREAD, &bytes); /* get bytes in buffer */
|
|
||||||
if (bytes == 1)
|
|
||||||
break;
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this should not block now */
|
|
||||||
|
|
||||||
n = read(fd,datain,1); /* grab 1 byte from rig */
|
|
||||||
|
|
||||||
printf("datain[0] = %x \n", datain[0]);
|
printf("datain[0] = %x \n", datain[0]);
|
||||||
|
|
||||||
|
@ -387,31 +321,19 @@ unsigned char cmd_get_freq_mode_status_sat_rx_vfo(int fd) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Get freq and mode data from the RIG sat TX VFO...only 1 byte
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
unsigned char cmd_get_freq_mode_status_sat_tx_vfo(int fd) {
|
unsigned char cmd_get_freq_mode_status_sat_tx_vfo(int fd) {
|
||||||
int bytes; /* read from rig */
|
|
||||||
int n; /* counters */
|
int n; /* counters */
|
||||||
|
|
||||||
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0x13 }; /* get freq and mode status */
|
static unsigned char data[] = { 0x00, 0x00, 0x00, 0x00, 0x13 }; /* get freq and mode status */
|
||||||
/* sat tx vfo*/
|
/* sat tx vfo*/
|
||||||
|
|
||||||
write_block(fd,data);
|
write_block(fd,data);
|
||||||
|
n = read_sleep(fd,datain,1); /* wait and read for 1 byte to be read */
|
||||||
/*
|
|
||||||
* Sleep regularly until the buffer contains all 1 bytes
|
|
||||||
* This should handle most cases.
|
|
||||||
*/
|
|
||||||
|
|
||||||
bytes = 0;
|
|
||||||
while(1) {
|
|
||||||
ioctl(fd, FIONREAD, &bytes); /* get bytes in buffer */
|
|
||||||
if (bytes == 1)
|
|
||||||
break;
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this should not block now */
|
|
||||||
|
|
||||||
n = read(fd,datain,1); /* grab 1 byte from rig */
|
|
||||||
|
|
||||||
printf("datain[0] = %x \n", datain[0]);
|
printf("datain[0] = %x \n", datain[0]);
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue