diff options
Diffstat (limited to 'dvb-spec/dvbapi/frontend.tex')
-rw-r--r-- | dvb-spec/dvbapi/frontend.tex | 57 |
1 files changed, 33 insertions, 24 deletions
diff --git a/dvb-spec/dvbapi/frontend.tex b/dvb-spec/dvbapi/frontend.tex index bb177df1b..cbd646b93 100644 --- a/dvb-spec/dvbapi/frontend.tex +++ b/dvb-spec/dvbapi/frontend.tex @@ -7,7 +7,7 @@ Data types and and ioctl definitions can be accessed by including DVB frontends come in three varieties: DVB-S (satellite), DVB-C (cable) and DVB-T (terrestrial). Transmission via the internet (DVB-IP) is -not handled by this API. +not yet handled by this API but a future extension is possible. For DVB-S the frontend device also supports satellite equipment control (SEC) via DiSEqC and V-SEC protocols. The DiSEqC (digital SEC) specification is available from Eutelsat \texttt{http://www.eutelsat.org/}. @@ -20,7 +20,7 @@ in which case there exists no frontend device. \devsubsubsec{frontend type} \label{frontendtype} -For historic reasons frontend types are named after the +For historical reasons frontend types are named after the type of modulation used in transmission. \begin{verbatim} @@ -117,7 +117,9 @@ struct dvb_diseqc_slave_reply { \label{secvoltage} The voltage is usually used with non-DiSEqC capable LNBs to -switch the polarzation (horizontal/vertical). +switch the polarzation (horizontal/vertical). +When using DiSEqC epuipment this voltage has to be switched consistently +to the DiSEqC commands as described in the DiSEqC spec. \begin{verbatim} typedef enum fe_sec_voltage { @@ -131,6 +133,8 @@ typedef enum fe_sec_voltage { The continous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the high/low band of a dual-band LNB. +When using DiSEqC epuipment this voltage has to be switched consistently +to the DiSEqC commands as described in the DiSEqC spec. \begin{verbatim} typedef enum fe_sec_tone_mode { @@ -144,6 +148,8 @@ typedef enum fe_sec_tone_mode { The 22KHz tone burst is usually used with non-DiSEqC capable switches to select between two connected LNBs/satellites. +When using DiSEqC epuipment this voltage has to be switched consistently +to the DiSEqC commands as described in the DiSEqC spec. \begin{verbatim} typedef enum fe_sec_mini_cmd { @@ -193,14 +199,15 @@ struct dvb_frontend_parameters { }; \end{verbatim} -For satellite QPSK frontends you have to use QPSKParameters defined by +For satellite QPSK frontends you have to use the \verb|QPSKParameters| member +defined by \begin{verbatim} struct dvb_qpsk_parameters { uint32_t symbol_rate; /* symbol rate in Symbols per second */ fe_code_rate_t fec_inner; /* forward error correction (see above) */ }; \end{verbatim} -for cable QAM frontend you use the QAMParameters structure +for cable QAM frontend you use the \verb|QAMParameters| structure \begin{verbatim} struct dvb_qam_parameters { uint32_t symbol_rate; /* symbol rate in Symbols per second */ @@ -208,7 +215,7 @@ struct dvb_qam_parameters { fe_modulation_t modulation; /* modulation type (see above) */ }; \end{verbatim} -DVB-T frontends are supported by the OFDMParamters structure +DVB-T frontends are supported by the \verb|OFDMParamters| structure \begin{verbatim} struct dvb_ofdm_parameters { fe_bandwidth_t bandwidth; @@ -221,9 +228,9 @@ struct dvb_ofdm_parameters { }; \end{verbatim} -In the case of QPSK frontends the Frequency field specifies the intermediate -frequency, i.e. the offset which is effectively added to the local oscillator -frequency (LOF) of the LNB. +In the case of QPSK frontends the \verb|Frequency| field specifies the +intermediate frequency, i.e. the offset which is effectively added to the +local oscillator frequency (LOF) of the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and OFDM frontends the Frequency specifies the absolute frequency and is given in Hz. @@ -237,11 +244,11 @@ typedef enum fe_spectral_inversion { } fe_spectral_inversion_t; \end{verbatim} It indicates if spectral inversion should be presumed or not. -In the automatic setting (\verb INVERSION\_AUTO) the hardware will +In the automatic setting (\verb|INVERSION_AUTO|) the hardware will try to figure out the correct setting by itself. \noindent -The possible values for the FEC\_inner field are +The possible values for the \verb|FEC_inner| field are \begin{verbatim} typedef enum fe_code_rate { FEC_NONE = 0, @@ -256,7 +263,7 @@ typedef enum fe_code_rate { FEC_AUTO } fe_code_rate_t; \end{verbatim} -which correspond to error correction rates of $1\over 2$, $2\over 3$, etc., +which correspond to error correction rates of $1/2$, $2/3$, etc., no error correction or auto detection. \noindent @@ -546,15 +553,16 @@ by the driver so far. EFAULT& info points to invalid address.\\ } -\ifunction{FE\_DISEC\_RESET\_OVERLOAD}{ - int ioctl(int fd, int request = FE\_DISEC\_RESET\_OVERLOAD);}{ +\ifunction{FE\_DISEQC\_RESET\_OVERLOAD}{ + int ioctl(int fd, int request = FE\_DISEQC\_RESET\_OVERLOAD);}{ If the bus has been automatically powered off due to power overload, this ioctl call restores the power to the bus. The call requires read/write access to the device. This call has no effect if the device is manually powered off. + Not all DVB adapters support this ioctl. }{ int fd & File descriptor returned by a previous call to open().\\ - int request & Equals FE\_DISEC\_RESET\_OVERLOAD for this command.\\ + int request & Equals FE\_DISEQC\_RESET\_OVERLOAD for this command.\\ }{ EBADF & fd is not a valid file descriptor.\\ EPERM & Permission denied (needs read/write access).\\ @@ -562,12 +570,12 @@ by the driver so far. } -\ifunction{FE\_DISEC\_SEND\_MASTER\_CMD}{ -int ioctl(int fd, int request = FE\_DISEC\_SEND\_MASTER\_CMD, struct dvb\_diseqc\_master\_cmd *cmd);}{ +\ifunction{FE\_DISEQC\_SEND\_MASTER\_CMD}{ +int ioctl(int fd, int request = FE\_DISEQC\_SEND\_MASTER\_CMD, struct dvb\_diseqc\_master\_cmd *cmd);}{ This ioctl call is used to send a a DiSEqC command.\\ }{ int fd & File descriptor returned by a previous call to open().\\ - int request & Equals FE\_DISEC\_SEND\_MASTER\_CMD for this command.\\ + int request & Equals FE\_DISEQC\_SEND\_MASTER\_CMD for this command.\\ struct dvb\_diseqc\_master\_cmd *cmd & Pointer to the command to be transmitted.\\ }{ EBADF & fd is not a valid file descriptor.\\ @@ -577,12 +585,12 @@ int ioctl(int fd, int request = FE\_DISEC\_SEND\_MASTER\_CMD, struct dvb\_diseqc EINTERNAL & Internal error in the device driver.\\ } -\ifunction{FE\_DISEC\_RECV\_SLAVE\_REPLY}{ -int ioctl(int fd, int request = FE\_DISEC\_RECV\_SLAVE\_REPLY, struct dvb\_diseqc\_slave\_reply *reply);}{ +\ifunction{FE\_DISEQC\_RECV\_SLAVE\_REPLY}{ +int ioctl(int fd, int request = FE\_DISEQC\_RECV\_SLAVE\_REPLY, struct dvb\_diseqc\_slave\_reply *reply);}{ This ioctl call is used to receive reply to a DiSEqC 2.0 command.\\ }{ int fd & File descriptor returned by a previous call to open().\\ - int request & Equals FE\_DISEC\_RECV\_SLAVE\_REPLY for this command.\\ + int request & Equals FE\_DISEQC\_RECV\_SLAVE\_REPLY for this command.\\ struct dvb\_diseqc\_slave\_reply *reply & Pointer to the command to be received.\\ }{ EBADF & fd is not a valid file descriptor.\\ @@ -592,12 +600,12 @@ This ioctl call is used to receive reply to a DiSEqC 2.0 command.\\ EINTERNAL & Internal error in the device driver.\\ } -\ifunction{FE\_DISEC\_SEND\_BURST}{ -int ioctl(int fd, int request = FE\_DISEC\_SEND\_BURST, fe\_sec\_mini\_cmd\_t burst);}{ +\ifunction{FE\_DISEQC\_SEND\_BURST}{ +int ioctl(int fd, int request = FE\_DISEQC\_SEND\_BURST, fe\_sec\_mini\_cmd\_t burst);}{ This ioctl call is used to send a 22KHz tone burst.\\ }{ int fd & File descriptor returned by a previous call to open().\\ - int request & Equals FE\_DISEC\_SEND\_BURST for this command.\\ + int request & Equals FE\_DISEQC\_SEND\_BURST for this command.\\ fe\_sec\_mini\_cmd\_t burst & burst A or B.\\ }{ EBADF & fd is not a valid file descriptor.\\ @@ -646,6 +654,7 @@ int ioctl(int fd, int request = FE\_ENABLE\_HIGH\_LNB\_VOLTAGE, int high);}{ If high != 0 enables slightly higher voltages instead of 13/18V (to compensate for long cables). This call requires read/write permissions. +Not all DVB adapters support this ioctl. }{ int fd & File descriptor returned by a previous call to open().\\ int request & Equals FE\_SET\_VOLTAGE for this command.\\ |