软件送音实验概要

上传人:我** 文档编号:112724504 上传时间:2019-11-06 格式:DOC 页数:8 大小:126KB
返回 下载 相关 举报
软件送音实验概要_第1页
第1页 / 共8页
软件送音实验概要_第2页
第2页 / 共8页
软件送音实验概要_第3页
第3页 / 共8页
软件送音实验概要_第4页
第4页 / 共8页
软件送音实验概要_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《软件送音实验概要》由会员分享,可在线阅读,更多相关《软件送音实验概要(8页珍藏版)》请在金锄头文库上搜索。

1、实验四软件送音实验1、实验要求通过编写软件送音程序在交换仿真实验平台上运行,观察实验结果,进一步了解位间隔的工作原理。2、实验目的软件送音实验用来考查学生对各种信号音发送情况的掌握情况。3.实验设备PC机,交换仿真实验平台4、实验原理交换机需要向用户发送各种信号音,如拨号音、忙音和回铃音等,也需要向其他交换机发送和接收各种局间信令,如多频信号。这些信号都是音频模拟信号,而信号设备是接在数字交换网络上的,它通过数字交换网络所提供的路由来传送。因此这些模拟信号必须是“数字化了的”,信号音的产生不外乎单频音和双频音两种。对于单频信号音的产生,是按照一定的时间间隔抽样、量化和编码运算,得到各抽样点的p

2、cm信号,然后保存在ROM中,在需要发送时按序发送。对于双频信号音的产生,是取得两种信号音周期的最小公倍数,作为pcm的抽样周期,然后保存在ROM中,在需要时按序取出发送。由于用软件来模拟信号音的产生比较困难,所以在我们的实验中,我们发送的信号音都是预先准备好的信号音文件,并且伴随有界面的送音显示。那么如何考查学生对软件送音的理解呢?我的设计是提供给一些需要送音的情况,编程确定该送音的类型,该送音的情况和送音的类别都是在主程序中预先安排好的,只需在送音情况和送音类型间“牵线搭桥”。5、实验方法及数据结构所需完成的函数:intdecide(Userstatestate);其中Userstate为

3、在bconstant.h中定义的一个枚举类型,表示用户现在的状态。有前缀caller的表示只有主叫才有的状态,called的表示被叫,其他为两者共同的它的值有:caller_ehandup:主叫摘机;caller_calledbusy:被叫忙;theother_firstehandon,:通话中另一方先挂机;sometimer_timeout:某个定时器超时;busytoneout:忙音超时;caller_callednull:被叫为空号;called_onecallin:有呼叫进入;caller_callconnected:呼叫被接通等等在头文件中。返回值要求返回对该用户的送音类型:0:拨号

4、音;1:振铃音;2:回铃音;3:空号音;4:忙音;5:空鸣音;6、实验过程:在主界面的编辑视图内完成源代码部分的编写工作,代码如下:(1) 头文件(bconstant.h):#ifndef BCONSTANT_H#defineBCONSTANT_Husing namespace std;#define LINEMAX 200/*int linestate200LINEMAX,linestateLINEMAX;/线路从0开始编号;状态:1:有电流,0无电流;enum UporOnehandup,ehandon;/:为摘挂机区别符:ehandup表示摘机,ehandon表示挂机*/enum Use

5、rstate caller_ehandup,/主叫摘机 caller_calledbusy,/被叫忙 theother_firstehandon,/通话中对方先挂机 dial_timer_timeout,/拨号音超时 recvnum_timer_timeout,/收号定时器超时 connect_timer_timeout,/连接定时器超时 nulltone_timer_timeout,/空号音超时 ringback_timer_timeout,/回铃音定时器超时 busytone_timer_timeout,/忙音超时 caller_callednull,/被叫空号 called_onecal

6、lin,/(被叫)呼叫进入 caller_callconnected/(主叫)被叫接通;/*struct UpOnnode/摘挂机队列节点结构 UporOn phonestate;/摘挂机区别符;int linenum;/线路号(从0开始); struct UpOnnode*next;/指向下一节点的指针;;*/#endif(2)源文件:#include #include #include#include#includebconstant.husing namespace std;extern C_declspec(dllexport)int decide_ringtype(Userstate

7、 state) switch(state) case caller_ehandup: return 1;break; case caller_calledbusy: return 4;break; case theother_firstehandon: return 4;break; case dial_timer_timeout: return 4;break; case recvnum_timer_timeout: return 4;break; case connect_timer_timeout: return 4;break; case nulltone_timer_timeout:

8、 return 4;break; case ringback_timer_timeout: return 4;break; case busytone_timer_timeout: return 5;break; case caller_callednull: return 3;break; case called_onecallin: return 4;break; case caller_callconnected: return 2;break; default:/其他情况 return 0;break; int main() int resultLINEMAX; int inputLI

9、NEMAX; srand(time(0); for(int i=0; iLINEMAX; i+) inputi = (int)rand()%12; Userstate state; state = Userstate(inputi); int tmp = decide_ringtype(state); resulti = tmp; cout resultiendl; 点击“编译”菜单命令或者“编译”工具按钮编译源代码,如果在结果视图中看到形成对象文件的提示(即产生*.obj),表示编译成功。点击“运行”菜单命令或者“运行”工具按钮,进入演示运行界面,进行相应的控制操作,检验完成的目标模块的逻辑

10、正确性。如果正确的话,点击“编辑源文件”下的“保存”子菜单项保存该源文件。7、实验总结 这次实验组要是在仿真平台上编写程序进行仿真,要求程序具有软件送音功能。这个功能主要通过一个S w t i ch选择语句实现,根据不同的判断条件返回不同的值,判断条件为输入的状态类型,类型有主叫摘机,被叫忙通话中,对方先挂机等,返回的值为int类型的数值,软件送音程序通过这个数值调用驱动程序驱动硬件发送不同的话音。当主叫摘机送拨号音;被叫忙、通话中对方先挂机、拨号音超时、收号定时器超时、连接定时器超时、空号音超时、回铃音定时器超时都送忙音;忙音超时送空鸣音、被叫空号送空号音、呼叫进入送振铃音、被叫接通送回铃音。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号