[linux-dvb] call to all application developers

Uwe Bugla uwe.bugla at gmx.de
Mon Mar 27 16:04:34 CEST 2006


Hi folks,
I appended a small utility for measuring DVB signal strength.
Afaics it was originally done by Peter Hettkamp.

My problem with it:
No matter if I tune my DVB-S dish to Astra, Hotbird or somewhere
in between it prints out values to console > 0.
In so far it is a good attempt (and would be a very nice
addition to the existing dvbapps-package, wouldn't it?).
But as the values are not unique (i. e. =0 if the dish
is somewhere between two satellites and >0 if the dish points
optimal to one satellite), it is no help for me at all.
Can some capable developer please overwork and fix this
tiny little tool so far?
Thanks
Ciao
Uwe

#include <stdio.h> 
#include <stdlib.h> 
#include <errno.h> 
#include <sys/ioctl.h> 
#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 
#include <unistd.h> 
#include <linux/dvb/frontend.h> 
 
#define FRONTENDDEVICE "/dev/dvb/adapter%d/frontend%d" 
 
static char *usage_str = 
"\nusage: getLevel" 
" -a number : use given adapter (default 0)\n" 
" -f number : use given frontend (default 0)\n"; 
 
int main(int argc, char *argv[]) { 

	unsigned int adapter = 0, frontend = 0; 
	unsigned short int signal; 
	int fefd, opt; 
	char fedev[128]; 

	while ((opt = getopt(argc, argv, "ha:f:")) != -1) {
 		switch (opt) {
 			case '?':
 			case 'h':
 			default:
 				fprintf(stderr,"%s",usage_str);
	 			return 1;
 			case 'a':
 				adapter = strtoul(optarg, NULL, 0);
 				break;
 			case 'f':
 				frontend = strtoul(optarg, NULL, 0); break;
 		}
	}
 
snprintf(fedev, sizeof(fedev), FRONTENDDEVICE, adapter, frontend);

if ((fefd = open(fedev, O_RDONLY | O_NONBLOCK)) < 0) {
 	perror("opening frontend failed");
 	return 1;
}
 
if (ioctl(fefd, FE_READ_SIGNAL_STRENGTH, &signal) == -1){
 	fprintf(stderr,"IOCTL failed\n");
 	return 1;
}

close(fefd);
printf("%u\n",signal);
return 0;
}

-- 
"Feel free" mit GMX FreeMail!
Monat für Monat 10 FreeSMS inklusive! http://www.gmx.net



More information about the linux-dvb mailing list