简介
本文是 智慧手环机
的操控文档
功能说明
bracelet_machine_sdk
- 发放手环
- 归还手环
- 设置手环数量
XiaoLiCloudDemo
- 摄像头调用样例
- NFC 读卡样例
详情请看 https://github.com/ocmtech/XiaoLiCloudDemo
集成SDK
PS:建议 Activity 的 layout 加入 android:keepScreenOn="true"
,防止息屏
Gradle 自动集成
- 添加
maven
源
allprojects {
repositories {
maven { url 'http://maven.ocmcom.com:9999/repository/sdk/' }
}
}
- 在 module 的 gradle 中添加依赖
implementation 'com.ocm.lib:bracelet_machine_sdk:1.1.9'
- 点击
Sync Now
,完成
SDK 使用
本 SDK 为单例控制,回调仅能配置一个接收对象,kotlin 使用 BraceletMachineManager.
调用,Java 使用 BraceletMachineManager.INSTANCE.
调用。
初始化 SDK
必须先初始化后再使用SDK,否则将无法使用,建议在 Application 中调用
/**
* 绑定context,离线版使用
* @param context Context
*/
fun bind(context: Context)
自检
若长时间取不到手环,或者总是发放两个手环,调用一次自检方法
//默认IC卡,
checkSelf(cardType: CardType, callback: CheckSelfCallback)
校验
是否还有剩余手环
checkHasBracelet(): Boolean
检查机器是否装满了手环
checkIsFull(): Boolean
获取手环
fetchBracelet(callback: FetchCallback)
/***
* 获取手环,并写入数据
* 注意:出于安全考虑手环机不支持对手环更改密码,一旦密码操作出问题,手环将会报废
*
* @param sector SectorType 扇区,输入SECTOR1-15
* @param pwd String 密码,6字节16进制字符串,如默认:"FFFFFFFFFFFF"
* @param content String sector扇区的数据块,每块16个字节,共48个字节
* @param callback FetchCallback 获取回调
*/
fetchBracelet(sector: SectorType, pwd: String, content: String, callback: FetchCallback)
设置归还超时时间
/**
* 配置归还超时时间
* @param timeout Long 秒
*/
fun setGiveBackTimeout(timeout: Long)
归还手环
通过 BraceletMachineListener
回调结果
归还方法 1
giveBackBracelet(callback: GiveBackCallback)
/***
* 还手环,并写入数据
* 注意:出于安全考虑手环机不支持对手环更改密码,一旦密码操作出问题,手环将会报废
*
* @param sector SectorType 扇区,输入SECTOR1-15
* @param pwd String 密码,6字节16进制字符串,如默认:"FFFFFFFFFFFF"
* @param content String sector扇区的数据块,每块16个字节,共48个字节
* @param callback GiveBackCallback 获取回调
*/
fun giveBackBracelet(sector: SectorType, pwd: String, content: String, callback: GiveBackCallback)
归还方法 2
4个方法任意组合来安排回收流程,这样自由度更大
//读取回收处卡号
fun readRecyclingNo(callback: WRGiveBackCallback)
//读取回收处卡号和扇区
fun readRecyclingInfo(sector: SectorType, pwd: String, callback: WRGiveBackCallback)
//读取回收处卡号并写扇区
fun readRecyclingNoAndWriteSector(sector: SectorType, pwd: String, content: String, callback: WRGiveBackCallback)
//打开回收口
fun openRecycling(callback: AllowGiveBackCallback)
停止还手环
stopGiveBack()
停止转动滚筒
fun stopRoll()
获取手环机状态
fun fetchStatus(callback: CheckStatusCallback)
打开回收口
用于管理员放入手环
sysStartPush(listener: BraceletMachineSystemListener)
关闭回收口
用于管理员放完手环
sysStopPush(listener: BraceletMachineSystemListener)
二维码模块开关方法(2020年后的设备失效,都是一直可用)
/**
* 打开扫码器
*/
openQR()
/**
* 关闭扫码器
*/
closeQR()
补光灯开关方法
/**
* 打开 LED 补光灯
*/
openLedLight()
/**
* 关闭 LED 补光灯
*/
closeLedLight()
/**
* 打开红外补光灯,用于红外活体检测
*/
openIRLight()
/**
* 关闭红外补光灯
*/
closeIRLight()
上传日志
/**
* 上传日志
*/
fun uploadLog()
释放资源
在适当的时候释放资源,一般在 Application 的 onTerminate
中调用,也可以忽略
onDestroy()
属性
停止状态
设备是否处于停止状态,如果处于停止状态无法发放手环,需要设置当前手环数,以重新让设备启动
isStop: boolean
最大手环数
设定设备能放多少个手环,不能超过 120 个
maxBracelet
当前剩余手环数量
设定设备当前的手环数,不能超过最大手环数。当设备处于停止状态,通过设置当前手环数可以让设备重新启动
currentBracelet
�回调列表
/**
* 手环机器回调
* 可选实现
*/
interface BraceletMachineListener {
/**
* 设备断开连接
*/
fun onDisconnect() {}
/**
* 当剩余手环数量
* @param num Int 剩余数量
*/
fun onCurrentNumChange(num: Int) {}
/**
* 机器运转状态改变
* @param isStop Boolean 是否停止,停止后需要设置当前数量来重新启动
*/
fun onStateChange(isStop: Boolean){}
}
/**
* 自检回调
*/
interface CheckSelfCallback {
/**
* 自检成功
*/
fun onCheckSelfSuccess() {}
/**
* 自检失败
* @param msg String 失败原因
*/
fun onCheckSelfFail(msg: String) {}
/**
* 执行完成
*/
fun onCompleted() {}
}
/**
* 获取手环回调
*/
interface FetchCallback {
/**
* 获取手环成功
* @param no String 对应号码
*/
fun onFetchSuccess(no: String) {}
/**
* 获取手环失败
* @param msg String 提示文字
*/
fun onFetchFail(msg: String) {}
/**
* 执行完成
*/
fun onCompleted() {}
}
/**
* 还手环回调
*/
interface GiveBackCallback {
/**
* 是否允许归还手环,需要验证手环是否合法
* @param card CardDataModel 手环信息
* @param callback CheckGiveBackCallback 默认允许,调用allow方法以验证
*/
fun checkAllowGiveBack(card: CardDataModel, callback: CheckGiveBackCallback) { callback.allow(true, "") }
/**
* 还手环忙碌提醒
*/
fun onGiveBackBusy() {}
/**
* 还手环成功
* @param no String 手环号
*/
fun onGiveBackSuccess(no: String) {}
/**
* 还手环失败
* @param msg String 失败原因
*/
fun onGiveBackFail(msg: String) {}
/**
* 执行完成
*/
fun onCompleted() {}
}
/**
* 手环机系统回调
*/
interface BraceletMachineSystemListener {
fun onSuccess()
fun onFail()
}
/**
* 校验是否能还手环
*/
interface CheckGiveBackCallback {
/**
* 是否同意归还
* @param checkResult Boolean true 则同意
* @param msg String 如果拒绝,提示信息内容
*/
fun allow(checkResult: Boolean, msg: String)
}
/**
* 默认通用回调
*/
interface DefaultCallback {
/**
* 成功
* @param msg String
*/
fun onSuccess(msg: String) {}
/**
* 失败
* @param msg String 失败原因
*/
fun onFail(msg: String) {}
/**
* 执行完成
*/
fun onCompleted()
}
/**
* 手环机状态回调
*/
interface CheckStatusCallback {
/**
* 成功
* @param status BraceletMachineManager.BraceletMachineStatus 当前状态
*/
fun onSuccess(status: BraceletMachineManager.BraceletMachineStatus) {}
/**
* 失败
* @param msg String 失败原因
*/
fun onFail(msg: String) {}
/**
* 执行完成
*/
fun onCompleted() {}
}
枚举类型
/**
* 卡片类型
*/
enum class CardType {
IC , ID , UNIVERSAL;
var cmd: String = "01"
get() {
return when(this) {
IC -> "01"
ID -> "02"
UNIVERSAL -> "03"
}
}
private set
}
/**
* 手环收发模式
*/
enum class BraceletMode {
ONLINE , OFFLINE
}
/**
* 手环机状态
*/
enum class BraceletMachineStatus {
HAS_CACHE , //有缓存
NO_CACHE, //没有缓存
BUSY //忙碌
}
/**
* 允许写的扇区
*/
enum class SectorType {
SECTOR1, SECTOR2, SECTOR3, SECTOR4, SECTOR5,
SECTOR6, SECTOR7, SECTOR8, SECTOR9, SECTOR10,
SECTOR11, SECTOR12, SECTOR13, SECTOR14, SECTOR15
}
网友评论