FreeCalypso > hg > fc-magnetite
view src/aci2/alr/alr_test/alr_cbch_constraints.cpp @ 632:d968a3216ba0
new tangomdm build target
TCS211/Magnetite built for target leonardo runs just fine on the Tango-based
Caramel board, but a more proper tangomdm build target is preferable in order
to better market these Tango modems to prospective commercial customers. The
only differences are in GPIO and MCSI config:
* MCSI is enabled in the tangomdm build config.
* GPIO 1 is loudspeaker amplifier control on Leonardo, but on Tango platforms
it can be used for anything. On Caramel boards this GPIO should be
configured as an output driving high.
* GPIO 2 needs to be configured as Calypso input on Leonardo, but on Tango
platforms it can be used for anything. On Caramel boards this GPIO should be
configured as an output, either high or low is OK.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 04 Jan 2020 19:27:41 +0000 |
parents | 93999a60b835 |
children |
line wrap: on
line source
/* +------------------------------------------------------------------------------ | File: alr_cbch_constraints.cpp +------------------------------------------------------------------------------ | Copyright 2003 Texas Instruments | All rights reserved. | | This file is confidential and a trade secret of Texas Instruments. | The receipt of or possession of this file does not convey | any rights to reproduce or disclose its contents or to | manufacture, use, or sell anything it may describe, in | whole, or in part, without the specific written consent of | Texas Instruments. +------------------------------------------------------------------------------ | Purpose: Contains test constraints for alr | +------------------------------------------------------------------------------ */ #include "alr_constraints.h" const U8 MSG_ID_3_7_11_TO_13[40] = { 3, 0, 3, 0, 7, 0, 7, 0, 11, 0, 13, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; const U8 DCS_ID_EMPTY[40] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; T_cbch cbch_description_8() { const U16 CBCH_DESCRIPTION_8_MA_elements[5] = { 0x0E, 0x17, 0x45, 0x73, NOT_PRESENT_16BIT }; T_ARRAY<U16> CBCH_DESCRIPTION_8_MA(CBCH_DESCRIPTION_8_MA_elements, SKIP_TO_END); T_cbch pstruct; pstruct->stat = STAT_ACT; pstruct->ch = CH_SDCCH_8_0; pstruct->tn = 3; pstruct->tsc = 3; pstruct->h = H_FREQ; pstruct->arfcn = 0; pstruct->maio = 1; pstruct->hsn = 0; pstruct->ma = CBCH_DESCRIPTION_8_MA; return pstruct; } T_cbch cbch_description_4() { const U16 CBCH_DESCRIPTION_4_MA_elements[5] = { 0x0E, 0x17, 0x45, 0x73, NOT_PRESENT_16BIT }; T_ARRAY<U16> CBCH_DESCRIPTION_4_MA(CBCH_DESCRIPTION_4_MA_elements, SKIP_TO_END); T_cbch pstruct; pstruct->stat = STAT_ACT; pstruct->ch = CH_SDCCH_4_0; pstruct->tn = 0; pstruct->tsc = 3; pstruct->h = H_FREQ; pstruct->arfcn = 0; pstruct->maio = 1; pstruct->hsn = 0; pstruct->ma = CBCH_DESCRIPTION_4_MA; return pstruct; } T_cbch_desc channel_desc_cbch_8() { T_cbch_desc pstruct; pstruct->chan_sel.h = 1; pstruct->chan_sel.rf_channel.maio = 1; pstruct->chan_sel.rf_channel.hsn = 0; pstruct->channel_type = 0x04; pstruct->sub_channel = 0; pstruct->timeslot_no = 3; pstruct->tsc = 3; return pstruct; } T_cbch_desc channel_desc_cbch_4() { T_cbch_desc pstruct; pstruct->chan_sel.h = 1; pstruct->chan_sel.rf_channel.maio = 1; pstruct->chan_sel.rf_channel.hsn = 0; pstruct->channel_type = 0x03; pstruct->sub_channel = 0; pstruct->timeslot_no = 0; pstruct->tsc = 3; return pstruct; } T_PRIMITIVE_UNION mphc_data_ind_53() { const U8 NULL_MESSAGE_CONTENT_elements[23] = { 0x0F, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B }; T_ARRAY<U8> NULL_MESSAGE_CONTENT(NULL_MESSAGE_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = NULL_MESSAGE_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_54(CHAR variant) { T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; if (variant == 'A') { const U8 CBCH_1_7_CONTENT_elements[23] = { 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_7_CONTENT(CBCH_1_7_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_7_CONTENT; } if (variant == 'B') { const U8 CBCH_1_11_CONTENT_elements[23] = { 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_11_CONTENT(CBCH_1_11_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_11_CONTENT; } if (variant == 'C') { const U8 CBCH_1_12_CONTENT_elements[23] = { 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_12_CONTENT(CBCH_1_12_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_12_CONTENT; } if (variant == 'D') { const U8 CBCH_1_13_CONTENT_elements[23] = { 0x00, 0x00, 0x00, 0x00, 0x0D, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_13_CONTENT(CBCH_1_13_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_13_CONTENT; } if (variant == 'E') { const U8 CBCH_1_7_2_CONTENT_elements[23] = { 0x00, 0x00, 0x02, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_7_2_CONTENT(CBCH_1_7_2_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_7_2_CONTENT; } if (variant == 'F') { const U8 CBCH_1_7_B_CONTENT_elements[23] = { 0x00, 0x00, 0x0B, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_7_B_CONTENT(CBCH_1_7_B_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_7_B_CONTENT; } if (variant == 'G') { const U8 CBCH_1_7_scope_la_CONTENT_elements[23] = { 0x00, 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_7_scope_la_CONTENT(CBCH_1_7_scope_la_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_7_scope_la_CONTENT; } prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_55() { const U8 CBCH_2_CONTENT_elements[23] = { 0x01, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF }; T_ARRAY<U8> CBCH_2_CONTENT(CBCH_2_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_2_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_56() { const U8 CBCH_3_CONTENT_elements[23] = { 0x02, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5 }; T_ARRAY<U8> CBCH_3_CONTENT(CBCH_3_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_3_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_57() { const U8 CBCH_4_CONTENT_elements[23] = { 0x03, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; T_ARRAY<U8> CBCH_4_CONTENT(CBCH_4_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_4_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_58() { const U8 CBCH_1_8_CONTENT_elements[23] = { 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_8_CONTENT(CBCH_1_8_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_1_8_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_59() { const U8 SCHEDULE_1_B_CONTENT_elements[23] = { 0x08, 0x0B, 0x12, 0x12, 0x04, 0x80, 0x00, 0x00, 0x00, 0x80, 0x05, 0x41, 0x80, 0x07, 0x41, 0x40, 0x80, 0x03, 0x40, 0x40, 0x40, 0x40, 0x40 }; T_ARRAY<U8> SCHEDULE_1_B_CONTENT(SCHEDULE_1_B_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = SCHEDULE_1_B_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_60() { const U8 SCHEDULE_2_CONTENT_elements[23] = { 0x01, 0x40, 0x40, 0x40, 0x40, 0x40, 0x80, 0x08, 0x02, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B }; T_ARRAY<U8> SCHEDULE_2_CONTENT(SCHEDULE_2_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = SCHEDULE_2_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_61() { const U8 SCHEDULE_3_CONTENT_elements[23] = { 0x02, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B }; T_ARRAY<U8> SCHEDULE_3_CONTENT(SCHEDULE_3_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = SCHEDULE_3_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_62() { const U8 SCHEDULE_4_CONTENT_elements[23] = { 0x13, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B }; T_ARRAY<U8> SCHEDULE_4_CONTENT(SCHEDULE_4_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = SCHEDULE_4_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_66() { const U8 CBCH_2_CONTENT_elements[23] = { 0x0B, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF }; T_ARRAY<U8> CBCH_2_CONTENT(CBCH_2_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_2_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_67() { const U8 SCHEDULE_1_B_CONTENT_elements[23] = { 0x08, 0x01, 0x30, 0x12, 0x04, 0x80, 0x00, 0x00, 0x00, 0x80, 0x05, 0x41, 0x80, 0x07, 0x41, 0x40, 0x80, 0x03, 0x40, 0x40, 0x40, 0x40, 0x40 }; T_ARRAY<U8> SCHEDULE_1_B_CONTENT(SCHEDULE_1_B_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = SCHEDULE_1_B_CONTENT; prim->tc = TC_0; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_68(CHAR variant) { const U8 CBCH_2_CONTENT_elements[23] = { 0x0B, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF }; T_ARRAY<U8> CBCH_2_CONTENT(CBCH_2_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = INVALID_BLOCK; prim->l2_frame.content = CBCH_2_CONTENT; if( variant == 'A') prim->tc = TC_0; if( variant == 'B') prim->tc = TC_4; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_69() { T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; { const U8 CBCH_1_7_CONTENT_elements[23] = { 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9 }; T_ARRAY<U8> CBCH_1_7_CONTENT(CBCH_1_7_CONTENT_elements, SKIP_TO_END); prim->l2_frame.content = CBCH_1_7_CONTENT; } prim->tc = TC_4; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_70() { const U8 CBCH_2_CONTENT_elements[23] = { 0x01, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF }; T_ARRAY<U8> CBCH_2_CONTENT(CBCH_2_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_2_CONTENT; prim->tc = TC_5; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_71() { const U8 CBCH_3_CONTENT_elements[23] = { 0x02, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5 }; T_ARRAY<U8> CBCH_3_CONTENT(CBCH_3_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_3_CONTENT; prim->tc = TC_6; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_72() { const U8 CBCH_4_CONTENT_elements[23] = { 0x03, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; T_ARRAY<U8> CBCH_4_CONTENT(CBCH_4_CONTENT_elements, SKIP_TO_END); T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_CBCH; prim->error_flag = VALID_BLOCK; prim->l2_frame.content = CBCH_4_CONTENT; prim->tc = TC_7; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; return prim; } T_PRIMITIVE_UNION mphc_data_ind_73() { T_MPHC_DATA_IND prim; prim->radio_freq = ARFCN_23; prim->l2_channel = L2_CHANNEL_NBCCH; prim->error_flag = VALID_BLOCK; prim->l2_frame = l2_sys_info_3_new(); prim->tc = TC_1; prim->ccch_lev._skip; prim->fn = FN_OFFSET_0; //FN_OFFSET_14; return prim; } T_PRIMITIVE_UNION mph_cbch_req_1() { T_MPH_CBCH_REQ prim; prim->cbch.stat._skip; prim->cbch.ch._skip; prim->cbch.tn._skip; prim->cbch.tsc._skip; prim->cbch.h._skip; prim->cbch.arfcn._skip; prim->cbch.maio._skip; prim->cbch.hsn._skip; return prim; } T_PRIMITIVE_UNION mph_cbch_req_2(CHAR variant) { T_MPH_CBCH_REQ prim; if (variant == 'A') prim->cbch = cbch_description_4(); if (variant == 'B') prim->cbch = cbch_description_8(); return prim; } T_PRIMITIVE_UNION mph_cbch_req_3(CHAR variant) { T_MPH_CBCH_REQ prim; if (variant == 'A') prim->cbch = cbch_description_4(); if (variant == 'B') prim->cbch = cbch_description_8(); if (variant == 'C') prim->cbch = cbch_description_4(); return prim; } T_PRIMITIVE_UNION mmi_cbch_req_1() { T_MMI_CBCH_REQ prim; prim->msg_id = MSG_ID_3_7_11_TO_13; prim->dcs_id = DCS_ID_EMPTY; prim->modus = CBCH_ACCEPT; return prim; } T_PRIMITIVE_UNION mmi_cbch_req_2(CHAR variant) { T_MMI_CBCH_REQ prim; if (variant == 'A') prim->msg_id = MSG_ID_3_7_11_TO_13; if (variant == 'B') prim->msg_id = MSG_ID_3_7_11_TO_13; if (variant == 'C') { const U8 MSG_ID_1_TO_20[40] = { 1, 0, 20, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }; prim->msg_id = MSG_ID_1_TO_20; } prim->dcs_id = DCS_ID_EMPTY; prim->modus = CBCH_ACCEPT; return prim; } T_PRIMITIVE_UNION mphc_config_cbch_req_1(CHAR variant) { T_MPHC_CONFIG_CBCH_REQ prim; if (variant == 'A') prim->cbch_desc = channel_desc_cbch_4(); if (variant == 'B') prim->cbch_desc = channel_desc_cbch_8(); prim->cbch_freq_list = freq_list(); return prim; } T_PRIMITIVE_UNION mphc_config_cbch_req_2(CHAR variant) { T_MPHC_CONFIG_CBCH_REQ prim; if (variant == 'A') prim->cbch_desc = channel_desc_cbch_4(); if (variant == 'B') prim->cbch_desc = channel_desc_cbch_8(); if (variant == 'C') prim->cbch_desc = channel_desc_cbch_4(); prim->cbch_freq_list = freq_list(); return prim; } T_PRIMITIVE_UNION mphc_cbch_schedule_req_1() { T_MPHC_CBCH_SCHEDULE_REQ prim; prim->cbch_select = CBCH_READ_NORM; prim->schedule_length = SCHED_LEN_0; prim->first_blocks_0._skip; prim->first_blocks_1._skip; return prim; } T_PRIMITIVE_UNION mphc_cbch_schedule_req_2() { T_MPHC_CBCH_SCHEDULE_REQ prim; prim->cbch_select = CBCH_READ_EXT; prim->schedule_length = SCHED_LEN_0; prim->first_blocks_0._skip; prim->first_blocks_1._skip; return prim; } T_PRIMITIVE_UNION mphc_cbch_schedule_req_3() { T_MPHC_CBCH_SCHEDULE_REQ prim; prim->cbch_select = CBCH_READ_NORM; prim->schedule_length = SCHED_LEN_8; prim->first_blocks_0 = FIRST_BLOCKS_0_UNSCH; prim->first_blocks_1 = FIRST_BLOCKS_1_B; return prim; } T_PRIMITIVE_UNION mphc_cbch_schedule_req_4(CHAR variant) { T_MPHC_CBCH_SCHEDULE_REQ prim; prim->cbch_select._skip; prim->schedule_length = SCHED_LEN_30 ; if( variant == 'A') prim->first_blocks_0 = FIRST_BLOCKS_0_B; if( variant == 'B') prim->first_blocks_0 = FIRST_BLOCKS_0_DRX; if( variant == 'A') prim->first_blocks_1 = FIRST_BLOCKS_1_B; if( variant == 'B') prim->first_blocks_1 = FIRST_BLOCKS_1_B; return prim; } T_PRIMITIVE_UNION mphc_cbch_info_req_1() { T_MPHC_CBCH_INFO_REQ prim; prim->tb_bitmap = CBCH_NORM_BLOCK234; return prim; } T_PRIMITIVE_UNION mphc_cbch_info_req_2() { T_MPHC_CBCH_INFO_REQ prim; prim->tb_bitmap = 0; return prim; } T_PRIMITIVE_UNION mphc_cbch_info_req_3() { T_MPHC_CBCH_INFO_REQ prim; prim->tb_bitmap = CBCH_EXT_BLOCK234; return prim; } T_PRIMITIVE_UNION mmi_cbch_ind_1(CHAR variant) { T_MMI_CBCH_IND prim; const U8 CBCH_MSG_7[88] = { 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; const U8 CBCH_MSG_7_updt_2[88] = { 0x00, 0x02, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; const U8 CBCH_MSG_7_scope_la[88] = { 0x80, 0x00, 0x00, 0x07, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; const U8 CBCH_MSG_11[88] = { 0x00, 0x00, 0x00, 0x0B, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; const U8 CBCH_MSG_12[88] = { 0x00, 0x00, 0x00, 0x0C, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; const U8 CBCH_MSG_13[88] = { 0x00, 0x00, 0x00, 0x0D, 0x00, 0x01, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB }; if (variant == 'A') prim->cbch_msg = CBCH_MSG_7; if (variant == 'B') prim->cbch_msg = CBCH_MSG_11; if (variant == 'C') prim->cbch_msg = CBCH_MSG_12; if (variant == 'D') prim->cbch_msg = CBCH_MSG_13; if (variant == 'E') prim->cbch_msg = CBCH_MSG_7_updt_2; if (variant == 'F') prim->cbch_msg = CBCH_MSG_7_scope_la; prim->cbch_len = CBCH_LEN_88; return prim; } T_PRIMITIVE_UNION mphc_stop_cbch_req() { T_MPHC_STOP_CBCH_REQ prim; prim->normal_cbch._skip; prim->extended_cbch._skip; return prim; }