使用Embedded VC++开发通讯终端及代码分析

2024-06-07 21:13:07

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++开发通讯终端及代码分析相关推荐

  1. 20189200余超 2018-2019-2 移动平台应用开发实践作项目代码分析

    20189200余超 2018-2019-2 移动平台应用开发实践作项目代码分析 项目名称 小说阅读器 项目功能 注册登录 用户信息.用户密码.用户图像修改 书籍分类 书架 书籍搜索(作者名或书籍名) ...

  2. S3C6410开发板adc驱动代码分析及测试代码分析

    在本文中,我们对S3C6410开发板adc驱动代码的实现过程进行分析,然后通过一个实例对adc功能进行测试.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 adc的设备驱动主要 ...

  3. S3C6410开发板LED驱动代码分析及测试代码分析

    在本文中,我们对S3C6410开发板LED驱动代码的实现过程进行分析,然后通过一个实例对LED进行控制.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 设备驱动主要实现了模块的 ...

  4. S3C6410开发板按键驱动代码分析及测试代码分析

    在本文中,我们对S3C6410开发板按键驱动代码的实现过程进行分析,然后通过一个实例对按键功能进行测试.在本文的资源中包含了设备驱动的源码和测试的源码. 一.设备驱动源码分析 按键的设备驱动主要实现了 ...

  5. linux驱动开发: wm8960 codec代码分析

    关于alsa架构已经啃了好久好久,但是也卡了好久好久.难说皮毛到底有看懂多少,不管,我们先来啃wm8960 codec的驱动代码: 必要相关函数说明: 1.#define SOC_ENUM_SINGL ...

  6. Hyperledger Indy:开发指南样例代码分析 - 节点 Onboarding

    英文指南:https://github.com/hyperledger/indy-sdk/blob/master/doc/getting-started/getting-started.md#step ...

  7. 低成本快速开发 LoRa 终端:从 0 到 1

    Keep it Simple and Stupid - 简单就是美 提示1:锐米所有 LoRa 产品严格遵循国标标准的 LoRaWAN 协议. 提示2:如果您有其他 LoRa 需求或建议,欢迎联系锐米 ...

  8. 在SDLC中使用静态代码分析的最佳实践

    http://vultrace.cn更多精彩,尽在个人博客. 文章翻译自ncc group的论文,论文超长预警,请耐心观看. Best Practices for the use of Static ...

  9. 【应用笔记】【AN001】VC#开发环境下基于以太网的4-20mA电流采集(基于modbus tcp 协议)...

    版本:第一版 作者:毛鹏 杨帅 日期:20151108 简介 4-20mA电流环具有广泛的应用前景,在许多行业中都发挥着重要作用.本文主要介绍了以太网接口的4-20mA电流采集模块在VC#环境下进行温 ...

最新文章

  1. 嵌入式C程序基础与编程结构
  2. 安卓手机Charles抓包显示unknown原因及解决办法
  3. 随机发送n位数字+字母的验证码
  4. 阿里技术解密:全链路压测体系建设方案的思考与实践
  5. 浅入浅出 Android 安全:第六章 Android 安全的其它话题
  6. 曲奇云盘资源搜索引擎_工具集--任意资源搜索神器(不限速!!)
  7. 加载脚本依赖发生错误--暴力猴
  8. iNavFlight之MSP DJI协议分析
  9. exsi 安装ipmi_在vSphere中为不同服务器配置IPMI功能
  10. 2013-2015南京大学历史学系若干考试题目汇编
  11. 麒麟座mini学习笔记之云端查看数据流
  12. 计算机与书法专业,临帖要像?计算机“算法”精确你的每一个像素!震惊书法圈!...
  13. c0000005 Access Violation
  14. Java Review(三十六、IO)
  15. 再寄小读者之数学篇[2014.01.01-2014.06.30]
  16. HX711 24位A/D模块计算公式
  17. IIS服务 与 NetWork Rat(网络老鼠)8.0 的 上线方法
  18. 云适配陈本峰:我为什么发起“中国企业级H5产业联盟”
  19. Android 固件,刷固件,ROM包
  20. 大型专利公司岗位设计,工作内容及其人才要求标准

热门文章

  1. mysql 启动错误-server PID file could not be found
  2. Windows server 2012 AD架构 试验 系列22 -ADAC与PowerShell History
  3. Intent以及IntentFilter详解
  4. 程序员,如何三十而立?
  5. vsftp上传文件出现553 Could not create file解决方法
  6. 一款非常不错的聊天工具
  7. python内置模块大全 processon
  8. SpringMVC必备的jar包
  9. UISegmentedControl 分段器加载不同的viewcontroller
  10. 【转】Redis安装整理(window平台和Linux平台)