ft_msg_cmmb.h
13.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*******************************************************************************
* Modification Notice:
* --------------------------
* This software is modified by MediaTek Inc. and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2001
*
*******************************************************************************/
/*******************************************************************************
* Filename:
* ---------
* ft_msg_cmmb.h
*
* Project:
* --------
* MAUI
*
* Description:
* ------------
* Messages definition of CMMB category of FT Library
*
* Author:
* -------
* -------
*
*==============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*==============================================================================
*******************************************************************************/
#ifndef __FT_MSG_CMMB_H__
#define __FT_MSG_CMMB_H__
#include "ft_msg_common.h"
/*******************************************************************************
*
* Message structures defined for CMMB Command
*
*******************************************************************************/
#define META_CMMB_FRAME_INFO_NUM 20
typedef enum
{
FT_CMMB_OP_TURN_ON = 0
,FT_CMMB_OP_TURN_OFF
,FT_CMMB_OP_SET_BAND
,FT_CMMB_OP_AUTO_SCAN_TO_GET_FREQ
,FT_CMMB_OP_GET_FRAME_INFO_BY_AUTO_SCAN
,FT_CMMB_OP_STOP_AUTO_SCAN
,FT_CMMB_OP_SET_FREQ
,FT_CMMB_OP_SEL_SERV_ONLY
,FT_CMMB_OP_PAUSE_SERV
,FT_CMMB_OP_GET_SIGNAL
,FT_CMMB_OP_AUTO_SCAN_WITH_FREQ_RANGE
,FT_CMMB_OP_END
}META_CMMB_CMD_TYPE;
typedef enum
{
META_CMMB_CHINA_U_BAND=0
,META_CMMB_TAIWAN_BAND
,META_CMMB_UNDEF_BAND
}META_CMMB_BAND_enum;
typedef struct
{
META_CMMB_BAND_enum m_rBand;
}META_CMMB_SET_BAND_REQ_T;
typedef struct
{
kal_uint8 m_u1FrmId;
kal_uint16 m_u2ServId;
}META_CMMB_SEL_SERV_REQ_ONLY_T;
typedef struct
{
kal_uint8 m_u1FrmId;
kal_uint16 m_u2ServId;
}META_CMMB_PAUSE_SERV_REQ_T;
typedef struct
{
kal_uint8 m_u1StartFreqPointId;
kal_uint8 m_u1EndFreqPointId;
}META_CMMB_FREQ_RANGE_FOR_AUTO_SCAN_REQ_T;
typedef union
{
META_CMMB_SET_BAND_REQ_T m_rBand;
kal_uint8 m_u1FreqPointId;
META_CMMB_SEL_SERV_REQ_ONLY_T m_rSelServ;
META_CMMB_PAUSE_SERV_REQ_T m_rPauseServ;
META_CMMB_FREQ_RANGE_FOR_AUTO_SCAN_REQ_T m_rAutoScanWithFreqRange;
}META_CMMB_CMD_U;
typedef struct
{
kal_uint8 m_u1RecvAllFrame;
kal_uint8 m_u1HasFrameInfo; // used to check if we need to decode peer buffer
kal_uint8 m_u1FrameIndex;
kal_uint8 m_u1FrameNumSoFar;
}META_CMMB_AUTO_SCAN_CNF_T;
typedef struct
{
kal_uint8 m_u1RecvAllFrame;
kal_uint8 m_u1HasFrameInfo;
kal_uint8 m_u1FrameIndex;
kal_uint8 m_u1FrameNumSoFar;
}META_CMMB_SET_FREQ_CNF_T;
typedef struct
{
kal_uint8 m_u1FreqPointId;
kal_int8 m_i1Rssi; // unit: -dBm 0~100, 0 is best , -1 means no such kinds of value
kal_int8 m_i1Snr; // unit: dBm 0~100, 100 is best, -1 means no such kinds of value
kal_int8 m_i1CurLdpcErrPercent; // unit: % 0~100, 0 is best , -1 means no such kinds of value
kal_int32 m_i4TotalLdpcErrCnt; // unit: -1 means no such kinds of value
kal_int32 m_i4TotalLdpcCnt; // unit: -1 means no such kinds of value
kal_int32 m_i4CurRsErrorCnt; // unit: -1 means no such kinds of value
kal_int32 m_i4TotalRsErrorCnt; // unit: -1 means no such kinds of value
/* Added in W1112 */
kal_int32 m_i4InBandPwr;
kal_uint32 m_u4IsDemodLocked;
kal_uint8 m_u1ReceptionQuality;
kal_uint32 m_u4signal_strength_indication;
}META_CMMB_GET_SIGNAL_STRENGTH_CNF_T;
typedef union
{
META_CMMB_AUTO_SCAN_CNF_T m_rAutoScan; // the detailed information is put in peer buffer
META_CMMB_SET_FREQ_CNF_T m_rSetFreqResult;
META_CMMB_GET_SIGNAL_STRENGTH_CNF_T m_rGetSSResult;
}META_CMMB_CNF_U;
typedef struct
{
FT_H header;
META_CMMB_CMD_TYPE type;
META_CMMB_CMD_U cmd;
}FT_CMMB_REQ;
typedef struct
{
FT_H header;
META_CMMB_CMD_TYPE type;
kal_uint8 status;
META_CMMB_CNF_U result;
}FT_CMMB_CNF;
#define META_CMMB_FREQ_BAND_NUM 4
#define META_CMMB_BLK_NUM 8
#define META_CMMB_SERV_BLOCK_NUM 20
#define META_CMMB_DATA_BLK_NUM 128
typedef struct
{
kal_uint8 m_u1FreqPointId;
kal_uint8 m_u1BandWidth;
kal_uint32 m_u4Freq;
}META_CMMB_FreqBandStruct_T;
typedef struct
{
kal_uint8 m_u1MainFreqNum;
kal_uint8 m_u1MainFreqWeCarry;
META_CMMB_FreqBandStruct_T m_rMainFreqBand[META_CMMB_FREQ_BAND_NUM];
}META_CMMB_AUTO_SCAN_GET_FREQ_CNF_T; // will be put into peer buffer
//==================================================================
typedef struct // around 58 *4 bytes
{
kal_uint8 Nit_NitUpdateSeq;
kal_uint8 Nit_SysTime[5];
kal_uint32 Nit_CountryCode ;
kal_uint8 Nit_Net_NetLevel;
kal_uint16 Nit_Net_NetId;
kal_uint8 Nit_NetNameLen ;
kal_uint8 Nit_NetName[128];
kal_uint8 Nit_FreqBand_FreqPointId;
kal_uint8 Nit_FreqBand_BandWidth;
kal_uint32 Nit_FreqBand_CenterFreq;
kal_uint8 Nit_OtherFreqNum; // at most 4 here transferred by ft task.
kal_uint8 m_ucOtherFreqNumWeCarry;
kal_uint8 Nit_OtherFreqBandList_FreqPointId[META_CMMB_BLK_NUM];
kal_uint8 Nit_OtherFreqBandList_BandWidth[META_CMMB_BLK_NUM];
kal_uint32 Nit_OtherFreqBandList_CenterFreq[META_CMMB_BLK_NUM];
kal_uint8 Nit_NeighborNetNum; // at most 4 here transferred by ft task.
kal_uint8 m_ucNeightborNetWeCarray;
kal_uint8 Nit_NeighborNetList_NetLevel[META_CMMB_BLK_NUM];
kal_uint16 Nit_NeighborNetList_NetId[META_CMMB_BLK_NUM];
kal_uint8 Nit_NeighborNetList_FreqPointId[META_CMMB_BLK_NUM];
kal_uint8 Nit_NeighborNetList_BandWidth[META_CMMB_BLK_NUM];
kal_uint32 Nit_NeighborNetList_CenterFreq[META_CMMB_BLK_NUM];
}META_CMMB_NitStruct_T;
typedef struct // about 27*4 bytes
{
kal_uint8 MctUpdateSeq;
kal_uint8 FreqPointId;
kal_uint8 MfNum; // at most 4 here transferred by ft task.
kal_uint8 m_ucMfNumWeCarray; // 0: none, 1: more
kal_uint8 Mf_MfId[META_CMMB_BLK_NUM];
kal_uint8 Mf_RsRate[META_CMMB_BLK_NUM];
kal_uint8 Mf_ByteInterleaveMode[META_CMMB_BLK_NUM];
kal_uint8 Mf_LdpcRate[META_CMMB_BLK_NUM];
kal_uint8 Mf_ModulationMode[META_CMMB_BLK_NUM];
kal_uint8 Mf_ScrambleMode[META_CMMB_BLK_NUM];
kal_uint8 Mf_TimeSlotNum[META_CMMB_BLK_NUM];
kal_uint8 m_ucMf_TimeSlotNumWeCarray[META_CMMB_BLK_NUM];
kal_uint8 Mf_TimeSlotId[META_CMMB_BLK_NUM][META_CMMB_BLK_NUM];
kal_uint8 Mf_SubMfNum[META_CMMB_BLK_NUM];
kal_uint8 m_ucMf_SubMfNumWeCarry[META_CMMB_BLK_NUM];
kal_uint8 Mf_SubMfId[META_CMMB_BLK_NUM][META_CMMB_BLK_NUM];
kal_uint16 Mf_serviceId[META_CMMB_BLK_NUM][META_CMMB_BLK_NUM];
}META_CMMB_MctStruct_T;
typedef struct // about 16 * 4 bytes
{
kal_uint8 SctUpdateSeq;
kal_uint16 ServiceNum;
kal_uint8 m_u1ServiceNumWeCarray; // at most 20 here transferred by ft task.
kal_uint16 ServiceId[META_CMMB_SERV_BLOCK_NUM];
kal_uint8 FreqPointId[META_CMMB_SERV_BLOCK_NUM];
}META_CMMB_SctStruct_T;
typedef struct // around 20*4 bytes
{
kal_uint8 EsgUpdateSeq;
kal_uint8 NetLevel;
kal_uint16 NetId;
kal_uint8 LocalTimeOffset;
kal_uint8 CharSet;
kal_uint8 EsgServiceNum;
kal_uint8 m_ucEsgServiceNumWeCarry;
kal_uint8 EsgService_EsgServiceIndex[META_CMMB_BLK_NUM];
kal_uint16 EsgService_EsgServiceId[META_CMMB_BLK_NUM];
kal_uint8 EsgDataNum;
kal_uint8 m_ucEsgDataNumWeCarry;
kal_uint8 EsgData_EsgDataType[META_CMMB_BLK_NUM];
kal_uint8 EsgData_EsgDataBlockNum[META_CMMB_BLK_NUM];
kal_uint8 m_ucEsgData_EsgDataBlockNumWeCarry[META_CMMB_BLK_NUM];
kal_uint8 EsgDataBlock_EsgDataBlockId[META_CMMB_BLK_NUM][META_CMMB_BLK_NUM];
kal_uint8 EsgDataBlock_EsgDataBlockVersion[META_CMMB_BLK_NUM][META_CMMB_BLK_NUM];
kal_uint8 EsgDataBlock_EsgServiceIndex[META_CMMB_BLK_NUM][META_CMMB_BLK_NUM];
}META_CMMB_EsgListStruct_T;
typedef struct
{
kal_uint8 CaUpdateSeq;
kal_uint16 CaDataNum ;
kal_uint8 m_ucCaDataNumWeCarry;
kal_uint16 CaId[META_CMMB_BLK_NUM];
kal_uint16 ServiceId[META_CMMB_BLK_NUM];
kal_uint8 EMM_BlockUnitType[META_CMMB_BLK_NUM];
kal_uint8 ECM_BlockUnitType[META_CMMB_BLK_NUM];
kal_uint8 ECM_TransmissionType[META_CMMB_BLK_NUM];
}META_CMMB_CaListStruct_T;
typedef struct
{
META_CMMB_NitStruct_T m_rNit; // around 58 *4 bytes
META_CMMB_MctStruct_T m_rCSmct[2]; // about 25*4 bytes * 2
META_CMMB_SctStruct_T m_rCSsct[2]; // [0] for Csct, [1] for Ssct
kal_uint8 Eb_EbUpdateSeq;
kal_uint8 Eb_EbMsgNum;
kal_uint16 Eb_DataBlockLen;
kal_uint8 m_ucDataBlockLenWeCarray;
kal_uint8 Eb_DataBlock[META_CMMB_DATA_BLK_NUM];
kal_uint8 m_ucHasEsg; // 0: no Esg, 1: has Esg information
META_CMMB_EsgListStruct_T m_rEsg;
kal_uint8 m_ucHasCa;
META_CMMB_CaListStruct_T m_rCa;
}META_CMMB_CtrlInfoTable_T;
typedef struct
{
kal_uint8 m_u1NitUpdateSeq;
kal_uint8 m_u1CmctUpdateSeq;
kal_uint8 m_u1SmctUpdateSeq;
kal_uint8 m_u1CsctUpdateSeq;
kal_uint8 m_u1SsctUpdateSeq;
kal_uint8 m_u1EsgUpdateSeq;
kal_uint8 m_u1FreqPointId;
kal_uint8 m_u1NetLevel;
kal_uint16 m_u2NetId;
kal_uint8 m_u1HasCtrlTable; // 0: no, 1: yes
META_CMMB_CtrlInfoTable_T m_rCtrlTableInfo;
}META_CMMB_FrameInfo_T; // mapping with CMMB_FrameStruct
#endif // #ifndef __FT_MSG_CMMB_H__