说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

关于IrDA在WINDOWS/NT/XP下的编程实现

编辑:说三道四文库 发布时间:2017-09-22 02:16
HTML文档下载 WORD文档下载 PDF文档下载
各位大虾:
   我想实现在WINDOWS/NT/XP下的标准IrDA的编码,但是不知具体怎样实现,请赐教!
和串口没有什么区别,因为所有的东东在驱动的时候都已经做好了。
windows的socket已经包装了红外通信。
你首先用winsock建立一个红外套接字,然后便可用socket的读写函数如send, recv等进行对红外端口的读写操作了。
能不能说得详细一点,最好能提供原程序,谢谢!
The following code shows the steps necessary to build a server that listens for incoming IrCOMM
connections:
#define IAS_SET_ATTRIB_MAX_LEN 32
// buffer for IAS set
BYTE IASSetBuff[sizeof(IAS_SET) - 3 + IAS_SET_ATTRIB_MAX_LEN];
Int IASSetLen = sizeof(IASSetBuff);
PIAS_SET pIASSet = (PIAS_SET) &IASSetBuff;
// for the setsockopt call to enable 9 wire IrCOMM
int Enable9WireMode = 1;
// server sockaddr with IrCOMM name
SOCKADDR_IRDA ServSockAddr = { AF_IRDA, 0, 0, 0, 0, "IrDA:IrCOMM" };
SOCKADDR_IRDA PeerSockAddr;
int sizeofSockAddr;
SOCKET ServSock;
SOCKET NewSock;
if ((ServSock = socket(AF_IRDA, SOCK_STREAM, 0)) == INVALID_SOCKET)
{
// WSAGetLastError
}
// add IrCOMM IAS attributes for 3 wire cooked and 9 wire raw, see IrCOMM spec
memcpy(&pIASSet->irdaClassName[0], "IrDA:IrCOMM", 12);
memcpy(&pIASSet->irdaAttribName[0], "Parameters", 11);
pIASSet->irdaAttribType = IAS_ATTRIB_OCTETSEQ;
pIASSet->irdaAttribute.irdaAttribOctetSeq.Len = 6;
memcpy(&pIASSet->irdaAttribute.irdaAttribOctetSeq.OctetSeq[0],
"\000\001\006\001\001\001", 6);
if (setsockopt(ServSock, SOL_IRLMP, IRLMP_IAS_SET, (const char *) pIASSet, IASSetLen)
== SOCKET_ERROR)
{
// WSAGetLastError
}
// enable 9wire mode before bind()
if (setsockopt(ServSock, SOL_IRLMP, IRLMP_9WIRE_MODE, (const char *) &Enable9WireMode,
sizeof(int)) == SOCKET_ERROR)
{
// WSAGetLastError
}
if (bind(ServSock, (const struct sockaddr *) &ServSockAddr, sizeof(SOCKADDR_IRDA))
== SOCKET_ERROR)
{
// WSAGetLastError
}
// nothing special for IrCOMM from now on...
if (listen(ServSock, SERV_BACKLOG) == SOCKET_ERROR)
{
// WSAGetLastError
}
The following code shows the steps necessary to build a client that connects via 9 Wire IrCOMM:
#define DEVICE_LIST_LEN 5
// discovery buffer
BYTE DevListBuff[sizeof(DEVICELIST) - sizeof(IRDA_DEVICE_INFO) +
(sizeof(IRDA_DEVICE_INFO) * DEVICE_LIST_LEN)];
int DevListLen = sizeof(DevListBuff);
PDEVICELIST pDevList = (PDEVICELIST) &DevListBuff;
int DevNum;
#define IAS_QUERY_ATTRIB_MAX_LEN 32
// buffer for IAS query
BYTE IASQueryBuff[sizeof(IAS_QUERY) - 3 + IAS_QUERY_ATTRIB_MAX_LEN];
Int IASQueryLen = sizeof(IASQueryBuff);
PIAS_QUERY pIASQuery = (PIAS_QUERY) &IASQueryBuff;
// for searching through peers IAS response
BOOL Found = FALSE;
UCHAR *pPI, *pPL, *pPV;
// for the setsockopt call to enbale 9 wire IrCOMM
int Enable9WireMode = 1;
SOCKADDR_IRDA DstAddrIR = { AF_IRDA, 0, 0, 0, 0, "IrDA:IrCOMM" };
if ((pConn->Sock = socket(AF_IRDA, SOCK_STREAM, 0)) == INVALID_SOCKET)
{
// WSAGetLastError
}
// search for the peer device
pDevList->numDevice = 0;
if (getsockopt(pConn->Sock, SOL_IRLMP, IRLMP_ENUMDEVICES, (CHAR *) pDevList, &DevListLen)
== SOCKET_ERROR)
{
// WSAGetLastError
}
// if (pDevList->numDevice == 0)
{
// no devices found, tell the user
}
// assume first device, we should have a common dialog here
memcpy(&DstAddrIR.irdaDeviceID[0], &pDevList->Device[0].irdaDeviceID[0], 4);
// query the peer to check for 9wire IrCOMM support
memcpy(&pIASQuery->irdaDeviceID[0], &pDevList->Device[0].irdaDeviceID[0], 4);
// IrCOMM IAS attributes
memcpy(&pIASQuery->irdaClassName[0], "IrDA:IrCOMM", 12);
memcpy(&pIASQuery->irdaAttribName[0], "Parameters", 11);
if (getsockopt(pConn->Sock, SOL_IRLMP, IRLMP_IAS_QUERY, (char *) pIASQuery,
&IASQueryLen) == SOCKET_ERROR)
{
// WSAGetLastError
}
if (pIASQuery->irdaAttribType != IAS_ATTRIB_OCTETSEQ)
{
// peer's IAS database entry for IrCOMM is bad
// error
}
if (pIASQuery->irdaAttribute.irdaAttribOctetSeq.Len < 3)
{
// peer's IAS database entry for IrCOMM is bad
// error
}
// search for the PI value 0x00 and check 9 wire, see IrCOMM spec.
pPI = pIASQuery->irdaAttribute.irdaAttribOctetSeq.OctetSeq;
pPL = pPI + 1;
pPV = pPI + 2;
while (1)
{
if (*pPI == 0 && (*pPV & 0x04))
{
Found = TRUE;
break;
}
if (pPL + *pPL >= pIASQuery->irdaAttribute.irdaAttribOctetSeq.OctetSeq +
pIASQuery->irdaAttribute.irdaAttribOctetSeq.Len)
{
break;
}
pPI = pPL + *pPL;
pPL = pPI + 1;
pPV = pPI + 2;
}
if (! Found)
{
// peer doesn't support 9 wire mode
// error
}
// enable 9wire mode before connect()
if (setsockopt(ServSock, SOL_IRLMP, IRLMP_9WIRE_MODE, (const char *) &Enable9WireMode,
sizeof(int)) == SOCKET_ERROR)
{
// WSAGetLastError
}
// nothing special for IrCOMM from now on...
if (connect(pConn->Sock, (const struct sockaddr *) &DstAddrIR, sizeof(SOCKADDR_IRDA))
== SOCKET_ERROR)
{
// WSAGetLastError
}
上面两段源码分别是实现服务器端和客户端的过程,用这两段代码再经过加工一下应该就可以实现你想要的功能了。
如何避免失败,像Google一样玩转大数据 首届游戏运营技术论坛隆重开幕,共论大数据时代的游戏运营之道 OpenStack Swift遇到了Erasure Code 微软Win7 IE11开发者预览版发布 开始改进开发工具讨好开发者 个性化推荐服务商百分点宣布B轮融资1000万美金 全球著名互联网企业背后的开源力量 基础设施对决Facebook vs. Google:差距绝不是一点点 Amazon Q2财报同比转亏,但AWS反其道而行:高歌猛进! 开拓海外市场的两年:海外上线小技巧 SDCC 2013首批讲师名单出炉 一线工程师唱主角 [开源推荐] 跨平台的.NET运行环境 Mono 3.2发布 Heroku发布API平台Beta版 采用OAuth2.0安全授权 大数据时代:移动数据能为我们带来什么? iOS开发经验谈:如何提高应用开发效率? 贝索斯:你否定亚马逊的现在 我决定亚马逊的未来 谷歌新产品Chromecast:一夜之间价格从35美元飙至100美元 移动周报:苹果5周年限免神作,BADLAND开发者访谈 开源平台Cloud Foundry获IBM和百度支持,步入高速发展的“黄金期” GDK仍未发布 谷歌鼓励Glass开发者可提前用Android SDK开发 Adobe发布PhoneGap 3.0 支持命令行工具 初级vs.高级开发者 哪个性价比更高? 一周观察:Cloud Foundry生态圈渐成型 数据分析中的10个注意点,让你更了解用户体验、行为及需求 压不垮就奋行!Dropbox Datastore API给初创NimbusBase带来的启示 史上14大最具创新意义的科技发明 亚马逊应用商店:给应用开发者一个国际舞台 白帽黑客英年早逝:R.I.P,Barnaby Jack 苹果发布支持iTunes Radio服务的iTunes 11.1测试版 诺基亚将发布Treasure Tag配件 让你再也不怕丢东西 从三大互联网巨头布局,看移动时代的商业逻辑 亚马逊应用商店:一个开发者走向世界的机会? 想请问一个关于数据传输的问题,如何来实现呢 动态数组问题?? FLASH转成GIF动画 在win2k下出现内存不能为read,,是什么问题??? 403 Forbidden? 有谁知道比较好的HTML的入门的书吗?请告诉我!!! 我有一个关于JSP中文显示问题? 求助,查询lookup,locate,关于variant 谁用过Raize 3.06控件组?请教RzImageComboBox控件怎么用? 在程序中如何打开系统的notepad或wordpad并同时显示字符串? 今天学了一个下午的五笔,进步不小,放分。 asp.net中有自己带的treeview类吗? 谁知道学习汇编语言的网站 !!help! 今天刚装了adsl,可是在win98下用不了,连通信公司的人都没辙(100分) api中怎么知道哪个函数用在哪个dll rave 的最版在哪里可找到 rave 的最版在哪里可找到 !!help! 今天刚装了adsl,可是在win98下用不了,连通信公司的人都没辙(100分) 救救我啊,关系着我的生计呀! 在Window2000上安装Redhat7.3后,机器速度慢得难以让人忍受 delphi5中数据集问题 !!help! 今天刚装了adsl,可是在win98下用不了,连通信公司的人都没辙(100分) 在线:请推荐几本OpenGL的好书!!! VI高级技巧征集中,欢迎大家来交流,谢绝灌水! WINDOWS 2003 SERVER 安装问题 存储过程可以返回记录集吗? CListBox的问题 请问!那位哥哥姐姐可以教我学习呢!? 页眉页角问题 一个关于package的初级问题 窗口大小 win2k+诺顿杀毒软件企业版~~~~~~~~~~~等待,立即送分! 请问我如何将CStatic透明化,即上面显示的字能够映在窗体上,并不是映在灰色CStatic控件上。???????????????? 网页发送短信是如何实现的? 陷入死循环啦!!! 紧急求助!!!!![2000密码] 为什么只能添加一条记录?帮帮忙,谢谢 谁知道比较好的学习汇编语言的网站 如何用JS打开一个文件对话框 有什么办法能让fsck的时候,不需要手动确认? 如何将编写好的*.chm文件连接到编写的应用程序中?(急) 高手请进!SQL SERVER出现问题! 急!!!请教计算机网络中的停止等待协议算法 哪能找到一个图书管理系统示例的源代码,谢谢 一个很简单的备份问题!~~~散分!~~~~~~ 用sql语句查询表,如何自动把Null值转换为0或指定值?? 如何屏蔽win2000下的ctrl+alt+del啊? ADO和字符集问题 请问各位大侠,weblogic里部署jsp和javabean的问题 求问有关Datetime和smallDatetime的问题 在jbuild+mb中,MIDlet和displayabel form 有什么区别,? 直译they recognize a bargain when they see it 求机械表走动的声音,不用时间太长,声音清楚就行,机械表走动声音. 我买了一只天梭自动机械表,在用手大力摇晃听到里面除了有摆陀的声音还有出现哒哒的金属声,是周期性出现我确定不是金属碰撞的声音,而且声音小,这究竟是正常不?其他方面都挺正常的,请 英文Made of 90% post-consumer recycled plastic是什么意思 求它的同位角,内错角,同旁内角,(1)BD平行EC;(2)DE平行BC 当什么时候用stb.was doing while stb.was doingwhile引导的时间状语从句,从句和主句什么时候都用过去进行时 consumer-generated-content是什么意思 用稀硫酸和双氧水溶解金属铜怎样配比,溶解度有多大. while I was doing可省略I was吗 Times English 粽子里的乡愁 while后面一定要接doing吗? post consumer是什么意思 ug有没有从外部复制几何功能请问UG有没有像PROE中的从外部复制几何功能呀,望知道的大哥能告诉小弟,:'(:'( poor Contains 30% post consumer materials 包含30%的消费后材料?材料是回收利用的? UG中如何复制外部几何体 老麦的粽子请写出括号里字在文中的意思和表达的效果⑴而我那时又太小,见到他总有一种“高山仰止”的感觉.⑵这就是他的“流动商店”. 圆O 的半径为定长r ,A是圆O外一个定点,P 是圆上任意一点,线段AP 的垂直平分线l 和直线OP 相交于点Q ...圆O 的半径为定长r ,A是圆O外一个定点,P 是圆上任意一点,线段AP 的垂直平分线l 和直线OP 相 忆秦娥·娄山关的译文 老麦的粽子阅读答案1.作者怀念老麦,不仅因为他的粽子好吃,( ),更是因为老麦是一个()、()、()、()的人.(请用文中带有概括性的词语填空)2.请写出括号里字在文中的意思和表 以下哪一个说法是正确的:I want to know what was the matter with him 和I want to know what the matter was with him 落落写的关于十七岁的文章还发表在青年文摘上我记得是一篇她怀念十七岁的文章,发表在青年文摘上, 1.作者怀念老麦,不仅因为他的粽子好吃,( ),更是因为老麦是一个()、()、()、()的人.(请用文中带有概括性的词语填空)2.请写出括号里字在文中的意思和表达的效果⑴而我那时 强磁场如何产生较大的力?听说磁场产生力可以利用来驱动一些机器 那么这些力如何得来?如何利用?最好附图解释 世界上真的有忘记爱情的东西吗?如题 老麦的粽子 1.作者怀念老麦,不仅因为他的粽子好吃,( ),更是因为老麦是一个()、()、()1.作者怀念老麦,不仅因为他的粽子好吃,(货真价实 ),更是因为老麦是一个()、()、() CF(穿越火线)枪的原型求CF(穿越火线)3支枪的原型重机枪M603狙B82A1狙AWM可以的话给出介绍CF里面的介绍就不用了,但图方面我要的是真实的图 忆秦娥 娄山关中忆秦娥跟词的什么有关 Mary meets Betty while doing shopping in a supermarket,中的 while是什么意思,在句子中解释为什么? cf里R93T2的原型枪是什么 小儿强酸强碱中毒怎么办 毛泽东的《忆秦娥 娄山关》1.词中的“咽”、“碎”二字的含义2.与《七律 长征》对比从写作风格和作者抒发的感情的角度谈谈两者的区别3.写出胜利后的心情的诗句是什么所有的问题都关 Al Khater 怎么读 强酸、强碱中毒最适合用哪种物质作保护剂 毛泽东《忆秦娥,娄山关》 根据句意及首字母填空 1.I have no[m ]with me,I can't buy it 2.The coat is too[e ]for me to buy3.We can[l ]from each other4.I'm from the PRC,I'm[C ]5.It's hot now,Let's[s ]in the lake6.The panda is very shy,so please be very[q ]7.Mary is good Burj Al Arab 怎么读 花季寻春,作文怎么写, 替换单词 句意不变 The dress is fine .I will ____ (buy) it.(what)______ about this red dress?It is nice.How many bottles do you _______(want).Two bottles ,piease.根据句意及首字母提补全单词Is that a_____.No,I need some eggs,too.Wha really interesting ,i never saw anything like it, 强酸、强碱中毒不能吃什么 “Textbooks Should be Recycled?”关于这个题目的英语作文 It Is _______ great .1、not 2、never 3、hardly 4、really 是往好的方面说的 强酸强碱中毒后最适合用哪种物质作保护剂 Textbooks should be Recycled 像这种题目作文怎么写? 用横线画下面的不是同一类的词 The founders____the movement adoptes it in honor of Switzerland 语法填空 填什么为什么 Texbooks Should be Recycled?为题写一篇100字的英语作文 Which school orcollege do you go to? 读书笔记好句加赏析 题目text book should be recycled?字数越多越好 画出不是同一类的词语 繁星.春水读书笔记,(原文加赏析)求一篇繁星春水的好词好句,或赏析,具体原文~ 作文,以textbook should be recycled为题说说建议之类的dui明天要交 _____do you go to school?A.who B.which C.where D.what是不是选C?为什么呢? 背影读书笔记,赏析 my husband has a favorite saying:"a bargain is bargain when you don't buy it"._(1 therefore2yet 3instead4besides_) he sets aside his simple ways when we dine out.His relatives always enter a restaurant with calculators to make sure they never __ 如图,如果∠B=∠1,那么根据_______,可得DE//BC;如果∠B=∠2,那么根据“同位角相等,两直线平行”,可得____//_____ 遇到强碱、强酸如氢氧化钠、氢氧化钙、浓硫酸、硝酸、盐酸等烧伤,应采取以下哪种措施最合适?( )A、先用柠檬酸或碳酸氢钠溶液中和残留物,再用清水冲洗,然后送医院B、用大量清水 米粉店枪杀细节曝光:事发前一广东老板以色列军队炮击加沙打死一名巴勒斯坦人旧金山地方检察院举行反家暴妇女维权座日防相:警戒中国舰机无问题 不理解中沙特女性反抗禁驾令 小伙因改编歌曲助西班牙走出两年经济衰退 首次出现经济约旦河西岸推进环保 巴以或实现“环境日方回应“中国抗议日舰闯入中方演习区新闻分析:俄乌“斗气” 影响有限美医院工作人员患结核病 数百新生儿或太阳系外发现一颗类似地球的行星(图)研究发现:SARS类病毒或由蝙蝠直接印尼强烈抗议美国监听 要求美国政府作英国脱离欧盟将导致苏格兰独立纽约买烟最低年龄提高到21岁洪航勇任杭州市人大常委会代理主任(图美辱华主持人回应华人起诉:他们愿浪费国际刑事法院推迟审理肯尼亚总统案美国航班飞行中将允许使用部分电子设备10月份国际大事回顾:美联邦政府关门奥巴马喊话投资者“选择美国”资源型养老地产 或成热销主力债市下半年仍有不错预期歌手平安最爱荷兰球星罗本CIA特工“宅”在伊拉克部分中企员工领到撤离急救包切尔西·克林顿:最高薪的菜鸟记者?创新规划引领陆家嘴金融中心开发2014高考分数线公布江苏卫视:宁财神“非诚”合约已到期 苏牙禁赛9场 “禁足”4个月净水器过滤精度并非越高越好浦江华侨城8期开盘日销3.8亿美国欲“招安”伊拉克逊尼派武装 打击教育部:高考改革方案将择期公布探秘巴西最大贫民窟民生码头打造文化产业演艺创意区全世界都爱梅西:其腾讯微博5小时转发体检中转氨酶指标增高的提示警方昨天销毁1.3吨收缴毒品江西“夺刀少年”7月初单独高考聋哑儿童加入“舞向未来”之旅
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘