type dvb_frontend_parameters

6.1.1.3. 前端参数

传递给前端设备用于调谐的参数类型取决于您使用的硬件类型。

结构体 dvb_frontend_parameters 使用一个包含特定系统参数的联合。然而,由于较新的传输系统需要更多数据,该结构的大小不足以容纳,并且仅仅扩展其大小会破坏现有的应用程序。因此,这些参数被 FE_GET_PROPERTY/FE_SET_PROPERTY ioctl 的使用所取代。新的 API 足够灵活,可以向现有的传输系统添加新参数,并添加更新的传输系统。

因此,为了能够支持像 DVB-S2、DVB-T2、DVB-C2、ISDB 等更新的系统传输,较新的应用程序应该改用 FE_GET_PROPERTY/FE_SET_PROPERTY

所有类型的参数都组合在 dvb_frontend_parameters 结构体中作为一个联合。

struct dvb_frontend_parameters {
    uint32_t frequency;     /* (absolute) frequency in Hz for QAM/OFDM */
                /* intermediate frequency in kHz for QPSK */
    fe_spectral_inversion_t inversion;
    union {
        struct dvb_qpsk_parameters qpsk;
        struct dvb_qam_parameters  qam;
        struct dvb_ofdm_parameters ofdm;
        struct dvb_vsb_parameters  vsb;
    } u;
};

对于 QPSK 前端,frequency 字段指定中频,即有效添加到 LNB 本振频率(LOF)的偏移量。中频必须以 kHz 为单位指定。对于 QAM 和 OFDM 前端,frequency 指定绝对频率,单位为 Hz。

type dvb_qpsk_parameters

6.1.1.3.1. QPSK 参数

对于卫星 QPSK 前端,您必须使用 dvb_qpsk_parameters 结构体。

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) */
};
type dvb_qam_parameters

6.1.1.3.2. QAM 参数

对于有线 QAM 前端,您使用 dvb_qam_parameters 结构体。

struct dvb_qam_parameters {
    uint32_t         symbol_rate; /* symbol rate in Symbols per second */
    fe_code_rate_t   fec_inner;   /* forward error correction (see above) */
    fe_modulation_t  modulation;  /* modulation type (see above) */
};
type dvb_vsb_parameters

6.1.1.3.3. VSB 参数

ATSC 前端由 dvb_vsb_parameters 结构体支持。

struct dvb_vsb_parameters {
    fe_modulation_t modulation; /* modulation type (see above) */
};
type dvb_ofdm_parameters

6.1.1.3.4. OFDM 参数

DVB-T 前端由 dvb_ofdm_parameters 结构体支持。

struct dvb_ofdm_parameters {
    fe_bandwidth_t      bandwidth;
    fe_code_rate_t      code_rate_HP;  /* high priority stream code rate */
    fe_code_rate_t      code_rate_LP;  /* low priority stream code rate */
    fe_modulation_t     constellation; /* modulation type (see above) */
    fe_transmit_mode_t  transmission_mode;
    fe_guard_interval_t guard_interval;
    fe_hierarchy_t      hierarchy_information;
};