logo资料库

(信号音的生成与检测.ppt

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
信号音的生成与检测
一、设置GTG模板(对Board设备的设置)
1、GTG自定义音频模板参数说明如下 参数名 GTG_id; Freq1_Index Freq1_Amp Freq2_Index 参数说明 有效值0x30—0x3F 48(G,拨号音),49(H,回铃音),50(I,忙音 1),51(J,忙音2),52(K,忙音3),53(L,传真音) 频率一索引值,有效值0-15。 频率一幅度值。对应16位线性幅度值 频率二索引值,有效值0-15。设为0xFF表示无第二个频率分量 Freq2_Amp Envelope_Mode 音频包络类型, 频率二幅度值。对应16位线性幅度值 0表示无包络限制。 1表示包络定义包含一个“ON-OFF”, 2表示包络定义包含两个“ON-OFF”。 包络重复次数,达到该重复次数才返回GTG COMPLETE事件。(无包络 限制时此记数不起作用) 包络第一个ON TIME时间(ms),也是无包络限制时的信号持续时间 Repeat_Count On_Time1 Off_Time1 On_Time2 Off_Time2 包络第一个OFF TIME时间(ms) 包络第二个ON TIME时间(ms) 包络第二个OFF TIME时间(ms)
2、对忙音J的GTG模板设置的代码 DJ_U16 CmdParamData_GtgProtoType_t TmpGtgProto; CmdParamData_GtgFreq_t u16ParamType, u16ParamSize; TmpGtgFreq; u16ParamType = BOARD_PARAM_SETGTGFREQ ; u16ParamSize = sizeof(CmdParamData_GtgFreq_t); memset(&TmpGtgFreq, 0, sizeof(CmdParamData_GtgFreq_t) ); TmpGtgFreq.m_u16Freq_Index = 0; TmpGtgFreq.m_u16Freq_Coef =800; r = XMS_ctsSetParam( g_acsHandle, pDevice, u16ParamType,u16ParamSize,(DJ_Void *)&TmpGtgFreq ); u16ParamType = BOARD_PARAM_SETGTGTONE ; u16ParamSize = sizeof(CmdParamData_GtgProtoType_t); memset ( &TmpGtgProto, 0, sizeof(CmdParamData_GtgProtoType_t)); TmpGtgProto.m_u8GTG_id=51; TmpGtgProto.m_u8Freq1_Index=0; TmpGtgProto.m_u16Repeat_Count=3; TmpGtgProto.m_u16Envelope_Mode=1; TmpGtgProto.m_u16Freq1_Amp=8192; TmpGtgProto.m_u16On_Time1=900; TmpGtgProto.m_u16Off_Time1= 200; r =XMS_ctsSetParam( g_acsHandle,pDevice, u16ParamType,u16ParamSize,(DJ_Void *)&TmpGtgProto );
二、通过XMS_ctsSendIOData函数产生信号音 u16IoType = XMS_IO_TYPE_GTG; u16IoLen = 1; IoDataBuf[0] = 'J'; r =XMS_ctsSendIOData(g_acsHandle,pFreeVocDeviceID, u16IoType,u16IoLen,IoDataBuf);
三、设置GTD模板(对Board设备的设置) Bit0—Bit15对应16个全局定义频点检 测使能,对应位为1时使能。当使能 两个或以上频点时,只要其中任意一 个频点有效即认为频率有效。 On_Time、Off_Time等单位是15ms Min_Off_Time1 10:150ms
2、对忙音J的GTD模板设置的代码 u16ParamType, u16ParamSize; DJ_U16 CmdParamData_GtdFreq_t TmpGtdFreq; CmdParamData_GtdProtoType_t TmpGtdProto; u16ParamType = BOARD_PARAM_SETGTDFREQ ; u16ParamSize = sizeof(CmdParamData_GtdFreq_t); memset(&TmpGtdFreq, 0, sizeof(CmdParamData_GtdFreq_t)); TmpGtdFreq.m_u16Freq_Index = 0; TmpGtdFreq.m_u16Freq_Coef = 800; r = XMS_ctsSetParam( g_acsHandle, pDevice, u16ParamType, u16ParamSize, (DJ_Void *)&TmpGtdFreq ); u16ParamType = BOARD_PARAM_SETGTDTONE ; u16ParamSize = sizeof(CmdParamData_GtdProtoType_t); memset ( &TmpGtdProto, 0, sizeof(CmdParamData_GtdProtoType_t) ); TmpGtdProto.m_u16GtdID = 51; TmpGtdProto.m_u16Freq_Mask = 1; TmpGtdProto.m_u16Envelope_Mode = 1; TmpGtdProto.m_u16Repeat_Count = 2; TmpGtdProto.m_u16Min_On_Time1 = 57; TmpGtdProto.m_u16Max_On_Time1 = 63; TmpGtdProto.m_u16Min_Off_Time1 = 10; TmpGtdProto.m_u16Max_Off_Time1 = 17; r = XMS_ctsSetParam( g_acsHandle, pDevice, u16ParamType, u16ParamSize, (DJ_Void *)&TmpGtdProto );
四、使能GTD(根据设置的GTD模板对信号音进行检测) DJ_U16 u16ParamType, u16ParamSize; CmdParamData_Voice_t TmpVoice; u16ParamType = VOC_PARAM_UNIPARAM; u16ParamSize = sizeof(CmdParamData_Voice_t); memset(&TmpVoice,0,sizeof(CmdParamData_Voice_t)); TmpVoice.m_u8GtdCtrlValid = 1; TmpVoice.m_VocGtdControl.m_u8ChannelEnable = 1; TmpVoice.m_VocGtdControl.m_u8GTDEnable = 1; TmpVoice.m_VocGtdControl.m_u8GTDID[0]='J'; r=XMS_ctsSetParam(g_acsHandle,pDevice, u16ParamType,u16ParamSize,(DJ_Void*)&TmpVoice);
分享到:
收藏