2.3.6. 前端 uAPI 数据类型¶
-
enum fe_caps¶
前端能力
常量
FE_IS_STUPID前端存在问题,无法报告其功能。
FE_CAN_INVERSION_AUTO可以自动检测频率频谱反转
FE_CAN_FEC_1_2支持 FEC 1/2
FE_CAN_FEC_2_3支持 FEC 2/3
FE_CAN_FEC_3_4支持 FEC 3/4
FE_CAN_FEC_4_5支持 FEC 4/5
FE_CAN_FEC_5_6支持 FEC 5/6
FE_CAN_FEC_6_7支持 FEC 6/7
FE_CAN_FEC_7_8支持 FEC 7/8
FE_CAN_FEC_8_9支持 FEC 8/9
FE_CAN_FEC_AUTO可以自动检测 FEC
FE_CAN_QPSK支持 QPSK 调制
FE_CAN_QAM_16支持 16-QAM 调制
FE_CAN_QAM_32支持 32-QAM 调制
FE_CAN_QAM_64支持 64-QAM 调制
FE_CAN_QAM_128支持 128-QAM 调制
FE_CAN_QAM_256支持 256-QAM 调制
FE_CAN_QAM_AUTO可以自动检测 QAM 调制
FE_CAN_TRANSMISSION_MODE_AUTO可以自动检测传输模式
FE_CAN_BANDWIDTH_AUTO可以自动检测带宽
FE_CAN_GUARD_INTERVAL_AUTO可以自动检测保护间隔
FE_CAN_HIERARCHY_AUTO可以自动检测层级
FE_CAN_8VSB支持 8-VSB 调制
FE_CAN_16VSB支持 16-VSB 调制
FE_HAS_EXTENDED_CAPS未使用
FE_CAN_MULTISTREAM支持多流过滤
FE_CAN_TURBO_FEC支持“turbo FEC”调制
FE_CAN_2G_MODULATION支持“第二代”调制,例如 DVB-S2、DVB-T2、DVB-C2
FE_NEEDS_BENDING未使用
FE_CAN_RECOVER可以自动从电缆拔出中恢复
FE_CAN_MUTE_TS可以停止伪造的 TS 数据输出
-
struct dvb_frontend_info¶
前端属性和功能
定义:
struct dvb_frontend_info {
char name[128];
enum fe_type type;
__u32 frequency_min;
__u32 frequency_max;
__u32 frequency_stepsize;
__u32 frequency_tolerance;
__u32 symbol_rate_min;
__u32 symbol_rate_max;
__u32 symbol_rate_tolerance;
__u32 notifier_delay;
enum fe_caps caps;
};
成员
name前端的名称
type已弃用。 不应在现代程序中使用,因为前端可能具有多个类型。 为了获得给定前端的支持类型,请改用
DTV_ENUM_DELSYS。frequency_min前端支持的最小频率。
frequency_max前端支持的最小频率。
frequency_stepsize所有频率都是该值的倍数。
frequency_tolerance频率容差。
symbol_rate_min最小符号率,以波特为单位(用于电缆/卫星系统)。
symbol_rate_max最大符号率,以波特为单位(用于电缆/卫星系统)。
symbol_rate_tolerance最大符号率容差,以 ppm 为单位(用于电缆/卫星系统)。
notifier_delay已弃用。 任何驱动程序都不使用。
caps前端支持的功能,如
enum fe_caps中指定。
描述
-
struct dvb_diseqc_master_cmd¶
DiSEqC 主命令
定义:
struct dvb_diseqc_master_cmd {
__u8 msg[6];
__u8 msg_len;
};
成员
msg要发送的 DiSEqC 消息。 它包含一个 3 字节的标头,其中包含:成帧 + 地址 + 命令,以及最多 3 个字节数据的可选参数。
msg_lenDiSEqC 消息的长度。 有效值为 3 到 6。
描述
查看 http://www.eutelsat.org/ 上提供的 DiSEqC 总线规范,了解可以使用的消息。
-
struct dvb_diseqc_slave_reply¶
DiSEqC 接收的数据
定义:
struct dvb_diseqc_slave_reply {
__u8 msg[4];
__u8 msg_len;
int timeout;
};
成员
msgDiSEqC 消息缓冲区,用于存储通过 DiSEqC 接收的消息。 它包含一个字节的标头,其中包含:成帧和最多 3 个字节数据的可选参数。
msg_lenDiSEqC 消息的长度。 有效值为 0 到 4,其中 0 表示没有消息。
timeout如果在超时 ms 后没有收到消息,则从 ioctl 返回并显示错误代码。
描述
查看 http://www.eutelsat.org/ 上提供的 DiSEqC 总线规范,了解可以使用的消息。
-
enum fe_sec_voltage¶
用于馈送 LNBf 的直流电压
常量
SEC_VOLTAGE_13向 LNBf 输出 13V
SEC_VOLTAGE_18向 LNBf 输出 18V
SEC_VOLTAGE_OFF不要用直流电压馈送 LNBf
-
enum fe_sec_tone_mode¶
要发送到 LNBf 的音调类型。
常量
SEC_TONE_ON向天线发送 22kHz 音调突发。
SEC_TONE_OFF不要向天线发送 22kHz 音调(除非调用
FE_DISEQC_*ioctl)。
-
enum fe_sec_mini_cmd¶
要发送的微突发类型
常量
SEC_MINI_A发送微型 DiSEqC 22kHz “0”音调突发以选择卫星 A
SEC_MINI_B发送微型 DiSEqC 22kHz “1”数据突发以选择卫星 B
-
enum fe_status¶
枚举可能的前端状态。
常量
FE_NONE前端没有任何类型的锁定。 这是初始前端状态
FE_HAS_SIGNAL已找到高于噪声水平的内容。
FE_HAS_CARRIER已找到信号。
FE_HAS_VITERBIFEC 内部编码(Viterbi、LDPC 或其他内部代码)是稳定的。
FE_HAS_SYNC已找到同步字节。
FE_HAS_LOCK数字电视已锁定,一切正常。
FE_TIMEDOUT在最近大约 2 秒内进行锁定。
FE_REINIT前端已重新初始化,建议应用程序重置 DiSEqC、音调和参数。
-
enum fe_spectral_inversion¶
反转频带的类型
常量
INVERSION_OFF不进行频谱反转。
INVERSION_ON进行频谱反转。
INVERSION_AUTO自动检测频谱反转。
描述
此参数指示是否应假定频谱反转。 在自动设置 (INVERSION_AUTO) 中,硬件将尝试自行确定正确的设置。 如果硬件不支持,dvb_frontend 将尝试先在载波处锁定,然后关闭反转。 如果失败,它将尝试启用反转。
-
enum fe_code_rate¶
前向纠错 (FEC) 的类型
常量
FEC_NONE无前向纠错码
FEC_1_2前向纠错码 1/2
FEC_2_3前向纠错码 2/3
FEC_3_4前向纠错码 3/4
FEC_4_5前向纠错码 4/5
FEC_5_6前向纠错码 5/6
FEC_6_7前向纠错码 6/7
FEC_7_8前向纠错码 7/8
FEC_8_9前向纠错码 8/9
FEC_AUTO自动检测纠错码
FEC_3_5前向纠错码 3/5
FEC_9_10前向纠错码 9/10
FEC_2_5前向纠错码 2/5
FEC_1_3前向纠错码 1/3
FEC_1_4前向纠错码 1/4
FEC_5_9前向纠错码 5/9
FEC_7_9前向纠错码 7/9
FEC_8_15前向纠错码 8/15
FEC_11_15前向纠错码 11/15
FEC_13_18前向纠错码 13/18
FEC_9_20前向纠错码 9/20
FEC_11_20前向纠错码 11/20
FEC_23_36前向纠错码 23/36
FEC_25_36前向纠错码 25/36
FEC_13_45前向纠错码 13/45
FEC_26_45前向纠错码 26/45
FEC_28_45前向纠错码 28/45
FEC_32_45前向纠错码 32/45
FEC_77_90前向纠错码 77/90
FEC_11_45前向纠错码 11/45
FEC_4_15前向纠错码 4/15
FEC_14_45前向纠错码 14/45
FEC_7_15前向纠错码 7/15
描述
请注意,并非所有 FEC 类型都受给定标准支持。
-
enum fe_modulation¶
调制/星座类型
常量
QPSKQPSK 调制
QAM_1616-QAM 调制
QAM_3232-QAM 调制
QAM_6464-QAM 调制
QAM_128128-QAM 调制
QAM_256256-QAM 调制
QAM_AUTO自动检测 QAM 调制
VSB_88-VSB 调制
VSB_1616-VSB 调制
PSK_88-PSK 调制
APSK_1616-APSK 调制
APSK_3232-APSK 调制
DQPSKDQPSK 调制
QAM_4_NR4-QAM-NR 调制
QAM_10241024-QAM 调制
QAM_40964096-QAM 调制
APSK_8_L8APSK-L 调制
APSK_16_L16APSK-L 调制
APSK_32_L32APSK-L 调制
APSK_6464APSK 调制
APSK_64_L64APSK-L 调制
描述
请注意,并非所有调制都受给定标准支持。
-
enum fe_transmit_mode¶
传输模式
常量
TRANSMISSION_MODE_2K传输模式 2K
TRANSMISSION_MODE_8K传输模式 8K
TRANSMISSION_MODE_AUTO自动检测传输模式。 硬件将尝试找到正确的 FFT 大小(如果能够)以填充缺失的参数。
TRANSMISSION_MODE_4K传输模式 4K
TRANSMISSION_MODE_1K传输模式 1K
TRANSMISSION_MODE_16K传输模式 16K
TRANSMISSION_MODE_32K传输模式 32K
TRANSMISSION_MODE_C1单载波 (C=1) 传输模式(仅限 DTMB)
TRANSMISSION_MODE_C3780多载波 (C=3780) 传输模式(仅限 DTMB)
描述
请注意,并非所有传输模式都受给定标准支持。
-
enum fe_guard_interval¶
保护间隔
常量
GUARD_INTERVAL_1_32保护间隔 1/32
GUARD_INTERVAL_1_16保护间隔 1/16
GUARD_INTERVAL_1_8保护间隔 1/8
GUARD_INTERVAL_1_4保护间隔 1/4
GUARD_INTERVAL_AUTO自动检测保护间隔
GUARD_INTERVAL_1_128保护间隔 1/128
GUARD_INTERVAL_19_128保护间隔 19/128
GUARD_INTERVAL_19_256保护间隔 19/256
GUARD_INTERVAL_PN420PN 长度 420 (1/4)
GUARD_INTERVAL_PN595PN 长度 595 (1/6)
GUARD_INTERVAL_PN945PN 长度 945 (1/9)
GUARD_INTERVAL_1_64保护间隔 1/64
描述
请注意,并非所有保护间隔都受给定标准支持。
-
enum fe_hierarchy¶
层级
常量
HIERARCHY_NONE无层级
HIERARCHY_1层级 1
HIERARCHY_2层级 2
HIERARCHY_4层级 4
HIERARCHY_AUTO自动检测层级(如果支持)
描述
请注意,并非所有层级类型都受给定标准支持。
-
enum fe_interleaving¶
交织
常量
INTERLEAVING_NONE无交织。
INTERLEAVING_AUTO自动检测交织。
INTERLEAVING_240240 个符号的交织。
INTERLEAVING_720720 个符号的交织。
描述
请注意,目前只有 DTMB 使用它。
-
enum fe_pilot¶
导频音的类型
常量
PILOT_ON启用导频音
PILOT_OFF禁用导频音
PILOT_AUTO自动检测导频音
-
enum fe_rolloff¶
滚降因子
常量
ROLLOFF_35滚降因子:α=35%
ROLLOFF_20滚降因子:α=20%
ROLLOFF_25滚降因子:α=25%
ROLLOFF_AUTO自动检测滚降因子。
ROLLOFF_15滚降因子:α=15%
ROLLOFF_10滚降因子:α=10%
ROLLOFF_5滚降因子:α=5%
描述
-
enum fe_delivery_system¶
传输系统的类型
常量
SYS_UNDEFINED未定义的标准。 通常,表示错误
SYS_DVBC_ANNEX_A有线电视:DVB-C,遵循 ITU-T J.83 附件 A 规范
SYS_DVBC_ANNEX_B有线电视:DVB-C,遵循 ITU-T J.83 附件 B 规范 (ClearQAM)
SYS_DVBT地面电视:DVB-T
SYS_DSS卫星电视:DSS(未完全支持)
SYS_DVBS卫星电视:DVB-S
SYS_DVBS2卫星电视:DVB-S2 和 DVB-S2X
SYS_DVBH地面电视(移动):DVB-H(标准已弃用)
SYS_ISDBT地面电视:ISDB-T
SYS_ISDBS卫星电视:ISDB-S
SYS_ISDBC有线电视:ISDB-C(尚无驱动程序)
SYS_ATSC地面电视:ATSC
SYS_ATSCMH地面电视(移动):ATSC-M/H
SYS_DTMB地面电视:DTMB
SYS_CMMB地面电视(移动):CMMB(未完全支持)
SYS_DAB数字音频:DAB(未完全支持)
SYS_DVBT2地面电视:DVB-T2
SYS_TURBO卫星电视:DVB-S Turbo
SYS_DVBC_ANNEX_C有线电视:DVB-C,遵循 ITU-T J.83 附件 C 规范
SYS_DVBC2有线电视:DVB-C2
-
enum atscmh_sccc_block_mode¶
串行级联卷积码块模式的类型。
常量
ATSCMH_SCCC_BLK_SEP分离的 SCCC:SCCC 外部代码模式应针对每个组区域(A、B、C、D)单独设置
ATSCMH_SCCC_BLK_COMB组合的 SCCC:所有四个区域应具有相同的 SCCC 外部代码模式。
ATSCMH_SCCC_BLK_RES保留。 不应使用。
-
enum atscmh_sccc_code_mode¶
串行级联卷积码率的类型。
常量
ATSCMH_SCCC_CODE_HLFSCCC 块的外部代码率是 1/2 速率。
ATSCMH_SCCC_CODE_QTRSCCC 块的外部代码率是 1/4 速率。
ATSCMH_SCCC_CODE_RES保留。 不应使用。
-
enum atscmh_rs_frame_ensemble¶
里德-所罗门 (RS) 帧集合。
常量
ATSCMH_RSFRAME_ENS_PRI主要集合。
ATSCMH_RSFRAME_ENS_SEC次要集合。
-
enum atscmh_rs_frame_mode¶
里德-所罗门 (RS) 帧模式。
常量
ATSCMH_RSFRAME_PRI_ONLY单帧:所有组区域只有一个主要 RS 帧。
ATSCMH_RSFRAME_PRI_SEC双帧:有两个单独的 RS 帧:组区域 A 和 B 的主要 RS 帧,以及组区域 C 和 D 的次要 RS 帧。
ATSCMH_RSFRAME_RES保留。 不应使用。
-
enum atscmh_rs_code_mode¶
ATSC-M/H 里德-所罗门模式
常量
ATSCMH_RSCODE_211_187里德-所罗门代码 (211,187)。
ATSCMH_RSCODE_223_187里德-所罗门代码 (223,187)。
ATSCMH_RSCODE_235_187里德-所罗门代码 (235,187)。
ATSCMH_RSCODE_RES保留。 不应使用。
-
enum fecap_scale_params¶
质量参数的比例类型。
常量
FE_SCALE_NOT_AVAILABLE该 QoS 度量不可用。 这可能表示临时或永久情况。
FE_SCALE_DECIBEL刻度以 0.001 dB 为步长测量,通常用于信号测量。
FE_SCALE_RELATIVE刻度是相对百分比度量,范围从 0 (0%) 到 0xffff (100%)。
FE_SCALE_COUNTER刻度计算事件的发生次数,例如位错误、块错误、经过时间。
-
struct dtv_stats¶
用于读取 DTV 状态属性
定义:
struct dtv_stats {
__u8 scale;
union {
__u64 uvalue;
__s64 svalue;
};
};
成员
scale填充
enum fecap_scale_params- 该参数的使用比例{unnamed_union}anonymous
uvalue度量的无符号整数值,当 scale 为
FE_SCALE_RELATIVE或FE_SCALE_COUNTER时使用。svalue度量的整数值,对于
FE_SCALE_DECIBEL,用于 dB 度量。 单位为 0.001 dB。
描述
对于大多数传输系统,这将为每个参数返回一个值。
但是应该注意的是,像 ISDB 这样的新 OFDM 传输系统可以为每组载波使用不同的调制类型。 在此类标准上,最多可以提供 8 组统计数据,每组载波一组(在 ISDB 上称为“层”)。
为了与其他传输系统保持一致,第一个值是指整组载波(“全局”)。
当硬件未提供整组载波或来自一个特定层的值时,scale 应使用值 FE_SCALE_NOT_AVAILABLE。
len 应填充为最新的已填充状态 + 1。
换句话说,对于 ISDB,这些值应像这样填充
u.st.stat.svalue[0] = global statistics;
u.st.stat.scale[0] = FE_SCALE_DECIBEL;
u.st.stat.value[1] = layer A statistics;
u.st.stat.scale[1] = FE_SCALE_NOT_AVAILABLE (if not available);
u.st.stat.svalue[2] = layer B statistics;
u.st.stat.scale[2] = FE_SCALE_DECIBEL;
u.st.stat.svalue[3] = layer C statistics;
u.st.stat.scale[3] = FE_SCALE_DECIBEL;
u.st.len = 4;
-
struct dtv_fe_stats¶
存储数字电视前端统计信息
定义:
struct dtv_fe_stats {
__u8 len;
struct dtv_stats stat[MAX_DTV_STATS];
};
成员
len统计信息的长度 - 如果为零,则禁用统计信息。
stat包含数字电视统计信息的数组。
描述
在大多数标准上,len 可以是 0 或 1。但是,对于 ISDB,每层都以单独的方式进行调制。 因此,每层可能都有自己的一组统计信息。 如果是这样,stat[0] 携带该属性的全局值。 索引 1 到 3 表示 A 到 B 层。
-
struct dtv_property¶
存储前端命令及其值之一
定义:
struct dtv_property {
__u32 cmd;
__u32 reserved[3];
union {
__u32 data;
struct dtv_fe_stats st;
struct {
__u8 data[32];
__u32 len;
__u32 reserved1[3];
void *reserved2;
} buffer;
} u;
int result;
};
成员
cmd数字电视命令。
reserved未使用。
u具有命令值的联合。
u.data一个 32 位无符号整数,包含命令值。
u.ststruct dtv_fe_stats统计信息数组。u.buffer用于存储较大属性的结构体。 目前未使用。
u.buffer.data一个 32 位无符号数组。
u.buffer.len缓冲区的元素数量。
u.buffer.reserved1已保留。
u.buffer.reserved2已保留。
result目前未使用。
-
struct dtv_properties¶
一组命令/值对。
定义:
struct dtv_properties {
__u32 num;
struct dtv_property *props;
};
成员
num结构体中存储的命令数量。
props指向
struct dtv_property的指针。