惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
GbyAI
GbyAI
爱范儿
爱范儿
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
罗磊的独立博客
Recent Announcements
Recent Announcements
博客园 - 司徒正美
M
MIT News - Artificial intelligence
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog RSS Feed
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网

博客园 - 楚潇

有关sqlserver的锁 基于dotnet2.0的联通sgip1.2协议二级网关源码 .net winform下TreeNode在没有子结点时也显示+号的解决办法 在vs2005中用gridview显示表中的image字段 - 楚潇 - 博客园 谁没在变! vs2k5 中asp.net "Web Site Administration Tool "使用中遇到的问题 - 楚潇 美达飞凡16X DVD起死回生记 寄语八十年代的新一代 小胜凭智, 大胜靠德 《windows核心编程》 再读<心航> visual C# 2005 express beta2读配置文件的问题(ms的bug?) C#中判断socket是否已断开的方法 将对象转为byte[] 摘自古龙的句子 端午节到了 C#中的字符串格式化 怎样才能提高.net的水平呢? Reflaction很嚣张的功能
.net开发手机短信
楚潇 · 2005-06-03 · via 博客园 - 楚潇

  如今开发手机短信的文章可多了,下面的地址更绝,收集了好多.net开发手机的技术文章(
串口编程文章列表: http://www.mcuchina.com/Article/Communication/SMS/Index.html
C#开发终端式短信原理及方法: http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/83.html), 对于不懂开发手机短信原理的同仁,看了上面的文章就应该知道了。俺在这里是要作个总结,好以后复习,^_^。
  开发手机短信程序有3种方式:通过电信部门的网关、通过终端、利用一些网站提供的Webservice。偶这里只有第二种可行,并且我对于第二种方式也挺感兴趣,所以仔细地看了看。开发手机短信所用到的技术如下:
    1、sms手机编解码
    2、串口通信
    sms手机编解码主要是用pdu模式,据说我的西门子3618支持,^_^。不懂这种编解码的就看这篇http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/81.html 还有这一篇http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/82.html
    串口通信就有些麻烦了,据说dotnet2.0中有了串口通信的类了,.net1.1则只能依靠第三方的帮助或直接调用API。第三方提供的类有::JustinIO、SerialStream, 上面的类俺还没用过,不好评价; 还可以调用mscomm这个 ocx 控件来实现,可以看这篇文章http://www.mcuchina.com/Article/Interface/COM/COMPRG/200411/113.html 了解怎么个用法。
    我想,要熟悉串口编程,不能仅使用别人包装的类,还要了解串口相关的API哦!于是下载有《Visual C++串口编程》《Delphi串口通信编程》来看了相关的API,现在列出相关的API用法:
    CreateFile ()打开串口
    SetupComm设置串口输入输出缓冲区的大小, PurgeComm() 和 FlushFileBuffers()也是针对缓冲操作的;
    GetCommState和SetCommState用于设置串口的状态(比如数据传输率、奇偶校验位等), 这里有个DCB数据结构,好复杂!还好,       BuildCommDCB这个函数为我们提供了设置DCB结构的简便方法;
    GetCommProperties()这个函数使我们能够获取串口的属性,  Windows还提供有 CommConfigDialog()这个函数供我们调用以设置其属性;
    读写串口分别用ReadFile()和WriteFile(), 跟文件操作一样,爽! 不过要是涉及到异步I/O操作就有些麻烦了,在串口编程中的异步I/O操作对应到WINDOWS的API, 术语就叫做“重叠”!相关的函数有 GetOverlappedResult()      (^_^,  俺还没看明白);
    要注意串口的读写超时设置,对应为:GetCommTimeOuts() 和 SetCommTimeOuts();
    如果在通信的过程中出现了错误,一定要调用ClearCommError()才能继续通信;
    要怎么样才知道串口有数据了呢?想起以前学接口技术时老师教的3种方式:轮询(即用while循环)、硬件中断方式、*^%$(还给老师了), 而windows下提供有事件来通知,相应的有 GetCommMask() 、SetCommMask(() 以及 WaitCommEvent();
  还有几个设备控制命令函数: EscapeCommFunction()。SetCommBreak()用于挂起串口通信设备, ClearCommBreak()则做相反的操作;
    最后, 别忘了用 CloseHandle() 关闭串口!

ps: 这个小子的BLOG(http://blog.csdn.net/hesicong/category/23319.aspx), 上面好多开发手机程序的文章