mirror of
https://github.com/DigitalDevices/octonet.git
synced 2023-10-10 13:36:52 +02:00
- use corrected lnb value instead of src parameter
- dump new DVB stats for testing
This commit is contained in:
parent
175f58aaa5
commit
04ad8103ca
@ -140,6 +140,44 @@ static int set_property(int fd, uint32_t cmd, uint32_t data)
|
||||
}
|
||||
|
||||
|
||||
static int get_property(int fd, uint32_t cmd, uint32_t *data)
|
||||
{
|
||||
struct dtv_property p;
|
||||
struct dtv_properties c;
|
||||
int ret;
|
||||
|
||||
p.cmd = cmd;
|
||||
c.num = 1;
|
||||
c.props = &p;
|
||||
ret = ioctl(fd, FE_GET_PROPERTY, &c);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "FE_GET_PROPERTY returned %d\n", ret);
|
||||
return -1;
|
||||
}
|
||||
*data = p.u.data;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int get_stat(int fd, uint32_t cmd, struct dtv_fe_stats *stats)
|
||||
{
|
||||
struct dtv_property p;
|
||||
struct dtv_properties c;
|
||||
int ret;
|
||||
|
||||
p.cmd = cmd;
|
||||
c.num = 1;
|
||||
c.props = &p;
|
||||
ret = ioctl(fd, FE_GET_PROPERTY, &c);
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "FE_GET_PROPERTY returned %d\n", ret);
|
||||
return -1;
|
||||
}
|
||||
memcpy(stats, &p.u.st, sizeof(struct dtv_fe_stats));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int set_fe(int fd, uint32_t fr, uint32_t sr, fe_delivery_system_t ds)
|
||||
{
|
||||
struct dtv_property p[] = {
|
||||
@ -335,17 +373,17 @@ static int tune_sat(struct dvbfe *fe)
|
||||
if (fe->scif_type == 1) {
|
||||
pthread_mutex_lock(&fe->os->uni_lock);
|
||||
set_en50494(fe->fd, freq / 1000, fe->param[PARAM_SR],
|
||||
fe->param[PARAM_SRC] - 1, fe->param[PARAM_POL] - 1, hi,
|
||||
lnb, fe->param[PARAM_POL] - 1, hi,
|
||||
fe->scif_slot, fe->scif_freq, ds);
|
||||
pthread_mutex_unlock(&fe->os->uni_lock);
|
||||
} else if (fe->scif_type == 2) {
|
||||
pthread_mutex_lock(&fe->os->uni_lock);
|
||||
set_en50607(fe->fd, freq / 1000, fe->param[PARAM_SR],
|
||||
fe->param[PARAM_SRC] - 1, fe->param[PARAM_POL] - 1, hi,
|
||||
lnb, fe->param[PARAM_POL] - 1, hi,
|
||||
fe->scif_slot, fe->scif_freq, ds);
|
||||
pthread_mutex_unlock(&fe->os->uni_lock);
|
||||
} else {
|
||||
diseqc(fe->fd, fe->param[PARAM_SRC] - 1, fe->param[PARAM_POL] - 1, hi);
|
||||
diseqc(fe->fd, lnb, fe->param[PARAM_POL] - 1, hi);
|
||||
set_fe(fe->fd, freq, fe->param[PARAM_SR] * 1000, ds);
|
||||
}
|
||||
}
|
||||
@ -558,10 +596,13 @@ static void get_stats(struct dvbfe *fe)
|
||||
{
|
||||
uint16_t sig = 0, snr = 0;
|
||||
fe_status_t stat;
|
||||
uint32_t str, cnr;
|
||||
struct dtv_fe_stats st;
|
||||
|
||||
ioctl(fe->fd, FE_READ_STATUS, &stat);
|
||||
ioctl(fe->fd, FE_READ_SIGNAL_STRENGTH, &sig);
|
||||
ioctl(fe->fd, FE_READ_SNR, &snr);
|
||||
|
||||
fe->stat = stat;
|
||||
fe->lock = (stat == 0x1f) ? 1 : 0;
|
||||
|
||||
@ -574,6 +615,12 @@ static void get_stats(struct dvbfe *fe)
|
||||
fe->quality = snr >> 9;
|
||||
}
|
||||
dbgprintf(DEBUG_DVB, "fe%d: stat=%02x str=%04x snr=%04x\n", fe->nr, stat, sig, snr);
|
||||
|
||||
|
||||
get_stat(fe->fd, DTV_STAT_SIGNAL_STRENGTH, &st);
|
||||
dbgprintf(DEBUG_DVB, "fe%d: str=%016llx\n", fe->nr, st.stat[0].uvalue);
|
||||
get_stat(fe->fd, DTV_STAT_CNR, &st);
|
||||
dbgprintf(DEBUG_DVB, "fe%d: cnr=%016llx\n", fe->nr, st.stat[0].uvalue);
|
||||
}
|
||||
|
||||
void handle_fe(struct dvbfe *fe)
|
||||
|
Loading…
Reference in New Issue
Block a user