theta-ble-client-react-native
Version:
This library provides a way to control RICOH THETA using
205 lines (195 loc) • 7.09 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.WlanControlCommandV2 = void 0;
var _thetaService = require("./theta-service");
var _values = require("./values");
var ThetaBleClient = _interopRequireWildcard(require("../native"));
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
/* eslint no-useless-catch: 0 */
/**
* WLAN Control Command V2 Service
*
* Service: 3C6FEEB6-F335-4F93-A4BB-495F926DB409
*/
class WlanControlCommandV2 extends _thetaService.ThetaService {
constructor(device) {
super();
this.service = _values.BleServiceEnum.WLAN_CONTROL_COMMAND_V2;
this.device = device;
}
setNotifyScan(callback) {
const notifyCallBack = callback != null ? event => {
var _event$params, _event$params2;
if (((_event$params = event.params) === null || _event$params === void 0 ? void 0 : _event$params.ssid) != null && callback.onNotify != null) {
callback.onNotify(event.params.ssid);
}
if (((_event$params2 = event.params) === null || _event$params2 === void 0 ? void 0 : _event$params2.ssidList) != null) {
var _callback$onCompleted;
(_callback$onCompleted = callback.onCompleted) === null || _callback$onCompleted === void 0 || _callback$onCompleted.call(callback, event.params.ssidList);
// Callback is deleted because it is finished.
this.device.notifyList.delete('NOTIFICATION_SCANNED_SSID');
}
} : undefined;
this.device.notifyList.set('NOTIFICATION_SCANNED_SSID', notifyCallBack);
}
/**
* Set the network type
*
* Characteristic: 4B181146-EF3B-4619-8C82-1BA4A743ACFE
*
* @param networkType Network type
*/
async setNetworkType(networkType) {
try {
return await ThetaBleClient.nativeWlanControlCommandV2SetNetworkType(this.device.id, networkType);
} catch (error) {
throw error;
}
}
/**
* Set network type notification.
*
* Characteristic: 4B181146-EF3B-4619-8C82-1BA4A743ACFE
*
* @param callback Notification function
*/
async setNetworkTypeNotify(callback) {
try {
await ThetaBleClient.nativeWlanControlCommandV2SetNetworkTypeNotify(this.device.id, callback ? true : false);
this.device.notifyList.set('WRITE_SET_NETWORK_TYPE', callback ? event => {
var _event$params3;
callback((_event$params3 = event.params) === null || _event$params3 === void 0 ? void 0 : _event$params3.networkType, event.error);
} : undefined);
} catch (error) {
throw error;
}
}
/**
* Acquires the Wi-Fi/LAN/LTE connection status
*
* Characteristic: 01DFF9FF-00FA-44DD-AA6A-71D5E537ABCF
*
* @return Wi-Fi/LAN/LTE connection status
*/
async getConnectedWifiInfo() {
try {
return await ThetaBleClient.nativeWlanControlCommandV2GetConnectedWifiInfo(this.device.id);
} catch (error) {
throw error;
}
}
/**
* Set Wi-Fi/LAN/LTE connection status notification
*
* Characteristic: A90381FC-2DDA-4EED-B24B-60F3E6651134
*
* @param callback Notification function
*/
async setConnectedWifiInfoNotify(callback) {
try {
await ThetaBleClient.nativeWlanControlCommandV2SetConnectedWifiInfoNotify(this.device.id, callback ? true : false);
this.device.notifyList.set('NOTIFICATION_CONNECTED_WIFI_INFO', callback ? event => {
callback(event.params, event.error);
} : undefined);
} catch (error) {
throw error;
}
}
/**
* Start scanning for SSID
*
* Change the network type to SCAN and start scanning for SSID
*
* Notify characteristic: 60EEDCCC-426A-49CF-9AE1-F602284703D7
*
* @param timeout Timeout of scanning
* @param callback Notification function
*/
async scanSsidStart(timeout, onNotify, onCompleted) {
try {
await ThetaBleClient.nativeWlanControlCommandV2ScanSsidStart(this.device.id, timeout);
this.setNotifyScan({
onNotify,
onCompleted
});
} catch (error) {
this.setNotifyScan();
throw error;
}
}
/**
* Scanning stop for SSID
*
* Notify characteristic: 60EEDCCC-426A-49CF-9AE1-F602284703D7
*/
async scanSsidStop() {
try {
await ThetaBleClient.nativeWlanControlCommandV2ScanSsidStop(this.device.id);
this.setNotifyScan();
} catch (error) {
throw error;
}
}
/**
* Set access point. IP address is set dynamically.
*
* Characteristic: 4980ACBA-E2A5-460B-998B-9AD4C49FBE39
*
* @param ssid SSID of the access point.
* @param ssidStealth True if SSID stealth is enabled.
* @param security Authentication mode.
* @param password Password. If [security] is "NONE", pass empty String.
* @param connectionPriority Connection priority 1 to 5.
* @param proxy Proxy information to be used for the access point.
*/
async setAccessPointDynamically(ssid, ssidStealth = false, security = _values.WifiSecurityModeEnum.NONE, password = '', connectionPriority = 1, proxy) {
try {
await ThetaBleClient.nativeWlanControlCommandV2SetAccessPointDynamically(this.device.id, {
ssid,
ssidStealth,
security,
password,
connectionPriority,
proxy
});
} catch (error) {
throw error;
}
}
/**
* Set access point. IP address is set statically.
*
* Characteristic: 4980ACBA-E2A5-460B-998B-9AD4C49FBE39
*
* @param ssid SSID of the access point.
* @param ssidStealth True if SSID stealth is enabled.
* @param security Authentication mode.
* @param password Password. If [security] is "NONE", pass empty String.
* @param connectionPriority Connection priority 1 to 5.
* @param ipAddress IP address assigns to Theta.
* @param subnetMask Subnet mask.
* @param defaultGateway Default gateway.
* @param proxy Proxy information to be used for the access point.
*/
async setAccessPointStatically(ssid, ssidStealth = false, security = _values.WifiSecurityModeEnum.NONE, password = '', connectionPriority = 1, ipAddress, subnetMask, defaultGateway, proxy) {
try {
await ThetaBleClient.nativeWlanControlCommandV2SetAccessPointStatically(this.device.id, {
ssid,
ssidStealth,
security,
password,
connectionPriority,
ipAddress,
subnetMask,
defaultGateway,
proxy
});
} catch (error) {
throw error;
}
}
}
exports.WlanControlCommandV2 = WlanControlCommandV2;
//# sourceMappingURL=wlan-control-command-v2.js.map