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

度量的無符號整數值,當 scaleFE_SCALE_RELATIVEFE_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 的指標。