diff options
Diffstat (limited to 'util/szap/femon.c')
-rw-r--r-- | util/szap/femon.c | 149 |
1 files changed, 0 insertions, 149 deletions
diff --git a/util/szap/femon.c b/util/szap/femon.c deleted file mode 100644 index 47e37a3..0000000 --- a/util/szap/femon.c +++ /dev/null @@ -1,149 +0,0 @@ -/* femon -- monitor frontend status - * - * Copyright (C) 2003 convergence GmbH - * Johannes Stezenbach <js@convergence.de> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ - - -#include <stdio.h> -#include <stdlib.h> -#include <limits.h> -#include <string.h> -#include <errno.h> -#include <sys/ioctl.h> -#include <sys/types.h> -#include <sys/stat.h> -#include <sys/poll.h> -#include <fcntl.h> -#include <time.h> -#include <unistd.h> - -#include <stdint.h> -#include <sys/time.h> - -#include <linux/dvb/frontend.h> - -#ifndef TRUE -#define TRUE (1==1) -#endif -#ifndef FALSE -#define FALSE (1==0) -#endif - - -#define FRONTENDDEVICE "/dev/dvb/adapter%d/frontend%d" - -static char *usage_str = - "\nusage: femon [options]\n" - " -a number : use given adapter (default 0)\n" - " -f number : use given frontend (default 0)\n\n"; - - -static void usage(void) -{ - fprintf(stderr, usage_str); - exit(1); -} - - -static -int check_frontend (int fe_fd) -{ - fe_status_t status; - uint16_t snr, signal; - uint32_t ber, uncorrected_blocks; - - do { - ioctl(fe_fd, FE_READ_STATUS, &status); - ioctl(fe_fd, FE_READ_SIGNAL_STRENGTH, &signal); - ioctl(fe_fd, FE_READ_SNR, &snr); - ioctl(fe_fd, FE_READ_BER, &ber); - ioctl(fe_fd, FE_READ_UNCORRECTED_BLOCKS, &uncorrected_blocks); - - printf ("status %02x | signal %04x | snr %04x | ber %08x | unc %08x | ", - status, signal, snr, ber, uncorrected_blocks); - - if (status & FE_HAS_LOCK) - printf("FE_HAS_LOCK"); - - printf("\n"); - usleep(1000000); - } while (1); - - return 0; -} - - -static -int do_mon(unsigned int adapter, unsigned int frontend) -{ - char fedev[128]; - int fefd; - int result; - struct dvb_frontend_info fe_info; - - snprintf(fedev, sizeof(fedev), FRONTENDDEVICE, adapter, frontend); - printf("using '%s'\n", fedev); - - if ((fefd = open(fedev, O_RDONLY | O_NONBLOCK)) < 0) { - perror("opening frontend failed"); - return FALSE; - } - - result = ioctl(fefd, FE_GET_INFO, &fe_info); - - if (result < 0) { - perror("ioctl FE_GET_INFO failed"); - close(fefd); - return FALSE; - } - - printf("FE: %s (%s)\n", fe_info.name, fe_info.type == FE_QPSK ? "SAT" : - fe_info.type == FE_QAM ? "CABLE": "TERRESTRIAL"); - - check_frontend (fefd); - - close(fefd); - - return result; -} - -int main(int argc, char *argv[]) -{ - unsigned int adapter = 0, frontend = 0; - int opt; - - while ((opt = getopt(argc, argv, "hlrn:a:f:d:")) != -1) { - switch (opt) - { - case '?': - case 'h': - default: - usage(); - case 'a': - adapter = strtoul(optarg, NULL, 0); - break; - case 'f': - frontend = strtoul(optarg, NULL, 0); - } - } - - do_mon(adapter, frontend); - - return FALSE; -} - |