//
// BLElib.h
// BLElib
//
// Created by szbosk on 16/8/16.
// Copyright © 2016年 szbosk. All rights reserved.
// #import <Foundation/Foundation.h>
@interface BLElib : NSObject /**
* 单例调用
*
* @return 无
*/
+ (BLElib *)shardInstance; /**
* 传入对应的数据,进行开门 内部封装了蓝牙扫描,蓝牙数据发送。
* 本sdk只封装了开门功能,云平台功能完全由客户自行开发。
* 刷卡记录参考业务逻辑:刷卡记录是直接通过app上传到云服务器。
* 如果网络畅通,开门成功时直接上传云服务器。如果开门时网络不通先保存本地数据库,下次进入app或android后台服务注册网络通知,再次网络畅通时上传。
*
* 所传入的字符串为16进制表示的字符串,例如:ffff
*
* @param mac 需要连接的蓝牙设备的mac地址,注意:需要使用我司的蓝牙设备,且前缀为bledoor 。取蓝牙广播名字的后8个字母。 bledoor-XXXXXXXX, 也就是取8位。
* sdk包已经封装了蓝牙设备扫描,只要把这个XXXXXXXX传过去,sdk会自动扫描这个设备便按参数发送开门数据。也可以自己先扫描到设备后再调用sdk去开门。
* @param RfId 所需要的RfId (长度8位) 用户的id,4个字节8个16进制字符,产生新用户时,app开发商自己的服务器自增1分配给用户。设备有刷卡记录。如果是从一体机门禁设备里采集,这个唯一的id就是标识那个用户刷的卡。
* 每个记录有个id号,这个rfid表示是那个刷的卡。如果是刷卡的时候,有联网就用自己的账号体系标识上传刷卡记录,可以rfid默认00000001,他没有用处。参考:没网的时候,刷卡记录可以缓存APP本地。有网时再上传。
* @param BlePwd 所设置的蓝牙设备的密码 (长度12位) 设备默认出厂密码 6C69755F1762
* @param cell 授权的四位开门匹配小区 (长度4位) 默认写死 0001
* @param addr 授权的四位开门匹配地址 (长度4位) 0001到00FE 1到254
* @param start 授权的开门的起始时间 (长度8位) 有效期开始 2000年一月一日0点0分0秒。单位秒。{ 0x00, 0x00, 0x00, 0x01 } 转成10进制的1秒。2000年一月一日0点0分1秒。
* @param stop 授权的开门结束时间 (长度8位) 有效期结束 全是0xFF是最大的有效期
* @param floor 授权的可以开的楼层 (长度16位) 默认ffffffffffffffff
* [b BleMac:@"CFB28664" RfId:@"00000001" BlePwd:@"6C69755F1762" cell:@"0001" addr:@"0001" start:@"00000000" stop:@"ffffffff" floor:@"ffffffffffffffff"];
* IOS不能读取蓝牙的mac地址,蓝牙模块广播的名字后8位就是蓝牙的后8位mac地址
*/
- (void)BleMac:(NSString *)mac RfId:(NSString *)RfId BlePwd:(NSString *)BlePwd cell:(NSString *)cell addr:(NSString *)addr start:(NSString *)start stop:(NSString *)stop floor:(NSString *)floor; /**
* 传入数据后,延迟5S(因蓝牙需要与硬件交互)调用此方法,可以得到开门结果
*
* @return 返回结果对应的字符串
* @return -1:蓝牙中心管理者未初始化
* @return 0:手机蓝牙状态未打开
* @return 1:未匹配到与所传入蓝牙MAC地址对应的设备
* @return 2:开门数据错误
* @return 3:开门成功
* @return 4:所传入的数据长度不对
* @return 5:连接蓝牙失败
*/
-(NSString *)ResultOfOpen;
@end