使用Redpark Serial cable SDK 开发软件连接iphone的研究

原创 2012年03月31日 15:21:02

1、Introduction简介

  • 这个SDK以及包里带的一个接口使用例子提供给:IOS程序开发者,并且需要了解Serial data communications

1.1、 Overview

  • 这个SDK包含一个objective-c类“RscMgr”  (Redpark serial cable Manager)这个类封装和抽象化了redpark serial cable protocol,使它变得简单和容易使用。
  • RscM类提供了一些接口方法去做: init , setBaud , open , read , write ... 还有style of interface to the serial port 串行端口的接口类型,要使用它要include "RscMar.h"和"libRscMgr.a" 到你的项目。
  • 前提:要熟悉编写cocoa程序给ios设备和知道objective-c delegate protocol interfaces work.
  • 下载的SDK镜片里面有一个IOS 例子"RSC Demo" 示范如何使用RscMgr类去和RSC serial port交互。 项目里面的“RootViewController.h”和“RootViewController.m” 就是一个例子如何使用RscMgr class

2、Notes for Developers
2.1、Using the Redpark Serial Cable Manager

  • 应该实例化一个RscMgr在程序里面然后调用init , 这个RscMgr会向ios设备注册一个通知检测是否有配件连接或者断开。如果是ios4.2系统设备断开和连接的通知也被检测到当程序进入后台或者打开。这个同样应该处理RSC serial port的硬件连接和断开连接,如果附加配件匹配了协议支持 initWithProtocol ,那么RscMgr就会调用cableConnected callback。
  • RscMgr类需要另外一个objective-c object去制定为它的delegate 去响应多种与cable相关的事件(例如:cableConnected, cableDisconnected, readBytesAvailable.......)习惯上哪个类用来实例化RscMgr就让这个类做这个RscMgr的委托类。可以参考viewDidLoad在RootViewController.m 是一个例子用来初始化这些process
  • 一旦连接成功,程序可以打开一个连接到serial port和开始数据交互,任何时间,程序可以改变port configuration,调用有"set"前置的方法,例如:setBaud, setDataSize, setParity, setStopBits.
  • A new key needs to be added to the application plist " Supported external accessory protocols", with Item 0's value being "com.redpark.hobdb9" .
  • 程序必须调用open在调用write或者read.  委托的物体会接收到readBytesAvailable 回调当serial data 已经到达时候。 这个委托类需要调用read 在这个回调方法里面获取有效的数据避免超时读取。看看readBytesAvailable:function in RootViewController.m.  这个RscMgr类会缓存1024bytes数据在下一次数据到达前。
  • 这个委托类同时接受port status更新在portStatusChanged callback回调方法内。程序也许希望去搜索modem signal states可以使用getModemStatus 访问器。如果流量控制使用,那么程序需要调用 getPortStatus和query the specific bits in the serialPortStatus structure.(在redparkSerial.h内)

Advanced Options:高级选项
  • 在基础的serial port configuration options(setBaud, setDataSize....etc...) 一个开发者也许需要某些额外的需求而直接使用serialPortConfig和serialPortControl structures (在redparkSerial.h)。然而开发者应该谨慎开启这些“advanced” 特殊属性除非他们了解他们的设备需要这些。
  • 还有一些关于TX/RX的....暂时不翻译了。


Run Loop:
  • 要记住一点:the RscMar 输入和输出流需要在程序的Runloop里面。因此,任何writes or reads都是异步的,并且有可能没有被处理知道你的程序回到RunLoop. 这个程序仅有的一个问题是需要精确地传送和准时的接收。正如前面有提及的:程序需要使用readBytesAvailable delegate 委托方法去检测是否数据已经到达才马上读取。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux 日常使用和开发软件【记录专用贴】

本人刚使用 Linux 系统不到半年,所以有很多软件没用过,在网上看到相关的帖子,现特记录。正在整理中。。。 下面给出一些推荐使用的可以处理一般事情的程序。至于你的专业上要用到的科学和工程软件...
  • dscyw
  • dscyw
  • 2013-09-29 16:06
  • 941

Android 使用网页开发软件界面

在项目的assets目录放入index.html文件 Insert title here A { COLOR: #FFFFFF; TEXT-DECORATION: none ...

Xcode-苹果开发软件熟练使用之代码块

写在前面: Xocde8.0之后,苹果屏蔽了8.0以前可以使用的一款注释插件。原想找到那个插件重新安装继续使用,突然又让我想起了Xcode自带的“代码块”。 犹记得当初第一次接触iOS开发的...

android使用html开发软件界面

使用html开发软件界面 因为android软件开发分工目前还没有细化,程序员往往需要负责软件界面的开发, 虽然软件的界面图片已经由美工设计好了,但如果使用layout技术把软件做成如图片所示的界...

关于eclipse环境开发软件的使用

eclips(集成开发环境)的使用 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse ...

Facebook是如何开发软件的

主题:Facebook是如何开发软件的(大家都来说说是否可行?) 精华帖 (2) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0) 作者 正文 ...

Android开发软件架构思考以及经验总结

欢迎关注我的知乎:井方哥 前言架构设计,到底是什么呢?基于这段时间的学习和自己的一些思考,我认为架构是基于产品和技术所达成的一种共识。我不是专业的架构师,也不是经验老道的开发者。本文目的有三,一是整理...

AndroidStudio开发软件

因为现在公司要求AndroidStudio开发的比较多,本人也是想熟悉熟悉软件,就用AndroidStudio写写Demo 今天做猜歌游戏的时候,通过AssetManager对象怎么也拿不到asse...

Arcgis+ArcEngine+Java开发软件安装配置问题

由于最近要做数据点与泰森多边形的转换,故需要安装Arcgis。其中ArcEngine为Arcgis的子模块,在安装Arcgis过程中可一并安装。         安装过程指导参见:http://mal...

音视频互动开发软件能拿来干什么?

音视频即时通讯开发功能介绍           即时通讯开发,也叫音视频即时通信开发。随着互联网的发展,人们之间的交流逐步从电话移向网络。每天都有相当多的人在使用各种网络交流工具,如Anychat,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)