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
如果在超时 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_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
有线电视: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_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}
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.st
struct 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
的指针。