iOS之app直接和硬件交互、wifi、红外、蓝牙、zigbee、监控摄像头相关
app和硬件交互的几种方式:zigbee,蓝牙,wifi、nfc交互、声波。https://www.jianshu.com/p/aaf963fd6ebe
手机访问硬件的几种模式:https://blog.csdn.net/zoomdy/article/details/51594977
https://blog.csdn.net/qq_33570093/article/details/81567758
App连接外设的几种方式:https://www.jianshu.com/p/df5804b556ce
WiFi(短距离):主要还是硬件可以通过wifi连接到路由,通过路由连接上互联网。app连接硬件,通过socket通信,通过socket设置ssid和密码,在各式各样的硬件上植入软ap,再利用手机连接软ap配置路由的ssid和密码, 然后智能硬件就可以自行连接了路由器了,也就实现了上网的功能.硬件中的软ap连接路由器后,通过我们自己的服务器处理,手机通过4G网络也能够控制智能硬件了.
WIFI模块各种常见的配网方式说明及其比较:https://blog.csdn.net/changyourmind/article/details/78631357
ZigBee技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。
主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。
zigbee网络攻防:https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=16143&highlight=iot
ZigBee技术是一种近距离、低复杂度、低功耗、低速率、低成本的双向无线通讯技术。
主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。
zigbee和intenet远程监控系统的设计:https://wenku.baidu.com/view/09223b17240c844768eaee09.html
#import <Foundation/Foundation.h>
#import "Cvs2ResEntity.h"#define SP_ERROR_MSG 2001 //错误的消息体格式
#define SP_ERROR_PARAM 2002 //错误的参数
#define SP_ERROR_NOT_SUPPORT 2003 //不支持的操作
#define SP_ERROR_VERITY_FAILED 2004 //目标鉴权失败
#define SP_ERROR_EPID 2006 //EPID鉴权失败
#define SP_ERROR_TIMEOUT 2009 //命令超时
#define SP_ERROR_ROUTE 2010 //路由失败
#define SP_ERROR_DISPATCHER 2018 //没有可用的分发单元#define MC_ERROR_INTER_PARAM 3002 //函数参数错误
#define MC_ERROR_REQUEST_TIMEOUT 3003 //请求超时
#define MC_ERROR_ADDRESS -3002 //服务器地址或端口不可达
#define MC_ERROR_CONNECT_TIMEOUT -3003 //命令连接超时
#define MC_ERROR_ROUTE -3008 //路由失败
#define MC_ERROR_CUI -3009 //服务为开启
#define MC_ERROR_CONNECT_ADDRESS -3010 //地址不可达
#define MC_ERROR_USER -3301 //用户不存在
#define MC_ERROR_USER_DISABLED -3302 //用户被禁用
#define MC_ERROR_PASSWORD -3306 //密码错误
#define MC_ERROR_CHECK_TIMEOUT -3309 //认证超时
#define MC_ERROR_ROUTE_CUI -3310 //路由失败
#define MC_ERROR_NO_CUI -3503 //没有在线的用户接入服务
#define MC_ERROR_REDIRECT_CUI -3504 //没有支持重定向的用户接入服务
#define DC_ERROR_DATA_TIMEOUT -4005 //数据通道请求超时
#define DC_ERROR_CONNECT -4006 //连接错误
#define DC_ERROR_TCP_SEND -4007 //TCP发送出错
#define DC_ERROR_TCP_RECV -4008 //TCP接收出错typedef enum // 云台的转动的方向
{kCvs2PtzUp = 0,kCvs2PtzDown,kCvs2PtzLeft,kCvs2PtzRight,
}Cvs2PtzTurnDirection;@class Cvs2VideoView;
@protocol MCHelperDelegate;@interface MCHelper : NSObject@property (nonatomic, readonly) NSString *version;
@property (nonatomic, assign) id<MCHelperDelegate>delegate;/*** @brief 连接服务器** @param address 地址* @param usPort 端口* @param userName 用户名* @param password 密码* @param epid epid* @param fixedAddr 是否开启穿透网闸** @return 返回的错误码 0表示登录成功*/
- (NSInteger)login:(NSString *)addressport:(unsigned short)usPortuser:(NSString *)userNamepsd:(NSString *)passwordepid:(NSString *)epidfixedAddr:(BOOL)fixed;/*** @brief 退出服务器*/
- (void)loginOut;/*** @brief 获取当前服务器下所有的设备, 确保之前已经调用了fetchDomainNode,获取成功以后可以在rootDomain的childrenArray集合中查找* 这个函数会去发网络远程命令,一般只需要调用一次,除非想刷新资源.* @param pDomain 域节点** @return 错误码; 0表示成功*/
- (NSArray *)fetchPeerUnits:(NSInteger *)error;/*** @brief 获取摄像头资源,确保之前已经调用了fetchDomainNode和fetchPeerUnits。如果参数peerUnit为空,则获取所有的设备。* 获取成功以后,如果想要查找某个摄像头,应该用摄像头的PUID和cIdx在对应的Cvs2PeerUnit实例的childrenArray集合中查找** @param pPU 可为NULL或者域下某个具体的设备对象** @return 错误码; 0表示成功*/
- (NSInteger)fetchCameras:(Cvs2PeerUnit *)peerUnit;/*** @brief 单独获取指定的PUID的设备和摄像头资源** @param puid* @error 错误码* @param puid** @return Cvs2PeerUnit 返回的Cvs2PeerUnit需要上层调用者释放。*/
- (Cvs2PeerUnit *)fetchOnePU:(NSString *)puid error:(NSInteger *)err;/*** @brief 渲染视频接口.** @param puid 视频资源的PUID* @param ucIdx 视频资源的index* @param type 流类型 0:高清 1:标清 注意:设备支持高清流,但标清不一定支持。* @param renderView 播放窗口, renderView必须是Cvs2VideoView类的实例.** @return 0 成功*/
- (NSInteger)rend:(NSString *)puid index:(unsigned char)ucIdx streamType:(NSInteger)type target:(UIView *)renderView;/*** @brief 停止视频*/
- (void)stopRend;/*** @brief 转动摄像头,设备必须有云台才能转动** @param pVideo 摄像头对象* @param direction 转动的方向** @return 0表示成功*/
- (NSInteger)ptzStartTurn:(Cvs2ResEntity *)pCamera direction:(Cvs2PtzTurnDirection)direction;/**s* @brief 停止转动摄像头** @param pVideo 摄像头对象** @return 0 表示成功*/
- (NSInteger)ptzStopTurn:(Cvs2ResEntity *)pCamera;/**s* @brief 移动云台至预置位,设备必须有云台才能转动** @param pVideo 摄像头对象** @return 0 表示成功*/
- (NSInteger)moveToPresetPos:(uint)pos videoRes:(Cvs2ResEntity *)pCamera;- (UIImage *)currentImage;/**s* @brief 录制当前正在播放的视频.** @param path文件全路径,需带上后缀如.mp4** @return 0 表示成功*/
- (NSInteger)startRecord:(NSString *)path;
- (void)stopRecord;/**s* @brief 抓拍.** @param path文件全路径,需带上后缀如.png** @return 0 表示成功*/
- (BOOL)snapshot:(NSString *)path;
@end/*** @brief 代理类*/
@protocol MCHelperDelegate <NSObject>/*** @brief 这个代理方法是执行在子线程中,主要是侦测连接服务器,接受数据出错时返回的错误码** @param error 返回的错误码*/
- (void)connectError:(NSInteger)error;@end
iOS之app直接和硬件交互、wifi、红外、蓝牙、zigbee、监控摄像头相关相关推荐
- Python语言学习:Python语言学习之硬件交互应用(arduino、树莓派等)相关的简介、案例应用之详细攻略
Python语言学习:Python语言学习之硬件交互应用(arduino.树莓派等)相关的简介.案例应用之详细攻略 目录 Python与硬件交互应用 1.适合运行python的嵌入式硬件系统 1.1. ...
- iOS原生App与H5页面交互 离线缓存 笔记
//webview每次加载之前都会调用这个方法,利用该代理方法截取JS的href来调用原生的方法- (BOOL)webView:(UIWebView*)webView shouldStartLoadW ...
- iOS开发 App内自动连接指定Wi-Fi
目前很多智能设备配置网络的时候都有app内部直连Wi-Fi的功能(iOS11之前需要用户跳到Wi-Fi设置界面去连),iOS11后苹果提供 NEHotspotConfigurationManager ...
- iOS直播app原理
一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形处理,视频/音频压缩,CDN分发,即时通 ...
- iOS:app直播---原理篇
[如何快速的开发一个完整的iOS直播app](原理篇) 转载自简书@袁峥Seemygo:http://www.jianshu.com/p/7b2f1df74420 一.个人见解(直播难与易) 直播难: ...
- 开发一个完整的iOS直播app必须技能
今年,直播行业火了,当然也诞生了一大批网红,甚至明星也开始直播了,因此现在都要搞直播了!由于第一次接触,花了很多时间了解直播,目前整理了直播的原理(因为项目汇报的需要就整理了一下),现在只是展示一下从 ...
- (转)【如何快速的开发一个完整的iOS直播app】(原理篇)
原文链接:https://www.jianshu.com/p/bd42bacbe4cc [如何快速的开发一个完整的iOS直播app](原理篇) [如何快速的开发一个完整的iOS直播app](原理篇) ...
- 如何快速的开发一个完整的iOS直播app(原理篇)
本文转自袁峥Seemygo的博客分享.觉得很不错.特意粘来给大家分享. 1.一个完整直播app功能(来自落影loyinglin分享) 1.聊天 私聊.聊天室.点亮.推送.黑名单等; 2.礼物 普通礼物 ...
- 如何快速开发一个完整的ios直播app
如何快速开发一个完整的iOS直播app 一.个人见解(直播难与易) 直播难:个人认为要想把直播从零开始做出来,绝对是牛逼中的牛逼,大牛中的大牛,因为直播中运用到的技术难点非常之多,视频/音频处理,图形 ...
最新文章
- 代码质量 重构 代码鸡汤
- 误码率matlab怎么计算,Matlab 仿真(7,4)汉明码 传输误码率
- 你需要简单了解JVM中的内存长什么样子
- MySql查询某列是否包含汉字
- linux 系统启动级别,LINUX系统启动级别介绍与解释
- 程序包管理之编译安装
- 国产在线三维云CAD:CrownCAD (在线建模CAD软件)
- java中怎么画弧线加粗,CAD中怎么把一段线、曲线或圆弧加粗
- 7-16 新浪微博热门话题 (30 分)
- 谷歌翻译 onebox 升级
- iOS10软件崩溃 Xcode8崩溃 打印/字体等问题汇总 韩俊强的博客
- 修改MTK平台Android P系统支持系统A/B分区升级
- iOS Swift 将公历日期转换为中国农历
- 手机epub阅读软件
- cognos 是什么?
- 二进制安装k8s v1.22.8集群
- 我的NVIDIA开发者之旅-Jetson Nano 2gb教你怎么训练模型(完整的模型训练套路)
- 如何系统地做产品规划(极简版)
- 2005年5月信息系统监理师
- 2-15 微信小程序array数据类型(附带方法解析)
热门文章
- 【C++ 程序】 sin(x)的泰勒展开
- androidstudio连接网易MUMU模拟器
- 第二课 如何在WINDOWS环境下搭建以太坊开发环境
- 【教程】用Python破解WiFi
- Dojo Learning: Dojo.data
- 只选对的,不选贵的,近期热门显卡导购
- 如何准备阿里的社招技术面试
- 怎么用计算机发出弹奏的声音,计算机发出刺耳的声音怎么了?[详细介绍]
- 滚动条响应鼠标滑轮事件实现上下滚动的js代码
- Java使用JestClient操作ElasticSearch