UNPKG

@iotize/ionic

Version:

Iotize specific building blocks on top of @ionic/angular.

266 lines (258 loc) 13.5 kB
import * as i0 from '@angular/core'; import { Component, Input, NgModule } from '@angular/core'; import * as i2 from '@angular/common'; import { CommonModule } from '@angular/common'; import * as i3 from '@ionic/angular'; import { IonicModule } from '@ionic/angular'; import * as i1 from '@iotize/ionic'; var GPIO; (function (GPIO) { let Mode; (function (Mode) { Mode["IN"] = "IN"; Mode["OUT"] = "OUT"; })(Mode = GPIO.Mode || (GPIO.Mode = {})); let Signal; (function (Signal) { Signal["HIGH"] = "HIGH"; Signal["LOW"] = "LOW"; })(Signal = GPIO.Signal || (GPIO.Signal = {})); })(GPIO || (GPIO = {})); var GPIO_MODE; (function (GPIO_MODE) { GPIO_MODE[GPIO_MODE["INPUT_FLOATING"] = 0] = "INPUT_FLOATING"; GPIO_MODE[GPIO_MODE["OUTPUT_OPENDRAIN"] = 1] = "OUTPUT_OPENDRAIN"; GPIO_MODE[GPIO_MODE["OUTPUT_PUSHPULL"] = 3] = "OUTPUT_PUSHPULL"; GPIO_MODE[GPIO_MODE["INPUT_PULLUP"] = 4] = "INPUT_PULLUP"; GPIO_MODE[GPIO_MODE["OUTPUT_OPENDRAIN_PULLUP"] = 5] = "OUTPUT_OPENDRAIN_PULLUP"; GPIO_MODE[GPIO_MODE["INPUT_PULLDOWN"] = 8] = "INPUT_PULLDOWN"; GPIO_MODE[GPIO_MODE["INPUT_ANALOG_FLOATING"] = 128] = "INPUT_ANALOG_FLOATING"; GPIO_MODE[GPIO_MODE["OUTPUT_ANALOG_PWM"] = 131] = "OUTPUT_ANALOG_PWM"; })(GPIO_MODE || (GPIO_MODE = {})); class TapGPIOController { constructor(tap, conf) { this.tap = tap; this.conf = conf; } toggle() { if (this._state == GPIO.Signal.HIGH) { return this.low(); } else { return this.high(); } } low() { return this.tap.lwm2m .post(`/1029/${this.conf.num}/5`, Uint8Array.from([0])) .then((response) => { response.successful(); this._state = GPIO.Signal.LOW; }); } high() { // let value = 0xFF & this.conf.num; // let value = 0b00011101; const value = 1; return this.tap.lwm2m .post(`/1029/${this.conf.num}/5`, Uint8Array.from([value])) .then((response) => { response.successful(); this._state = GPIO.Signal.HIGH; }); } read() { return this.tap.lwm2m.get(`/1029/${this.conf.num}/4`).then((response) => { const result = response.body()[0]; const decoded = result == 1 ? GPIO.Signal.HIGH : GPIO.Signal.LOW; console.log('READ RESULT', decoded); return decoded; }); } setup(direction = GPIO.Mode.OUT, initial = GPIO.Signal.LOW) { // let value = 0xFF & this.conf.num; // let value = 0b00011101; const value = 1; switch (direction) { case GPIO.Mode.IN: return this.tap.lwm2m .post(`/1029/${this.conf.num + 10}/5`, Uint8Array.from([value])) .then((response) => { response.successful(); this._mode = GPIO.Mode.IN; }); case GPIO.Mode.OUT: return this.tap.lwm2m .post(`/1029/${this.conf.num + 10}/5`, Uint8Array.from([0x00])) .then((response) => { response.successful(); this._mode = GPIO.Mode.OUT; }); default: throw new Error('Invalid setup'); } } } class TapGpioComponent { constructor(tapService) { this.tapService = tapService; this.schema = []; this.lines = 'full'; this.pins = this.schema.map((entry) => { if (entry.pin.type === 'GPIO') { entry.controller = new TapGPIOController(this.tap, entry.pin); } return entry; }); } get tap() { return this.tapService.tap; } } /** @nocollapse */ TapGpioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapGpioComponent, deps: [{ token: i1.CurrentDeviceService }], target: i0.ɵɵFactoryTarget.Component }); /** @nocollapse */ TapGpioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TapGpioComponent, selector: "tap-gpio", inputs: { schema: "schema", lines: "lines" }, ngImport: i0, template: "<ion-list [lines]=\"lines\">\n <ion-item *ngFor=\"let config of pins\">\n <ng-template [ngIf]=\"config.pin.type == 'GROUND'\" #ground>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'POWER'\" #power>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.power }}V</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'DISABLED'\" #disabledpin>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'GPIO'\" #gpio>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }} {{ config.pin.num }}</span>\n <ion-label>\n {{ config.title }}\n </ion-label>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'OUT' ? 'primary' : ''\"\n (click)=\"config.controller.setup('OUT')\"\n >OUT</ion-button\n >\n <ion-button (click)=\"config.controller.read()\">READ</ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'IN' ? 'primary' : ''\"\n (click)=\"config.controller.setup('IN')\"\n >IN</ion-button\n >\n <!-- <ion-toggle (click)=\"config.controller.toggle()\"></ion-toggle> -->\n <ion-button\n [color]=\"config.controller._state == 'LOW' ? 'primary' : ''\"\n (click)=\"config.controller.low()\"\n >LOW</ion-button\n >\n <ion-button\n [color]=\"config.controller._state == 'HIGH' ? 'primary' : ''\"\n (click)=\"config.controller.high()\"\n >HIGH</ion-button\n >\n </ion-buttons>\n </ng-template>\n </ion-item>\n</ion-list>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i3.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i3.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i3.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i3.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapGpioComponent, decorators: [{ type: Component, args: [{ selector: 'tap-gpio', template: "<ion-list [lines]=\"lines\">\n <ion-item *ngFor=\"let config of pins\">\n <ng-template [ngIf]=\"config.pin.type == 'GROUND'\" #ground>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'POWER'\" #power>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.power }}V</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'DISABLED'\" #disabledpin>\n <span slot=\"start\">{{ config.num }}</span>\n <ion-label>\n <span slot=\"start\">{{ config.pin.type }}</span>\n </ion-label>\n </ng-template>\n <ng-template [ngIf]=\"config.pin.type == 'GPIO'\" #gpio>\n <span slot=\"start\">{{ config.num }}</span>\n <span slot=\"start\">{{ config.pin.type }} {{ config.pin.num }}</span>\n <ion-label>\n {{ config.title }}\n </ion-label>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'OUT' ? 'primary' : ''\"\n (click)=\"config.controller.setup('OUT')\"\n >OUT</ion-button\n >\n <ion-button (click)=\"config.controller.read()\">READ</ion-button>\n </ion-buttons>\n <ion-buttons slot=\"end\">\n <ion-button\n [color]=\"config.controller._mode == 'IN' ? 'primary' : ''\"\n (click)=\"config.controller.setup('IN')\"\n >IN</ion-button\n >\n <!-- <ion-toggle (click)=\"config.controller.toggle()\"></ion-toggle> -->\n <ion-button\n [color]=\"config.controller._state == 'LOW' ? 'primary' : ''\"\n (click)=\"config.controller.low()\"\n >LOW</ion-button\n >\n <ion-button\n [color]=\"config.controller._state == 'HIGH' ? 'primary' : ''\"\n (click)=\"config.controller.high()\"\n >HIGH</ion-button\n >\n </ion-buttons>\n </ng-template>\n </ion-item>\n</ion-list>\n" }] }], ctorParameters: function () { return [{ type: i1.CurrentDeviceService }]; }, propDecorators: { schema: [{ type: Input }], lines: [{ type: Input }] } }); class TapGpioModule { } /** @nocollapse */ TapGpioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapGpioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); /** @nocollapse */ TapGpioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: TapGpioModule, declarations: [TapGpioComponent], imports: [CommonModule, IonicModule], exports: [TapGpioComponent] }); /** @nocollapse */ TapGpioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapGpioModule, imports: [CommonModule, IonicModule] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TapGpioModule, decorators: [{ type: NgModule, args: [{ declarations: [TapGpioComponent], exports: [TapGpioComponent], imports: [CommonModule, IonicModule], }] }] }); const J1PinSchema = [ { num: 1, pin: { power: 3.3, type: 'POWER', }, title: 'Vcc', }, { num: 2, pin: { num: 4, type: 'GPIO', }, title: 'SP3PIO/SWDIO (TMS)', }, { num: 3, pin: { type: 'GROUND', }, title: 'Gnd', }, { num: 4, pin: { num: 2, type: 'GPIO', }, title: 'S3PCLK/SWDCLK (TCK)', }, { num: 5, pin: { type: 'GROUND', }, title: 'Gnd', }, { num: 6, pin: { num: 3, type: 'GPIO', }, title: 'SWO (TDO)', }, { num: 7, pin: { type: 'DISABLED', }, title: 'Not connected', }, { num: 8, pin: { num: 4, type: 'GPIO', }, title: 'TDI', }, { num: 9, pin: { type: 'GROUND', }, title: 'Gnd', }, { num: 10, pin: { num: 0, type: 'GPIO', }, title: 'RST', }, ]; const J3PinSchema = [ { num: 1, pin: { power: 3.3, type: 'POWER', }, title: 'Vcc', }, { num: 2, pin: { type: 'GROUND', }, title: 'Gnd', }, { num: 2, pin: { num: 4, type: 'GPIO', }, title: 'SP3PIO/SWDIO (TMS)', }, { num: 4, pin: { num: 2, type: 'GPIO', }, title: 'S3PCLK/SWDCLK (TCK)', }, { num: 10, pin: { num: 0, type: 'GPIO', }, title: 'RST', }, ]; /** * Generated bundle index. Do not edit. */ export { GPIO, J1PinSchema, J3PinSchema, TapGpioComponent, TapGpioModule }; //# sourceMappingURL=iotize-ionic-gpio.mjs.map