使用Embedded VC++开发通讯终端及代码分析
Embeded Device开发指南
- 开发工具
Embedded Visual C++ 4.0 + SP4
Visual Studio.net 2005
相应的SDK - 开发类库/方式
Windows API开发
MFC开发
电话通讯处理
使用TAPI获得呼叫信息要经过如下步骤: 初始化线路、确定TAPI版本号、对指定线路进行监控、电话呼入时获得呼叫信息并分析、符合条件挂断电话、释放对线路的监控。
为了使用TAPI函数集,必须要包含tapi.h头文件及cellcore.lib库。
初始化TAPI,注册回调函数,并得到Line的数量
1.初始化线路 TAPI
LONG lineInitialize(
LPHLINEAPP lphLineApp, //线路TAPI应用的句柄指针
HINSTANCE hInstance, //实例句柄
LINECALLBACK lpfnCallback, //指向呼叫返回处理函数
LPCWSTR lpszAppName, // 指向用户提供的应用程序名字符串
LPDWORD lpdwNumDevs ); //指向可供使用的线路设备个数
lineInitialize完成对TAPI的初始化后,所有的事件都是通过lpfnCallback指向的回调函数传递给应用程序。回调函数的原型为:
VOID FAR PASCAL lineCallbackFunc(
DWORD hDevice, //可以是一个线路设备的句柄
DWORD dwMsg, //线路或呼叫消息
DWORD dwCallbackInstance,//传回应用程序的回调实例数据
DWORD dwParam1, //消息—具体的数据
DWORD dwParam2, //消息—具体的数据
DWORD dwParam3 //消息—具体的数据
);
2.确定TAPI版本号
使用lineNegotiateAPIVersion函数把API使用版本通知给TAPI,返回与TAPI通信所能使用的版本,同时获得线路设备支持的扩展功能。
3. 对线路进行监控
使用lineOpen函数打开线路,并指出是对线路的语音监控。
lineOpen: 打开Line(一般是两条线)
if ( lineNegotiateAPIVersion( LineApp, i, 0x00010000, 0x00020000, &ver,
&extensionID ) == 0 )
{
rc = lineOpen( LineApp, i, &LineHandles[i], ver, 0, (DWORD)this,
LINECALLPRIVILEGE_MONITOR, LINEMEDIAMODE_INTERACTIVEVOICE, NULL);
}
4. 电话呼入时获得呼叫信息并分析
跟踪呼入电话进入回调函数的消息,即dwMsg值,分别为:
①dwMsg = LINE_APPNEWCALL 有呼叫进来
②dwMsg = LINE_CALLSTATE 呼叫状态
dwParam1 = LINECALLSTATE_OFFERING 此时引起一个响铃
③dwMsg = LINE_CALLINFO 呼叫信息
dwParam1 = LINECALLINFOSTATE_ORIGIN 呼叫原始信息
④dwMsg = LINE_CALLINFO 呼叫信息
dwParam1 = LINECALLINFOSTATE_CALLERID 呼叫标识 可在这里处理归属地查询等等操作
绘图时避免闪烁(1)
减少绘制区域
绘图时避免闪烁(2)
采用双缓冲 原理:先将不同部分的内容绘制到内存DC中,然后再一
次性的绘制到设备DC上
转载于:https://blog.51cto.com/yanql/166417
使用Embedded VC++开发通讯终端及代码分析相关推荐
- 20189200余超 2018-2019-2 移动平台应用开发实践作项目代码分析
20189200余超 2018-2019-2 移动平台应用开发实践作项目代码分析 项目名称 小说阅读器 项目功能 注册登录 用户信息.用户密码.用户图像修改 书籍分类 书架 书籍搜索(作者名或书籍名) ...
- S3C6410开发板adc驱动代码分析及测试代码分析
在本文中,我们对S3C6410开发板adc驱动代码的实现过程进行分析,然后通过一个实例对adc功能进行测试.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 adc的设备驱动主要 ...
- S3C6410开发板LED驱动代码分析及测试代码分析
在本文中,我们对S3C6410开发板LED驱动代码的实现过程进行分析,然后通过一个实例对LED进行控制.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 设备驱动主要实现了模块的 ...
- S3C6410开发板按键驱动代码分析及测试代码分析
在本文中,我们对S3C6410开发板按键驱动代码的实现过程进行分析,然后通过一个实例对按键功能进行测试.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 按键的设备驱动主要实现了 ...
- linux驱动开发: wm8960 codec代码分析
关于alsa架构已经啃了好久好久,但是也卡了好久好久.难说皮毛到底有看懂多少,不管,我们先来啃wm8960 codec的驱动代码: 必要相关函数说明: 1.#define SOC_ENUM_SINGL ...
- Hyperledger Indy:开发指南样例代码分析 - 节点 Onboarding
英文指南:https://github.com/hyperledger/indy-sdk/blob/master/doc/getting-started/getting-started.md#step ...
- 低成本快速开发 LoRa 终端:从 0 到 1
Keep it Simple and Stupid - 简单就是美 提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议. 提示2:如果您有其他 LoRa 需求或建议,欢迎联系锐米 ...
- 在SDLC中使用静态代码分析的最佳实践
http://vultrace.cn更多精彩,尽在个人博客. 文章翻译自ncc group的论文,论文超长预警,请耐心观看. Best Practices for the use of Static ...
- 【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)...
版本:第一版 作者:毛鹏 杨帅 日期:20151108 简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC#环境下进行温 ...
最新文章
- 嵌入式C程序基础与编程结构
- 安卓手机Charles抓包显示unknown原因及解决办法
- 随机发送n位数字+字母的验证码
- 阿里技术解密:全链路压测体系建设方案的思考与实践
- 浅入浅出 Android 安全:第六章 Android 安全的其它话题
- 曲奇云盘资源搜索引擎_工具集--任意资源搜索神器(不限速!!)
- 加载脚本依赖发生错误--暴力猴
- iNavFlight之MSP DJI协议分析
- exsi 安装ipmi_在vSphere中为不同服务器配置IPMI功能
- 2013-2015南京大学历史学系若干考试题目汇编
- 麒麟座mini学习笔记之云端查看数据流
- 计算机与书法专业,临帖要像?计算机“算法”精确你的每一个像素!震惊书法圈!...
- c0000005 Access Violation
- Java Review(三十六、IO)
- 再寄小读者之数学篇[2014.01.01-2014.06.30]
- HX711 24位A/D模块计算公式
- IIS服务 与 NetWork Rat(网络老鼠)8.0 的 上线方法
- 云适配陈本峰:我为什么发起“中国企业级H5产业联盟”
- Android 固件,刷固件,ROM包
- 大型专利公司岗位设计,工作内容及其人才要求标准
热门文章
- mysql 启动错误-server PID file could not be found
- Windows server 2012 AD架构 试验 系列22 -ADAC与PowerShell History
- Intent以及IntentFilter详解
- 程序员,如何三十而立?
- vsftp上传文件出现553 Could not create file解决方法
- 一款非常不错的聊天工具
- python内置模块大全 processon
- SpringMVC必备的jar包
- UISegmentedControl 分段器加载不同的viewcontroller
- 【转】Redis安装整理(window平台和Linux平台)