import starCloudInstance from '../star-cloud' import {Result, supportFunctionsFeatureBit} from '../constant' export {Result} /** * 账户信息 * @typedef {Object} AccountInfo * @property {Number} uid 用户ID * @property {String} username 用户名 * @property {String} password 密码 */ /** * 初始化星云 * @param params * @param {String} params.clientId 客户端Id * @param {String} params.clientSecret 客户端密码 * @param {Array} params.accounts 账号列表,后续方法中需传入uid,若未传入则默认使用第一个账号 * @param {String} params.env 环境 * @param {Boolean} params.isReportLog 是否上报日志 */ export const init = params => { starCloudInstance.init({ ...params, platform: 1 }) } /** * 注册星云 * @returns Result */ export const register = async () => { return await starCloudInstance.register() } /** * 退出登录 * @param params * @param {Number} params.uid 用户ID */ export const logout = params => { starCloudInstance.logout(params) } /** * 选择锁 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.lockId 锁ID * @returns Result */ export const selectLock = async params => { return await starCloudInstance.selectLock(params) } /** * 开门 * @param params * @param {Number} [params.uid] 用户ID * @param {String} params.type 开门方式 close: 关门 open: 开门 * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const openDoor = async params => { return await starCloudInstance.openDoor(params) } /** * 离线密码 * @typedef {Object} OfflinePassword * @property {String} keyboardPwdName - 密码名称 * @property {Number} keyboardPwdType - 密码类型 * @property {Number} lockId - 锁 Id * @property {Number} isCoerced - 是否胁迫模式 1:胁迫 2:非胁迫 * @property {Number} startDate - 开始日期时间戳(毫秒,永久默认为0) * @property {Number} endDate - 结束日期时间戳(毫秒,永久默认为0) * @property {Number} hoursStart - 开始时间(小时, 不需要时传0) * @property {Number} hoursEnd - 结束时间(小时, 不需要时传0) */ /** * 获取离线密码 * @param params * @param {Number} [params.uid] 用户ID * @param {OfflinePassword} params.password 密码信息 * @returns Result */ export const getOfflinePassword = async params => { return await starCloudInstance.getOfflinePassword(params) } /** * 账户信息 * @typedef {Object} CheckInfo * @property {Number} lockId 锁ID * @property {Number} [keyboardPwdId] 密码ID * @property {String} [keyboardPwdName] 密码名称 * @property {String} [keyboardPwd] 密码 */ /** * 检查密码 * @param params * @param {Number} [params.uid] 用户ID * @param {CheckInfo} params.info 信息 * @returns Result */ export const checkPassword = async params => { return await starCloudInstance.checkPassword(params) } /** * 自定义密码 * @typedef {Object} CustomPassword * @property {String} keyboardPwdName - 密码名称 * @property {Number} keyboardPwdType - 密码类型:2:永久 3:限期 * @property {Number} isCoerced - 是否是胁迫密码,1:是 2:否 * @property {Number} startDate - 起始时间(毫秒) * @property {Number} endDate - 结束时间(毫秒) * @property {Number} keyboardPwd - 密码 * @property {Number} addType - 添加方式,当前仅支持1 1:蓝牙 2:网关 * @property {Number} operate - 操作 0:注册 1:修改 2:删除自定义密码 3:删除离线密码 * @property {Number} pwdRight - 是否是管理员密码 0:不是 1:是 * @property {Number} [keyboardPwdId] - 密码Id(创建无需传) * @property {Number} [pwdNo] - 密码编号(创建无需传) */ /** * 自定义密码 * @param params * @param {Number} [params.uid] 用户ID * @param {CustomPassword} params.password 密码信息 * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const customPassword = async params => { return await starCloudInstance.customPassword(params) } /** * 搜索蓝牙设备 * @callback {Function} callback 回调方法 * @returns Result */ export const searchDevice = async callback => { return await starCloudInstance.searchDevice(callback) } /** * 停止搜索 * @returns Result */ export const stopSearchDevice = async () => { return await starCloudInstance.stopSearchDevice() } /** * 绑定设备 * @param params * @param {Number} [params.uid] 用户ID * @param {String} params.name 设备名称 * @returns Result */ export const bindDevice = async params => { return await starCloudInstance.bindDevice(params) } /** * 移除坏锁 * @param params * @param {Number} [params.uid] 用户ID * @param {Array[Number]} params.lockIds 锁Id列表 * @returns Result */ export const removeBadLock = async params => { return await starCloudInstance.removeBadLock(params) } /** * 删除锁 * @param params * @param {Number} [params.uid] 用户ID */ export const deleteLock = async params => { return await starCloudInstance.deleteLock(params) } /** * 修改管理员密码 * @param params * @param {Number} [params.uid] 用户ID * @param {String} params.adminPwd 管理员密码 * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const updateAdminPassword = async params => { return await starCloudInstance.updateAdminPassword(params) } /** * 同步开门记录 * @param params * @param {Number} [params.uid] 用户ID * @param {Boolean} [params.disconnect] 操作后是否断开连接,默认断开 * @returns Result */ export const syncOpenDoorRecord = async params => { return await starCloudInstance.syncAllOpenRecord(params) } /** * 获取服务器时间 * @returns Result */ export const getServerTime = async () => { return await starCloudInstance.getServerTimestamp() } /** * 获取锁支持项 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.lockId 锁ID * @returns Result */ export const getLockSupportFeatures = async params => { return await starCloudInstance.getLockSupportFeatures(params) } /** * 电表-刷新电表信息 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.elecId 用户ID * @returns Result */ export const refreshElecInfo = async params => { return await starCloudInstance.refreshElecInfo(params) } /** * 冷水表-刷新水表信息 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.waterId 冷水表ID * @returns Result */ export const refreshColdWaterInfo = async params => { return await starCloudInstance.refreshColdWaterInfo(params) } /** * 热水表-刷新水表信息 * @param params * @param {Number} [params.uid] 用户ID * @param {Number} params.waterId 热水表ID * @returns Result */ export const refreshHotWaterInfo = async params => { return await starCloudInstance.refreshHotWaterInfo(params) } /** * 注册扩展产品(卡片、指纹、人脸、遥控、掌静脉等) * * @param {Object} params - 所需参数 * @param {string} params.type - 产品类型,['card','fingerprint','face','remote','palmVein'] * @param {string} params.keyId - 钥匙 ID * @param {string} params.uid - 用户 ID * @param {number} params.userCountLimit - 使用次数限制,整型,0xFFFF 表示不限次数 * @param {number} params.operate - 操作类型,整型,0: 注册, 1: 修改, 2: 删除, 3: 删除全部 * @param {number} params.isAdmin - 是否管理员,整型,1 表示是,0 表示否 * @param {number} params.isForce - 是否胁迫,整型,1 表示是,0 表示否 * @param {number} params.isRound - 是否循环,整型,1 表示是,0 表示否 * @param {array} params.weekDays - 循环周期,数组,Bit0 -- 6 置位分别代表周日 -- 周六,例如:循环星期一、星期二、星期四,对应为:[1,2,4] * @param {number} params.startDate - 生效日期,时间戳,永久则填0 * @param {number} params.endDate - 失效日期,时间戳,永久则填0 * @param {string} params.startTime - 生效时间,字符串,例如:'00:00' * @param {string} params.endTime - 失效时间,字符串,例如:'00:00' * @param {number} params.cardId - 卡片Id,添加后由监听事件返回,仅当 type 为 'card' 且operate!=1 时需要 * @param {number} params.cardNumber - 卡片序号,仅当 type 为 'card' 时需要 * @param {string} params.cardName - 卡片名称,仅当 type 为 'card' 时需要 * @param {number} params.cardType - 卡片类型,1:永久,2:期限,4:循环,仅当 type 为 'card' 时需要 * @param {number} params.cardUserNo - 卡UserNo,仅当 type 为 'card' 时需要 (选填) * @param {number} params.fingerprintId - 指纹id,添加后由监听事件返回,仅当 type 为 'fingerprint' 且operate!=1 时需要 * @param {number} params.fingerprintName - 指纹名,仅当 type 为 'fingerprint' 时需要 * @param {string} params.fingerprintNumber - 指纹序号,仅当 type 为 'fingerprint' 时需要 * @param {number} params.fingerprintType - 指纹类型,1:永久,2:期限,3:单次,4:循环,仅当 type 为 'fingerprint' 时需要 * @param {number} params.fingerprintUserNo - 指纹UserNo,仅当 type 为 'fingerprint' 时需要 (选填) * @param {number} params.deleteType - 删除方式,仅当 type 为 'fingerprint' 时需要 删除方式:1-通过APP走蓝牙删除,必需先通过APP蓝牙删除后再调用该接口,2-通过网关或WiFi锁删除,如果是WiFi锁或有连接网关,则可以传2,直接调用该接口从锁里删除指纹 * @param {number} params.faceId - 人脸id,添加后由监听事件返回,仅当 type 为 'face' 且operate!=1 时需要 * @param {number} params.faceName - 人脸名,仅当 type 为 'face' 时需要 * @param {string} params.faceNumber - 指纹序号,仅当 type 为 'face' 时需要 * @param {number} params.faceType - 指纹类型,1:永久,2:期限,4:循环,仅当 type 为 'face' 时需要 * @param {number} params.faceUserNo - 指纹UserNo,仅当 type 为 'face' 时需要 (选填) * @param {number} params.palmVeinId - 掌静脉id,添加后由监听事件返回,仅当 type 为 'palmVein' 且operate!=1 时需要 * @param {number} params.palmVeinName - 掌静脉名,仅当 type 为 'palmVein' 时需要 * @param {string} params.palmVeinNumber - 掌静脉序号,仅当 type 为 'palmVein' 时需要 * @param {number} params.palmVeinType - 掌静脉类型,1:永久,2:期限,4:循环,仅当 type 为 'palmVein' 时需要 * @param {number} params.palmVeinUserNo - 掌静脉UserNo,仅当 type 为 'palmVein' 时需要 (选填) * @param {number} params.remoteId - 遥控名,添加后由监听事件返回,仅当 type 为 'remote' 且operate!=1 时需要 * @param {number} params.remoteName - 遥控名,仅当 type 为 'remote' 时需要 * @param {string} params.remoteNumber - 遥控序号,仅当 type 为 'remote' 时需要 * @param {number} params.remoteType - 遥控类型,1:永久,2:期限,4:循环,仅当 type 为 'remote' 时需要 * @param {number} params.remoteUserNo - 遥控UserNo,仅当 type 为 'remote' 时需要 (选填) * @returns {Promise} - 返回注册结果的 Promise 对象 */ export const registerExtendedProducts = async params => { return await starCloudInstance.registerExtendedProducts(params) } /** * 取消注册扩展产品 * * @param {Object} params - 所需参数 * @param {string} params.Type - 产品类型,['card','fingerprint','face','remote','palmVein'] * @param {string} params.KeyID - 钥匙 ID * @param {string} params.uid - 用户 ID */ export const registerExtendedProductsCancel = async params => { return await starCloudInstance.registerExtendedProductsCancel(params) } /** * 更新支持功能项设置(带参数) * @param params * @returns {Promise<*>} */ export const updateSupportFunctionsWithParams = async params => { return await starCloudInstance.updateSupportFunctionsWithParams(params) } /** * 读取支持功能项设置 * @param params * @returns {Promise<*>} */ export const readSupportFunctionsSetting = async params => { return await starCloudInstance.readSupportFunctionsSetting(params) } /** * 获取Ic卡列表 * @param params.lockId 锁id (必填) * @param params.pageNo 页码(选填) * @param params.pageSize 每页显示数(选填) */ export const getIcCardList = async params => { return await starCloudInstance.getIcCardList(params) } /** * 获取指纹列表 * @param params.lockId 锁id (必填) * @param params.pageNo 页码(选填) * @param params.pageSize 每页显示数(选填) */ export const getFingerprintList = async params => { return await starCloudInstance.getFingerprintList(params) } /** * 获取人脸列表 * @param params.lockId 锁id (必填) * @param params.pageNo 页码(选填) * @param params.pageSize 每页显示数(选填) */ export const getFaceList = async params => { return await starCloudInstance.getFaceList(params) } /** * 获取掌静脉列表 * @param params.lockId 锁id (必填) * @param params.pageNo 页码(选填) * @param params.pageSize 每页显示数(选填) */ export const getPalmVeinList = async params => { return await starCloudInstance.getPalmVeinList(params) } /** * 获取遥控列表 * @param params.lockId 锁id (必填) * @param params.pageNo 页码(选填) * @param params.pageSize 每页显示数(选填) */ export const getRemoteList = async params => { return await starCloudInstance.getRemoteList(params) } /** * 远程开锁 * @param params * @returns {Promise<*>} */ export const remoteUnLock = async params => { return await starCloudInstance.remoteUnLock(params) } /** * 获取锁列表 * @param params * @returns {Promise<*>} */ export const getLockList = async params => { return await starCloudInstance.getLockList(params) } /** * 启动搜索wifi * @param params * @returns {Promise<*>} */ export const startSearchWiFi = async params => { return await starCloudInstance.startSearchWiFi(params) } /** * 连接wifi * @param params.ssid wifi昵称 * @param params.password wifi密码 * @returns {Promise<*>} */ export const connectWiFi = async params => { return await starCloudInstance.connectWiFi(params) } /** * 获取设备配网信息 * @param params.uid uid * @param params.deviceMac 锁mac地址 * @returns {Promise<*>} */ export const getLockNetworkInfo = async params => { return await starCloudInstance.getLockNetworkInfo(params) }