📄 l1tm_cust.c
字号:
case TX_BURST_DATA:
{
value = l1_config.tmode.tx_params.burst_data;
break;
}
case TX_TIMING_ADVANCE:
{
value = l1_config.tmode.tx_params.timing_advance;
break;
}
case TX_TRAINING_SEQ:
{
value = l1_config.tmode.tx_params.tsc;
break;
}
case TX_PWR_SKIP:
{
value = l1_config.tmode.tx_params.txpwr_skip;
break;
}
#if L1_GPRS
case TX_GPRS_POWER0:
case TX_GPRS_POWER1:
case TX_GPRS_POWER2:
case TX_GPRS_POWER3:
case TX_GPRS_POWER4:
case TX_GPRS_POWER5:
case TX_GPRS_POWER6:
case TX_GPRS_POWER7:
{
value = l1_config.tmode.tx_params.txpwr_gprs[index - TX_GPRS_POWER0];
break;
}
case TX_GPRS_SLOTS:
{
value = l1_config.tmode.tx_params.timeslot_alloc;
break;
}
case TX_GPRS_CODING:
{
value = l1_config.tmode.tx_params.coding_scheme;
break;
}
#endif
default:
{
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_INVAL;
#else
tm_return->status = E_BADINDEX;
#endif
tm_return->size = 0;
return;
}
} // end switch
memcpy(tm_return->result, (UWORD8 *)&value, 2);
tm_return->size = 2;
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_OK;
#else
tm_return->status = E_OK;
#endif
}
void Cust_tm_tx_template_write(T_TM_RETURN *tm_return, WORD8 index, UWORD8 size, UWORD8 table[])
{
if (index >= sizeof(rf_band[tm_band].tx.ramp_tables)/sizeof(T_TX_RAMP))
{
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_INVAL;
#else
tm_return->status = E_BADINDEX;
#endif
}
else if (size != sizeof(T_TX_RAMP))
{
// We are writing both the up and down ramps; size must be exact.
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_NOMEM;
#else
tm_return->status = E_BADSIZE;
#endif
}
else
{
memcpy(rf_band[tm_band].tx.ramp_tables[index].ramp_up, &table[0], size/2);
memcpy(rf_band[tm_band].tx.ramp_tables[index].ramp_down, &table[size/2], size/2);
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_OK;
#else
tm_return->status = E_OK;
#endif
l1_config.tmode.rf_params.reload_ramps_flag = 1;
}
tm_return->index = index;
tm_return->size = 0;
}
void Cust_tm_tx_template_read(T_TM_RETURN *tm_return, WORD8 index)
{
tm_return->index = index;
if (index >= sizeof(rf_band[tm_band].tx.ramp_tables)/sizeof(T_TX_RAMP))
{
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_INVAL;
#else
tm_return->status = E_BADINDEX;
#endif
tm_return->size = 0;
return;
}
memcpy(&tm_return->result[0], rf_band[tm_band].tx.ramp_tables[index].ramp_up, sizeof(rf_band[tm_band].tx.ramp_tables[index].ramp_up));
memcpy(&tm_return->result[sizeof(rf_band[tm_band].tx.ramp_tables[index].ramp_up)], rf_band[tm_band].tx.ramp_tables[index].ramp_down, sizeof(rf_band[tm_band].tx.ramp_tables[index].ramp_down));
tm_return->size = sizeof(rf_band[tm_band].tx.ramp_tables[index]);
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_OK;
#else
tm_return->status = E_OK;
#endif
}
void Cust_tm_special_param_write(T_TM_RETURN *tm_return, WORD16 index, UWORD16 value)
{
tm_return->size = 0;
tm_return->index = index;
tm_return->status = E_NOSYS;
/*tcs2114 porting by he jun --- begin*/
//xmzhou_trace_string("Cust_tm_special_param_write called");
switch(index)
{
case 0:
{
//extern void mms_run_test_id (UINT16 usTestId);
tm_return->status = E_OK;
//xmzhou_trace_string_value("spw 0", value);
break;
}
case 1://AMR record
{
//xmzhou_trace_string("Cust_tm_special_param_write case1");
//amr_record(value);
break;
}
case 2://AMR Play
{
//xmzhou_trace_string("Cust_tm_special_param_write case2");
//amr_play_test(value);
break;
}
case 3://Change post trunck size
{
//extern void MmsSetMaxchunkSize (UINT16 usChunckSize);
//xmzhou_trace_string("Cust_tm_special_param_write case3");
//xmzhou_trace_string_value("post trunck size be set as ", value);
break;
}
case 4://OPEN UDP PDU DUMP
{
//xmzhou_trace_string("Cust_tm_special_param_write case4");
//xmzhou_trace_string("Open UDP PDU DUMP");
break;
}
case 5://Close UDP PDU DUMP
{
//xmzhou_trace_string("Cust_tm_special_param_write case5");
//xmzhou_trace_string("Close UDP PDU DUMP");
break;
}
/*-----------------------------------------------------------------------*/
/* wangwang : mostly like the spr command,there are also some spw command
not used in this table,so choose 10 as the test
061016*/
case 10: // spw 10 0x...
{
extern UINT16 dar_lcd_sleep_flag;
LCC_TRACE(0xffffffff,"spw value is %x",value);
dar_lcd_sleep_flag = value;
tm_return->status = E_OK;
}
break;
// used any command to reset,restart,display on etc of the LCD
// 061016
case 15: // spw 15 .... notice the format different above
{
extern void ETM_Cmd_Operate_Lcd(UINT8 lcd_state);
ETM_Cmd_Operate_Lcd(value);
tm_return->status = E_OK;
}
break;
/*-------------------------------------------------------------------------*/
default:
tm_return->status = E_BADINDEX;
}
/*tcs2114 porting by he jun --- end*/
}
void Cust_tm_special_param_read(T_TM_RETURN *tm_return, WORD16 index)
{
/*tcs2114 porting by he jun --- begin
tm_return->size = 0;
tm_return->index = index;
tm_return->status = E_NOSYS;*/
tm_return->index = index;
switch (index)
{
case 4:/*read network status*/
tm_return->size = 1;
if(em_read_netstatus((char *)tm_return->result) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 1:/*read call status*/
tm_return->size = 1;
if(em_read_ccstatus((char *)tm_return->result) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 2:/*read bsn*/
tm_return->size = 18;
if(em_read_sn((char *)tm_return->result) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 3: /*read imei*/
tm_return->size = 16;
if(em_read_imei((char *)tm_return->result) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 7:
tm_return->size = 16;
if(em_read_bt_address((char *)tm_return->result) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 8:
tm_return->size = 2;
if(em_read_bt_trim((char *)tm_return->result) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
/*------------------------------------------------------------------------*/
/* wangwang : special param read from 1 to 16 supported according etm1.8.0
so I can use the rest of unused index to satify our requirment
spr 10 : for dar_lcd_sleep_flag
spr 11 : for dar_previous_status
spr 12 : for dar_current_status
061016*/
case 10:
/* now just return the dar_lcd_sleep_flag ,a uint16 's value */
{
extern UINT16 dar_lcd_sleep_flag;
tm_return->size=2;
tm_return->result[0] = (dar_lcd_sleep_flag)&0xff;
tm_return->result[1] = (dar_lcd_sleep_flag>>8)&0xff;
LCC_TRACE(0xffffffff,"spr is 0x%x,result 0 =%d,result 1=%d",
dar_lcd_sleep_flag,tm_return->result[0],tm_return->result[1]);
tm_return->status = E_OK;
}
break;
case 11: // read dar_previous_status
{
extern UINT16 dar_previous_status;
tm_return->size=2;
tm_return->result[0] = (dar_previous_status)&0xff;
tm_return->result[1] = (dar_previous_status>>8)&0xff;
tm_return->status = E_OK;
}
break;
case 12: // read dar_current_status
{
extern UINT16 dar_current_status;
tm_return->size=2;
tm_return->result[0] = (dar_current_status)&0xff;
tm_return->result[1] = (dar_current_status>>8)&0xff;
tm_return->status = E_OK;
}
break;
/*--------------------------------------------------------------------*/
default: /*出错处理*/
tm_return->size = 0;
tm_return->status = E_NOSYS;
break;
}
/*/*tcs2114 porting by he jun --- end*/
}
void Cust_tm_special_table_write(T_TM_RETURN *tm_return, WORD8 index, UWORD8 size, UWORD8 table[])
{
/*tcs2114 porting by he jun --- begin
tm_return->size = 0;
tm_return->index = index;
tm_return->status = E_NOSYS;*/
tm_return->size = 0;
tm_return->index = index;
switch (index)
{
case 0:/*write bsn*/
if(em_write_sn((char *)table) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 1: /*write imei*/
if(em_write_imei((char *)table) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 2:
switch(table[0])
{
case 0:
em_test(23);
break;
case 1:
em_test(24);
break;
case 2:
em_test(25);
break;
case 3:
em_test(26);
break;
case 4:
em_test(27);
break;
case 5:
em_test(28);
break;
case 6:
em_test(29);
break;
default:
break;
}
tm_return->status = E_OK;
break;
case 3:
switch(table[0])
{
case 0:/*red led*/
em_test(20);
break;
case 1:/*green led*/
em_test(21);
break;
case 2:/*blue led*/
em_test(22);
break;
default:
break;
}
tm_return->status = E_OK;
break;
case 4: /*write bt addess*/
if(em_write_bt_address((char *)table) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
case 5: /*write bt trim*/
if(em_write_bt_trim((char *)table) ==1)
tm_return->status = E_OK;
else
tm_return->status = E_AGAIN;
break;
default:
tm_return->status = E_NOSYS;
break;
}
/*tcs2114 porting by he jun --- end*/
}
void Cust_tm_special_table_read(T_TM_RETURN *tm_return, WORD8 index)
{
tm_return->size = 0;
tm_return->index = index;
#if (ETM_PROTOCOL == 1)
tm_return->status = -ETM_NOSYS;
#else
tm_return->status = E_NOSYS;
#endif
}
void Cust_tm_special_enable(T_TM_RETURN *tm_return, WORD16 action)
{
/*tcs2114 porting by he jun --- begin
tm_return->size = 0;
tm_return->index = action;
tm_return->status = E_NOSYS;*/
tm_return->size = 0;
tm_return->index = action;
switch (action)
{
case 0:/*received*/
em_test(0);
tm_return->status = E_OK;
break;
case 1:/*reject*/
em_test(1);
tm_return->status = E_OK;
break;
case 2: /*midi on*/
em_test(2);
tm_return->status = E_OK;
break;
case 3: /*midi off*/
em_test(3);
tm_return->status = E_OK;
break;
case 4: /* 开始键盘测试*/
em_test(4);
tm_return->status = E_OK;
break;
case 5: /*结束键盘测试*/
em_test(5);
tm_return->status = E_OK;
break;
case 6:
/*call 112*/
em_test(6);
tm_return->status = E_OK;
break;
case 7:
em_test(7); /*LCD test mode open*/
tm_return->status = E_OK;
break;
case 8:
em_test(8); /*LCD test mode close*/
tm_return->status = E_OK;
break;
case 9: /*rebuild ffs*/
tm_return->status = E_NOSYS;
break;
case 10: /*format FFS*/
em_rebuild_ffs();
tm_return->status = E_OK;
break;
case 11:/*震动开启*/
em_test(11);
tm_return->status = E_OK;
break;
case 12:/*震动关闭*/
em_test(12);
tm_return->status = E_OK;
break;
case 13:/*关机*/
em_test(13);
tm_return->status = E_OK;
break;
/*chenjun add for gprs fuction 030217*/
case 16:/*开启GPRS*/
if(em_test(16) == -1)/*开启GPRS失败*/
tm_return->status = E_AGAIN;
else
tm_return->status = E_OK;
break;
case 17:/*关闭GPRS*/
if(em_test(17)== -1)/*关闭GPRS失败*/
tm_return->status = E_AGAIN;
else
tm_return->status = E_OK;
break;
/*end chenjun add for gprs fuction 030217*/
case 18:
em_test(30);
tm_return->status = E_OK;
break;
case 19:
em_test(31);
tm_return->status = E_OK;
break;
case 20:
em_test(40);
tm_return->status = E_OK;
break;
/*------------------------------------------------------------*/
/* wangwang : just for test
060929*/
case 200:
case 201:
case 202:
case 203:
case 204:
case 205:
em_test(action);
tm_return->status = E_OK;
break;
/*---------------------------------------------------------------*/
default:
tm_return->status = E_BADINDEX;
break;
}
/*tcs2114 porting by he jun --- end*/
}
#endif // TESTMODE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -