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_len
DiSEqC 消息的长度。有效值为 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;
};
成员
msg
用于存储通过 DiSEqC 接收的消息的 DiSEqC 消息缓冲区。它包含一个字节的标头,包括:帧,以及一个可选的最多 3 字节的数据参数。
msg_len
DiSEqC 消息的长度。有效值为 0 到 4,其中 0 表示没有消息。
timeout
如果在超时毫秒后没有收到消息,则从 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_VITERBI
FEC 内码(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¶
调制/星座类型
常量
QPSK
QPSK 调制
QAM_16
16-QAM 调制
QAM_32
32-QAM 调制
QAM_64
64-QAM 调制
QAM_128
128-QAM 调制
QAM_256
256-QAM 调制
QAM_AUTO
自动检测 QAM 调制
VSB_8
8-VSB 调制
VSB_16
16-VSB 调制
PSK_8
8-PSK 调制
APSK_16
16-APSK 调制
APSK_32
32-APSK 调制
DQPSK
DQPSK 调制
QAM_4_NR
4-QAM-NR 调制
QAM_1024
1024-QAM 调制
QAM_4096
4096-QAM 调制
APSK_8_L
8APSK-L 调制
APSK_16_L
16APSK-L 调制
APSK_32_L
32APSK-L 调制
APSK_64
64APSK 调制
APSK_64_L
64APSK-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_PN420
PN 长度 420 (1/4)
GUARD_INTERVAL_PN595
PN 长度 595 (1/6)
GUARD_INTERVAL_PN945
PN 长度 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_240
240 个符号的交织。
INTERLEAVING_720
720 个符号的交织。
描述
请注意,目前只有 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
有线电视:符合 ITU-T J.83 Annex A 规范的 DVB-C
SYS_DVBC_ANNEX_B
有线电视:符合 ITU-T J.83 Annex B 规范的 DVB-C (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
有线电视:符合 ITU-T J.83 Annex C 规范的 DVB-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_HLF
SCCC 块的外码率为 1/2。
ATSCMH_SCCC_CODE_QTR
SCCC 块的外码率为 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}
匿名
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.st
一个
struct dtv_fe_stats
统计信息数组。u.buffer
用于存储较大属性的结构体。当前未使用。
u.buffer.data
一个无符号 32 位整数数组。
u.buffer.len
缓冲区中的元素数量。
u.buffer.reserved1
保留。
u.buffer.reserved2
保留。
结果
当前未使用。
-
struct dtv_properties¶
一组命令/值对。
定义:
struct dtv_properties {
__u32 num;
struct dtv_property *props;
};
成员
num
结构体中存储的命令数量。
props
指向
struct dtv_property
的指针。