From: Michel Verbraak <michel@verbraak.org>
To: linux-dvb@linuxtv.org
Subject: [linux-dvb] How to find which command generates error in FE_SET_PROPERTY
Date: Sat, 08 Nov 2008 18:02:00 +0100 [thread overview]
Message-ID: <4915C608.9000709@verbraak.org> (raw)
I'm trying to modify one of my applications to use the new S2API. With
this application I control my dvb-t and dvb-s/s2 receivers.
I'm using szap-s2 as an example but I run into a problem that the ioctl
FE_SET_PROPERTY always returns -1 and variable errno is set to 14.
My question is. How do I determine which of the commands in the command
queue given to FE_SET_PROPERTY is producing this error. I did not try
yet to devide my command queue up into one command queue per command.
Regards,
Michel.
Part of source code for dvb-s/s2:
#ifdef S2API
int TDVBDevice::SetProperty(struct dtv_property *cmdseq)
{
int err;
err = ioctl(vfrontendfd, FE_SET_PROPERTY, cmdseq);
if (err < 0)
{
syslog(LOG_ERR, "ioctl FE_SET_PROPERTY failed (errno=%d,
%d).",errno, err);
return -1;
}
syslog(LOG_INFO, "ioctl FE_SET_PROPERTY ok.");
return 0;
}
#else
int TDVBDevice::SetFrontend(struct dvb_frontend_parameters *frontend)
{
if (ioctl(vfrontendfd, FE_SET_FRONTEND, frontend) < 0)
{
syslog(LOG_ERR, "ioctl FE_SET_FRONTEND failed (errno=%d).",errno);
return -1;
}
return 0;
}
#endif
//calling part
#ifdef S2API
struct dtv_property p[DTV_IOCTL_MAX_MSGS];
p[0].cmd = DTV_CLEAR;
p[1].cmd = DTV_DELIVERY_SYSTEM; p[1].u.data = atoi(channel->Item(2));
p[2].cmd = DTV_FREQUENCY; p[2].u.data = (__u32)(ifreq * 1000);
p[3].cmd = DTV_MODULATION; p[3].u.data = QPSK;
p[4].cmd = DTV_SYMBOL_RATE; p[4].u.data = (__u32)(sr * 1000);
p[5].cmd = DTV_INNER_FEC; p[5].u.data = FEC_AUTO;
p[6].cmd = DTV_INVERSION; p[6].u.data = INVERSION_AUTO;
// { .cmd = DTV_ROLLOFF, .u.data = rolloff },
p[7].cmd = DTV_PILOT; p[7].u.data = PILOT_AUTO;
p[8].cmd = DTV_TUNE;
struct dtv_properties cmdseq;
cmdseq.num = 9;
cmdseq.props = p;
#else
frontend.frequency = (unsigned int)(ifreq * 1000);
frontend.inversion = INVERSION_AUTO;
frontend.u.qpsk.symbol_rate = (unsigned int)(sr * 1000);
frontend.u.qpsk.fec_inner = FEC_AUTO;
#endif
#ifdef S2API
if (SetProperty(&p[0]) == 0)
#else
if (SetFrontend(&frontend) == 0)
#endif
_______________________________________________
linux-dvb mailing list
linux-dvb@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb
next reply other threads:[~2008-11-08 17:02 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-08 17:02 Michel Verbraak [this message]
2008-11-08 18:01 ` [linux-dvb] How to find which command generates error in FE_SET_PROPERTY Darron Broad
2008-11-08 18:23 ` Michel Verbraak
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4915C608.9000709@verbraak.org \
--to=michel@verbraak.org \
--cc=linux-dvb@linuxtv.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox