UNPKG

tuya-panel-kit

Version:

a functional component library for developing tuya device panels!

88 lines (77 loc) 2.4 kB
/* eslint-disable import/prefer-default-export */ import { NativeModules } from 'react-native'; import { TYSdk } from '../../../TYNativeApi'; import { JsonUtils, CoreUtils } from '../../../utils'; const ESPNative = Object.assign({}, NativeModules.TYRCTMqttManager); const requireRnVersion = '5.21'; const { compareVersion, get } = CoreUtils; const TYNative = TYSdk.native; export const getRssi = () => { return new Promise((resolve, reject) => { const { devId } = TYSdk.devInfo; TYNative.apiRNRequest( { a: 'tuya.m.device.upgrade.rssi.info.query', devId, v: '1.0', }, d => { const data = JsonUtils.parseJSON(d); resolve(data); }, e => { reject(e); } ); }); }; /** * 下发mqtt消息 * @param {Number} protocol * @param {Object} param * @param {Function} success * @param {Function} error */ const sendMqttData = (param, protocol, success, error) => { const appRnVersion = get(TYNative, 'mobileInfo.appRnVersion'); const isGreater = appRnVersion && compareVersion(appRnVersion, requireRnVersion); // 获取的版本是否比要求的版本高 if (isGreater === undefined || !NativeModules.TYRCTMqttManager || isGreater === -1) return; ESPNative.sendMqttData(protocol, param, success, error); }; /** * 接收mqtt消息 * @param {Number} protocol * @param {Object} param * @param {Function} success * @param {Function} error */ const receiverMqttData = protocol => { const appRnVersion = get(TYNative, 'mobileInfo.appRnVersion'); const isGreater = appRnVersion && compareVersion(appRnVersion, requireRnVersion); // 获取的版本是否比要求的版本高 if (isGreater === undefined || !NativeModules.TYRCTMqttManager || isGreater === -1) return; ESPNative.receiverMqttData(protocol); }; TYNative.sendMqttData = protocol => { const param = { reqType: 'sigQry' }; return new Promise((resolve, reject) => { sendMqttData( param, protocol, data => { resolve(JsonUtils.parseJSON(data)); }, error => { reject(error); } ); }); }; TYNative.receiverMqttData = protocol => { return new Promise((resolve, reject) => { receiverMqttData(protocol); }); }; TYNative.getContentRouter = () => { return TYSdk.apiRequest('tuya.open.content.rooter', { scene: 'net_set' }, '1.0'); }; export default TYNative;