diff --git a/src/index.ts b/src/index.ts index 8b8d55f6c2..c21f2332fe 100644 --- a/src/index.ts +++ b/src/index.ts @@ -89,6 +89,7 @@ import { Push } from './plugins/push'; import { SafariViewController } from './plugins/safari-view-controller'; import { Screenshot } from './plugins/screenshot'; import { SecureStorage } from './plugins/securestorage'; +import { Serial } from './plugins/serial'; import { Shake } from './plugins/shake'; import { Sim } from './plugins/sim'; import { SMS } from './plugins/sms'; @@ -199,6 +200,7 @@ export * from './plugins/safari-view-controller'; export * from './plugins/screen-orientation'; export * from './plugins/screenshot'; export * from './plugins/securestorage'; +export * from './plugins/serial'; export * from './plugins/shake'; export * from './plugins/sim'; export * from './plugins/sms'; @@ -308,6 +310,7 @@ window['IonicNative'] = { SafariViewController, Screenshot, SecureStorage, + Serial, Shake, Sim, SMS, diff --git a/src/plugins/background-geolocation.ts b/src/plugins/background-geolocation.ts index c781cae54d..af876b7139 100644 --- a/src/plugins/background-geolocation.ts +++ b/src/plugins/background-geolocation.ts @@ -48,7 +48,7 @@ export interface BackgroundGeolocationResponse { * altitude if available, in meters above the WGS 84 reference ellipsoid. */ altitude: number; - + /** * accuracy of the altitude if available. */ diff --git a/src/plugins/serial.ts b/src/plugins/serial.ts new file mode 100644 index 0000000000..4d548faf74 --- /dev/null +++ b/src/plugins/serial.ts @@ -0,0 +1,111 @@ +import { Plugin, Cordova } from './plugin'; +import { Observable } from 'rxjs/Observable'; + +declare var serial: any; + +export interface SerialPermissionOptions { + vid: string; + pid: string; + driver: string; +} + +export interface SerialOpenOptions { + baudRate: number; +} + +/** + * @name Serial + * @description + * This plugin provides functions for working with Serial connections + * + * @usage + * + * ``` + * import { Serial } from 'ionic-native'; + * + * Serial.requestPermission({ + * vid: '0403', + * pid: '6001', + * driver: 'FtdiSerialDriver' + * }).then(() => { + * Serial.open({ + * baudRate: 38400 + * }).then(() => { + * console.log('Serial connection opened'); + * }); + * }).catch((error: any) => console.log(error)); + * + * ``` + */ +@Plugin({ + pluginName: 'Serial', + plugin: 'cordovarduino', + pluginRef: 'serial', + repo: 'https://github.com/xseignard/cordovarduino', + platforms: ['Android'] +}) +export class Serial { + + /** + * Request permission to connect to a serial device + * + * @param options {SerialPermissionOptions} Options used to request serial permissions + * @return {Promise} Returns a promise that resolves when permissions are granted + */ + @Cordova() + static requestPermission(options: SerialPermissionOptions): Promise { return; } + + /** + * Open connection to a serial device + * + * @param options {SerialOpenOptions} Options used to open serial connection + * @return {Promise} Returns a promise that resolves when the serial connection is opened + */ + @Cordova() + static open(options: SerialOpenOptions): Promise { return; } + + /** + * Write to a serial connection + * + * @param data {any} data to write to the serial connection + * @return {Promise} Returns a promise that resolves when the write is complete + */ + @Cordova() + static write(data: any): Promise { return; } + + /** + * Write hex to a serial connection + * + * @param data {any} data to write to the serial connection + * @return {Promise} Returns a promise that resolves when the write is complete + */ + @Cordova() + static writeHex(data: any): Promise { return; } + + /** + * Read from a serial connection + * + * @return {Promise} Returns a promise that resolves with data read from the serial connection + */ + @Cordova() + static read(): Promise { return; } + + /** + * Watch the incoming data from the serial connection. Clear the watch by unsubscribing from the observable + * + * @returns {Observable} Observable returns an observable that you can subscribe to + */ + @Cordova({ + observable: true + }) + static registerReadCallback(): Observable { return; } + + /** + * Close the serial connection + * + * @return {Promise} Returns a promise that resolves when the serial connection is closed + */ + @Cordova() + static close(): Promise { return; } + +}