1<section id="frontend_legacy_types">
2<title>Frontend Legacy Data Types</title>
3
4<section id="fe-type-t">
5<title>Frontend type</title>
6
7<para>For historical reasons, frontend types are named by the type of modulation
8    used in transmission. The fontend types are given by fe_type_t type, defined as:</para>
9
10<table pgwide="1" frame="none" id="fe-type">
11<title>Frontend types</title>
12<tgroup cols="3">
13   &cs-def;
14   <thead>
15     <row>
16       <entry>fe_type</entry>
17       <entry>Description</entry>
18       <entry><link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> equivalent type</entry>
19     </row>
20  </thead>
21  <tbody valign="top">
22  <row>
23     <entry id="FE-QPSK"><constant>FE_QPSK</constant></entry>
24     <entry>For DVB-S standard</entry>
25     <entry><constant>SYS_DVBS</constant></entry>
26  </row>
27  <row>
28     <entry id="FE-QAM"><constant>FE_QAM</constant></entry>
29     <entry>For DVB-C annex A standard</entry>
30     <entry><constant>SYS_DVBC_ANNEX_A</constant></entry>
31  </row>
32  <row>
33     <entry id="FE-OFDM"><constant>FE_OFDM</constant></entry>
34     <entry>For DVB-T standard</entry>
35     <entry><constant>SYS_DVBT</constant></entry>
36  </row>
37  <row>
38     <entry id="FE-ATSC"><constant>FE_ATSC</constant></entry>
39     <entry>For ATSC standard (terrestrial) or for DVB-C Annex B (cable) used in US.</entry>
40     <entry><constant>SYS_ATSC</constant> (terrestrial) or <constant>SYS_DVBC_ANNEX_B</constant> (cable)</entry>
41  </row>
42</tbody></tgroup></table>
43
44<para>Newer formats like DVB-S2, ISDB-T, ISDB-S and DVB-T2 are not described at the above, as they're
45supported via the new <link linkend="FE_GET_PROPERTY">FE_GET_PROPERTY/FE_GET_SET_PROPERTY</link> ioctl's, using the <link linkend="DTV-DELIVERY-SYSTEM">DTV_DELIVERY_SYSTEM</link> parameter.
46</para>
47
48<para>In the old days, &dvb-frontend-info; used to contain
49    <constant>fe_type_t</constant> field to indicate the delivery systems,
50    filled with either FE_QPSK, FE_QAM, FE_OFDM or FE_ATSC. While this is
51    still filled to keep backward compatibility, the usage of this
52    field is deprecated, as it can report just one delivery system, but some
53    devices support multiple delivery systems. Please use
54    <link linkend="DTV-ENUM-DELSYS">DTV_ENUM_DELSYS</link> instead.
55</para>
56<para>On devices that support multiple delivery systems,
57    &dvb-frontend-info;::<constant>fe_type_t</constant> is filled with the
58    currently standard, as selected by the last call to
59    <link linkend="FE_GET_PROPERTY">FE_SET_PROPERTY</link>
60    using the &DTV-DELIVERY-SYSTEM; property.</para>
61</section>
62
63<section id="fe-bandwidth-t">
64<title>Frontend bandwidth</title>
65
66<table pgwide="1" frame="none" id="fe-bandwidth">
67    <title>enum fe_bandwidth</title>
68    <tgroup cols="2">
69	&cs-def;
70	<thead>
71	<row>
72	    <entry>ID</entry>
73	    <entry>Description</entry>
74	</row>
75	</thead>
76	<tbody valign="top">
77	<row>
78	    <entry id="BANDWIDTH-AUTO"><constant>BANDWIDTH_AUTO</constant></entry>
79	    <entry>Autodetect bandwidth (if supported)</entry>
80	</row><row>
81	    <entry id="BANDWIDTH-1-712-MHZ"><constant>BANDWIDTH_1_712_MHZ</constant></entry>
82	    <entry>1.712 MHz</entry>
83	</row><row>
84	    <entry id="BANDWIDTH-5-MHZ"><constant>BANDWIDTH_5_MHZ</constant></entry>
85	    <entry>5 MHz</entry>
86	</row><row>
87	    <entry id="BANDWIDTH-6-MHZ"><constant>BANDWIDTH_6_MHZ</constant></entry>
88	    <entry>6 MHz</entry>
89	</row><row>
90	    <entry id="BANDWIDTH-7-MHZ"><constant>BANDWIDTH_7_MHZ</constant></entry>
91	    <entry>7 MHz</entry>
92	</row><row>
93	    <entry id="BANDWIDTH-8-MHZ"><constant>BANDWIDTH_8_MHZ</constant></entry>
94	    <entry>8 MHz</entry>
95	</row><row>
96	    <entry id="BANDWIDTH-10-MHZ"><constant>BANDWIDTH_10_MHZ</constant></entry>
97	    <entry>10 MHz</entry>
98	</row>
99        </tbody>
100    </tgroup>
101</table>
102
103</section>
104
105<section id="dvb-frontend-parameters">
106<title>frontend parameters</title>
107<para>The kind of parameters passed to the frontend device for tuning depend on
108the kind of hardware you are using.</para>
109<para>The struct <constant>dvb_frontend_parameters</constant> uses an
110union with specific per-system parameters. However, as newer delivery systems
111required more data, the structure size weren't enough to fit, and just
112extending its size would break the existing applications. So, those parameters
113were replaced by the usage of <link linkend="FE_GET_PROPERTY">
114<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> ioctl's. The
115new API is flexible enough to add new parameters to existing delivery systems,
116and to add newer delivery systems.</para>
117<para>So, newer applications should use <link linkend="FE_GET_PROPERTY">
118<constant>FE_GET_PROPERTY/FE_SET_PROPERTY</constant></link> instead, in
119order to be able to support the newer System Delivery like  DVB-S2, DVB-T2,
120DVB-C2, ISDB, etc.</para>
121<para>All kinds of parameters are combined as an union in the FrontendParameters structure:
122<programlisting>
123struct dvb_frontend_parameters {
124	uint32_t frequency;     /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
125				/&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/
126	&fe-spectral-inversion-t; inversion;
127	union {
128		struct dvb_qpsk_parameters qpsk;
129		struct dvb_qam_parameters  qam;
130		struct dvb_ofdm_parameters ofdm;
131		struct dvb_vsb_parameters  vsb;
132	} u;
133};
134</programlisting></para>
135<para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
136frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
137the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
138OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
139</para>
140
141<section id="dvb-qpsk-parameters">
142<title>QPSK parameters</title>
143<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
144<programlisting>
145 struct dvb_qpsk_parameters {
146	 uint32_t        symbol_rate;  /&#x22C6; symbol rate in Symbols per second &#x22C6;/
147	 &fe-code-rate-t;  fec_inner;    /&#x22C6; forward error correction (see above) &#x22C6;/
148 };
149</programlisting>
150</section>
151
152<section id="dvb-qam-parameters">
153<title>QAM parameters</title>
154<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
155<programlisting>
156 struct dvb_qam_parameters {
157	 uint32_t         symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
158	 &fe-code-rate-t;   fec_inner;   /&#x22C6; forward error correction (see above) &#x22C6;/
159	 &fe-modulation-t;  modulation;  /&#x22C6; modulation type (see above) &#x22C6;/
160 };
161</programlisting>
162</section>
163
164<section id="dvb-vsb-parameters">
165<title>VSB parameters</title>
166<para>ATSC frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
167<programlisting>
168struct dvb_vsb_parameters {
169	&fe-modulation-t; modulation;	/&#x22C6; modulation type (see above) &#x22C6;/
170};
171</programlisting>
172</section>
173
174<section id="dvb-ofdm-parameters">
175<title>OFDM parameters</title>
176<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
177<programlisting>
178 struct dvb_ofdm_parameters {
179	 &fe-bandwidth-t;      bandwidth;
180	 &fe-code-rate-t;      code_rate_HP;  /&#x22C6; high priority stream code rate &#x22C6;/
181	 &fe-code-rate-t;      code_rate_LP;  /&#x22C6; low priority stream code rate &#x22C6;/
182	 &fe-modulation-t;     constellation; /&#x22C6; modulation type (see above) &#x22C6;/
183	 &fe-transmit-mode-t;  transmission_mode;
184	 &fe-guard-interval-t; guard_interval;
185	 &fe-hierarchy-t;      hierarchy_information;
186 };
187</programlisting>
188</section>
189</section>
190
191<section id="dvb-frontend-event">
192<title>frontend events</title>
193 <programlisting>
194 struct dvb_frontend_event {
195	 fe_status_t status;
196	 struct dvb_frontend_parameters parameters;
197 };
198</programlisting>
199 </section>
200</section>
201
202<section id="frontend_legacy_fcalls">
203<title>Frontend Legacy Function Calls</title>
204
205<para>Those functions are defined at DVB version 3. The support is kept in
206    the kernel due to compatibility issues only. Their usage is strongly
207    not recommended</para>
208
209<section id="FE_READ_BER">
210<title>FE_READ_BER</title>
211<para>DESCRIPTION
212</para>
213<informaltable><tgroup cols="1"><tbody><row><entry
214 align="char">
215<para>This ioctl call returns the bit error rate for the signal currently
216 received/demodulated by the front-end. For this command, read-only access to
217 the device is sufficient.</para>
218</entry>
219 </row></tbody></tgroup></informaltable>
220<para>SYNOPSIS
221</para>
222<informaltable><tgroup cols="1"><tbody><row><entry
223 align="char">
224<para>int ioctl(int fd, int request = <link linkend="FE_READ_BER">FE_READ_BER</link>,
225 uint32_t &#x22C6;ber);</para>
226</entry>
227 </row></tbody></tgroup></informaltable>
228<para>PARAMETERS
229</para>
230<informaltable><tgroup cols="2"><tbody><row><entry
231 align="char">
232<para>int fd</para>
233</entry><entry
234 align="char">
235<para>File descriptor returned by a previous call to open().</para>
236</entry>
237 </row><row><entry
238 align="char">
239<para>int request</para>
240</entry><entry
241 align="char">
242<para>Equals <link linkend="FE_READ_BER">FE_READ_BER</link> for this command.</para>
243</entry>
244 </row><row><entry
245 align="char">
246<para>uint32_t *ber</para>
247</entry><entry
248 align="char">
249<para>The bit error rate is stored into *ber.</para>
250</entry>
251 </row></tbody></tgroup></informaltable>
252
253&return-value-dvb;
254</section>
255
256<section id="FE_READ_SNR">
257<title>FE_READ_SNR</title>
258
259<para>DESCRIPTION
260</para>
261<informaltable><tgroup cols="1"><tbody><row><entry
262 align="char">
263<para>This ioctl call returns the signal-to-noise ratio for the signal currently received
264 by the front-end. For this command, read-only access to the device is sufficient.</para>
265</entry>
266 </row></tbody></tgroup></informaltable>
267<para>SYNOPSIS
268</para>
269<informaltable><tgroup cols="1"><tbody><row><entry
270 align="char">
271<para>int ioctl(int fd, int request = <link linkend="FE_READ_SNR">FE_READ_SNR</link>, uint16_t
272 &#x22C6;snr);</para>
273</entry>
274 </row></tbody></tgroup></informaltable>
275<para>PARAMETERS
276</para>
277<informaltable><tgroup cols="2"><tbody><row><entry
278 align="char">
279<para>int fd</para>
280</entry><entry
281 align="char">
282<para>File descriptor returned by a previous call to open().</para>
283</entry>
284 </row><row><entry
285 align="char">
286<para>int request</para>
287</entry><entry
288 align="char">
289<para>Equals <link linkend="FE_READ_SNR">FE_READ_SNR</link> for this command.</para>
290</entry>
291 </row><row><entry
292 align="char">
293<para>uint16_t *snr</para>
294</entry><entry
295 align="char">
296<para>The signal-to-noise ratio is stored into *snr.</para>
297</entry>
298 </row></tbody></tgroup></informaltable>
299
300&return-value-dvb;
301</section>
302
303<section id="FE_READ_SIGNAL_STRENGTH">
304<title>FE_READ_SIGNAL_STRENGTH</title>
305<para>DESCRIPTION
306</para>
307<informaltable><tgroup cols="1"><tbody><row><entry
308 align="char">
309<para>This ioctl call returns the signal strength value for the signal currently received
310 by the front-end. For this command, read-only access to the device is sufficient.</para>
311</entry>
312 </row></tbody></tgroup></informaltable>
313<para>SYNOPSIS
314</para>
315<informaltable><tgroup cols="1"><tbody><row><entry
316 align="char">
317<para>int ioctl( int fd, int request =
318 <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link>, uint16_t &#x22C6;strength);</para>
319</entry>
320 </row></tbody></tgroup></informaltable>
321
322<para>PARAMETERS
323</para>
324<informaltable><tgroup cols="2"><tbody><row><entry
325 align="char">
326<para>int fd</para>
327</entry><entry
328 align="char">
329<para>File descriptor returned by a previous call to open().</para>
330</entry>
331 </row><row><entry
332 align="char">
333<para>int request</para>
334</entry><entry
335 align="char">
336<para>Equals <link linkend="FE_READ_SIGNAL_STRENGTH">FE_READ_SIGNAL_STRENGTH</link> for this
337 command.</para>
338</entry>
339 </row><row><entry
340 align="char">
341<para>uint16_t *strength</para>
342</entry><entry
343 align="char">
344<para>The signal strength value is stored into *strength.</para>
345</entry>
346 </row></tbody></tgroup></informaltable>
347
348&return-value-dvb;
349</section>
350
351<section id="FE_READ_UNCORRECTED_BLOCKS">
352<title>FE_READ_UNCORRECTED_BLOCKS</title>
353<para>DESCRIPTION
354</para>
355<informaltable><tgroup cols="1"><tbody><row><entry
356 align="char">
357<para>This ioctl call returns the number of uncorrected blocks detected by the device
358 driver during its lifetime. For meaningful measurements, the increment in block
359 count during a specific time interval should be calculated. For this command,
360 read-only access to the device is sufficient.</para>
361</entry>
362 </row><row><entry
363 align="char">
364<para>Note that the counter will wrap to zero after its maximum count has been
365 reached.</para>
366</entry>
367 </row></tbody></tgroup></informaltable>
368<para>SYNOPSIS
369</para>
370<informaltable><tgroup cols="1"><tbody><row><entry
371 align="char">
372<para>int ioctl( int fd, int request =
373 <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link>, uint32_t &#x22C6;ublocks);</para>
374</entry>
375 </row></tbody></tgroup></informaltable>
376<para>PARAMETERS
377</para>
378<informaltable><tgroup cols="2"><tbody><row><entry
379 align="char">
380<para>int fd</para>
381</entry><entry
382 align="char">
383<para>File descriptor returned by a previous call to open().</para>
384</entry>
385 </row><row><entry
386 align="char">
387<para>int request</para>
388</entry><entry
389 align="char">
390<para>Equals <link linkend="FE_READ_UNCORRECTED_BLOCKS">FE_READ_UNCORRECTED_BLOCKS</link> for this
391 command.</para>
392</entry>
393 </row><row><entry
394 align="char">
395<para>uint32_t *ublocks</para>
396</entry><entry
397 align="char">
398<para>The total number of uncorrected blocks seen by the driver
399 so far.</para>
400</entry>
401 </row></tbody></tgroup></informaltable>
402
403&return-value-dvb;
404</section>
405
406<section id="FE_SET_FRONTEND">
407<title>FE_SET_FRONTEND</title>
408<para>DESCRIPTION
409</para>
410<informaltable><tgroup cols="1"><tbody><row><entry
411 align="char">
412<para>This ioctl call starts a tuning operation using specified parameters. The result
413 of this call will be successful if the parameters were valid and the tuning could
414 be initiated. The result of the tuning operation in itself, however, will arrive
415 asynchronously as an event (see documentation for <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> and
416 FrontendEvent.) If a new <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> operation is initiated before
417 the previous one was completed, the previous operation will be aborted in favor
418 of the new one. This command requires read/write access to the device.</para>
419</entry>
420 </row></tbody></tgroup></informaltable>
421
422<para>SYNOPSIS
423</para>
424<informaltable><tgroup cols="1"><tbody><row><entry
425 align="char">
426<para>int ioctl(int fd, int request = <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link>,
427 struct dvb_frontend_parameters &#x22C6;p);</para>
428</entry>
429 </row></tbody></tgroup></informaltable>
430<para>PARAMETERS
431</para>
432<informaltable><tgroup cols="2"><tbody><row><entry
433 align="char">
434<para>int fd</para>
435</entry><entry
436 align="char">
437<para>File descriptor returned by a previous call to open().</para>
438</entry>
439 </row><row><entry
440 align="char">
441<para>int request</para>
442</entry><entry
443 align="char">
444<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
445</entry>
446 </row><row><entry
447 align="char">
448<para>struct
449 dvb_frontend_parameters
450 *p</para>
451</entry><entry
452 align="char">
453<para>Points to parameters for tuning operation.</para>
454</entry>
455 </row></tbody></tgroup></informaltable>
456
457&return-value-dvb;
458<informaltable><tgroup cols="2"><tbody><row><entry
459 align="char">
460<para>EINVAL</para>
461</entry><entry
462 align="char">
463<para>Maximum supported symbol rate reached.</para>
464</entry>
465</row></tbody></tgroup></informaltable>
466</section>
467
468<section id="FE_GET_FRONTEND">
469<title>FE_GET_FRONTEND</title>
470<para>DESCRIPTION
471</para>
472<informaltable><tgroup cols="1"><tbody><row><entry
473 align="char">
474<para>This ioctl call queries the currently effective frontend parameters. For this
475 command, read-only access to the device is sufficient.</para>
476</entry>
477 </row></tbody></tgroup></informaltable>
478
479<para>SYNOPSIS
480</para>
481<informaltable><tgroup cols="1"><tbody><row><entry
482 align="char">
483<para>int ioctl(int fd, int request = <link linkend="FE_GET_FRONTEND">FE_GET_FRONTEND</link>,
484 struct dvb_frontend_parameters &#x22C6;p);</para>
485</entry>
486 </row></tbody></tgroup></informaltable>
487
488<para>PARAMETERS
489</para>
490<informaltable><tgroup cols="2"><tbody><row><entry
491 align="char">
492<para>int fd</para>
493</entry><entry
494 align="char">
495<para>File descriptor returned by a previous call to open().</para>
496</entry>
497 </row><row><entry
498 align="char">
499<para>int request</para>
500</entry><entry
501 align="char">
502<para>Equals <link linkend="FE_SET_FRONTEND">FE_SET_FRONTEND</link> for this command.</para>
503</entry>
504 </row><row><entry
505 align="char">
506<para>struct
507 dvb_frontend_parameters
508 *p</para>
509</entry><entry
510 align="char">
511<para>Points to parameters for tuning operation.</para>
512</entry>
513 </row></tbody></tgroup></informaltable>
514
515&return-value-dvb;
516<informaltable><tgroup cols="2"><tbody><row><entry
517 align="char">
518<para>EINVAL</para>
519</entry><entry
520 align="char">
521<para>Maximum supported symbol rate reached.</para>
522</entry>
523 </row></tbody></tgroup></informaltable>
524
525</section>
526
527<section id="FE_GET_EVENT">
528<title>FE_GET_EVENT</title>
529<para>DESCRIPTION
530</para>
531<informaltable><tgroup cols="1"><tbody><row><entry
532 align="char">
533<para>This ioctl call returns a frontend event if available. If an event is not
534 available, the behavior depends on whether the device is in blocking or
535 non-blocking mode. In the latter case, the call fails immediately with errno
536 set to EWOULDBLOCK. In the former case, the call blocks until an event
537 becomes available.</para>
538</entry>
539 </row><row><entry
540 align="char">
541<para>The standard Linux poll() and/or select() system calls can be used with the
542 device file descriptor to watch for new events. For select(), the file descriptor
543 should be included in the exceptfds argument, and for poll(), POLLPRI should
544 be specified as the wake-up condition. Since the event queue allocated is
545 rather small (room for 8 events), the queue must be serviced regularly to avoid
546 overflow. If an overflow happens, the oldest event is discarded from the queue,
547 and an error (EOVERFLOW) occurs the next time the queue is read. After
548 reporting the error condition in this fashion, subsequent
549 <link linkend="FE_GET_EVENT">FE_GET_EVENT</link>
550 calls will return events from the queue as usual.</para>
551</entry>
552 </row><row><entry
553 align="char">
554<para>For the sake of implementation simplicity, this command requires read/write
555 access to the device.</para>
556</entry>
557 </row></tbody></tgroup></informaltable>
558
559<para>SYNOPSIS
560</para>
561<informaltable><tgroup cols="1"><tbody><row><entry
562 align="char">
563<para>int ioctl(int fd, int request = QPSK_GET_EVENT,
564 struct dvb_frontend_event &#x22C6;ev);</para>
565</entry>
566 </row></tbody></tgroup></informaltable>
567
568<para>PARAMETERS
569</para>
570<informaltable><tgroup cols="2"><tbody><row><entry
571 align="char">
572<para>int fd</para>
573</entry><entry
574 align="char">
575<para>File descriptor returned by a previous call to open().</para>
576</entry>
577 </row><row><entry
578 align="char">
579<para>int request</para>
580</entry><entry
581 align="char">
582<para>Equals <link linkend="FE_GET_EVENT">FE_GET_EVENT</link> for this command.</para>
583</entry>
584 </row><row><entry
585 align="char">
586<para>struct
587 dvb_frontend_event
588 *ev</para>
589</entry><entry
590 align="char">
591<para>Points to the location where the event,</para>
592</entry>
593 </row><row><entry
594 align="char">
595</entry><entry
596 align="char">
597<para>if any, is to be stored.</para>
598</entry>
599 </row></tbody></tgroup></informaltable>
600
601&return-value-dvb;
602<informaltable><tgroup cols="2"><tbody><row><entry
603 align="char">
604<para>EWOULDBLOCK</para>
605</entry><entry
606 align="char">
607<para>There is no event pending, and the device is in
608 non-blocking mode.</para>
609</entry>
610 </row><row><entry
611 align="char">
612<para>EOVERFLOW</para>
613</entry><entry
614 align="char">
615<para>Overflow in event queue - one or more events were lost.</para>
616</entry>
617</row></tbody></tgroup></informaltable>
618</section>
619
620<section id="FE_DISHNETWORK_SEND_LEGACY_CMD">
621	<title>FE_DISHNETWORK_SEND_LEGACY_CMD</title>
622<para>DESCRIPTION</para>
623<informaltable><tgroup cols="1"><tbody><row>
624<entry align="char">
625<para>WARNING: This is a very obscure legacy command, used only at stv0299 driver. Should not be used on newer drivers.</para>
626<para>It provides a non-standard method for selecting Diseqc voltage on the frontend, for Dish Network legacy switches.</para>
627<para>As support for this ioctl were added in 2004, this means that such dishes were already legacy in 2004.</para>
628</entry>
629</row></tbody></tgroup></informaltable>
630
631<para>SYNOPSIS</para>
632<informaltable><tgroup cols="1"><tbody><row>
633<entry align="char">
634<para>int ioctl(int fd, int request =
635	<link linkend="FE_DISHNETWORK_SEND_LEGACY_CMD">FE_DISHNETWORK_SEND_LEGACY_CMD</link>, unsigned long cmd);</para>
636</entry>
637</row></tbody></tgroup></informaltable>
638
639<para>PARAMETERS</para>
640<informaltable><tgroup cols="2"><tbody><row>
641<entry align="char">
642	<para>unsigned long cmd</para>
643</entry>
644<entry align="char">
645<para>
646sends the specified raw cmd to the dish via DISEqC.
647</para>
648</entry>
649 </row></tbody></tgroup></informaltable>
650
651&return-value-dvb;
652</section>
653
654</section>
655