UNPKG

@iotize/ionic

Version:

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

1 lines 17.4 kB
{"version":3,"file":"iotize-ionic-gpio.mjs","sources":["../../../../projects/iotize-ionic/gpio/src/lib/definitions.ts","../../../../projects/iotize-ionic/gpio/src/lib/tap-extension.ts","../../../../projects/iotize-ionic/gpio/src/lib/tap-gpio.component.ts","../../../../projects/iotize-ionic/gpio/src/lib/tap-gpio.component.html","../../../../projects/iotize-ionic/gpio/src/lib/tap-gpio.module.ts","../../../../projects/iotize-ionic/gpio/src/lib/pinschema.ts","../../../../projects/iotize-ionic/gpio/src/iotize-ionic-gpio.ts"],"sourcesContent":["export interface PowerPin {\n type: 'POWER';\n power: number;\n}\n\nexport interface GPIOPin {\n type: 'GPIO';\n num: number;\n}\n\nexport interface GroundPin {\n type: 'GROUND';\n}\n\nexport interface DisabledPin {\n type: 'DISABLED';\n}\n\nexport type PinType = PowerPin | GPIOPin | GroundPin | DisabledPin;\n\nexport interface PinEntry {\n num: number;\n pin: PinType;\n}\n\nexport namespace GPIO {\n export enum Mode {\n IN = 'IN',\n OUT = 'OUT',\n }\n export enum Signal {\n HIGH = 'HIGH',\n LOW = 'LOW',\n }\n}\n\nexport type PinSchema = (PinEntry & { title: string })[];\n\nexport interface IGPIOController {\n conf: GPIOPin;\n\n low(): Promise<void> | void;\n high(): Promise<void> | void;\n\n setup(direction: GPIO.Mode, initial: GPIO.Signal): void;\n}\n","import { IGPIOController, GPIOPin, GPIO } from './definitions';\nimport { Tap } from '@iotize/tap';\n\nexport enum GPIO_MODE {\n INPUT_FLOATING = 0,\n OUTPUT_OPENDRAIN = 1,\n OUTPUT_PUSHPULL = 3,\n INPUT_PULLUP = 4,\n OUTPUT_OPENDRAIN_PULLUP = 5,\n INPUT_PULLDOWN = 8,\n INPUT_ANALOG_FLOATING = 0x80,\n OUTPUT_ANALOG_PWM = 0x83,\n}\n\nexport class TapGPIOController implements IGPIOController {\n _state?: GPIO.Signal;\n _mode?: GPIO.Mode;\n\n constructor(public tap: Tap, public conf: GPIOPin) {}\n\n toggle() {\n if (this._state == GPIO.Signal.HIGH) {\n return this.low();\n } else {\n return this.high();\n }\n }\n\n low(): void | Promise<void> {\n return this.tap.lwm2m\n .post(`/1029/${this.conf.num}/5`, Uint8Array.from([0]))\n .then((response) => {\n response.successful();\n this._state = GPIO.Signal.LOW;\n });\n }\n\n high(): void | Promise<void> {\n // let value = 0xFF & this.conf.num;\n // let value = 0b00011101;\n const value = 1;\n return this.tap.lwm2m\n .post(`/1029/${this.conf.num}/5`, Uint8Array.from([value]))\n .then((response) => {\n response.successful();\n this._state = GPIO.Signal.HIGH;\n });\n }\n\n read(): GPIO.Signal | Promise<GPIO.Signal> {\n return this.tap.lwm2m.get(`/1029/${this.conf.num}/4`).then((response) => {\n const result = response.body()[0];\n const decoded = result == 1 ? GPIO.Signal.HIGH : GPIO.Signal.LOW;\n console.log('READ RESULT', decoded);\n return decoded;\n });\n }\n\n setup(\n direction: GPIO.Mode = GPIO.Mode.OUT,\n initial: GPIO.Signal = GPIO.Signal.LOW\n ) {\n // let value = 0xFF & this.conf.num;\n // let value = 0b00011101;\n const value = 1;\n switch (direction) {\n case GPIO.Mode.IN:\n return this.tap.lwm2m\n .post(`/1029/${this.conf.num + 10}/5`, Uint8Array.from([value]))\n .then((response) => {\n response.successful();\n this._mode = GPIO.Mode.IN;\n });\n case GPIO.Mode.OUT:\n return this.tap.lwm2m\n .post(`/1029/${this.conf.num + 10}/5`, Uint8Array.from([0x00]))\n .then((response) => {\n response.successful();\n this._mode = GPIO.Mode.OUT;\n });\n default:\n throw new Error('Invalid setup');\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { CurrentDeviceService } from '@iotize/ionic';\n\nimport { PinSchema } from './definitions';\nimport { TapGPIOController } from './tap-extension';\n\n@Component({\n selector: 'tap-gpio',\n templateUrl: './tap-gpio.component.html',\n styleUrls: ['./tap-gpio.component.scss'],\n})\nexport class TapGpioComponent {\n @Input() public schema: PinSchema = [];\n\n @Input() lines = 'full';\n\n public pins: PinSchema;\n\n constructor(public tapService: CurrentDeviceService) {\n this.pins = this.schema.map((entry) => {\n if (entry.pin.type === 'GPIO') {\n (entry as any).controller = new TapGPIOController(this.tap, entry.pin);\n }\n return entry as any;\n });\n }\n\n get tap() {\n return this.tapService.tap;\n }\n}\n","<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","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IonicModule } from '@ionic/angular';\nimport { TapGpioComponent } from './tap-gpio.component';\n\n@NgModule({\n declarations: [TapGpioComponent],\n exports: [TapGpioComponent],\n imports: [CommonModule, IonicModule],\n})\nexport class TapGpioModule {}\n","import { PinSchema } from './definitions';\n\nexport const J1PinSchema: PinSchema = [\n {\n num: 1,\n pin: {\n power: 3.3,\n type: 'POWER',\n },\n title: 'Vcc',\n },\n {\n num: 2,\n pin: {\n num: 4, // ???\n type: 'GPIO',\n },\n title: 'SP3PIO/SWDIO (TMS)',\n },\n {\n num: 3,\n pin: {\n type: 'GROUND',\n },\n title: 'Gnd',\n },\n {\n num: 4,\n pin: {\n num: 2,\n type: 'GPIO',\n },\n title: 'S3PCLK/SWDCLK (TCK)',\n },\n {\n num: 5,\n pin: {\n type: 'GROUND',\n },\n title: 'Gnd',\n },\n {\n num: 6,\n pin: {\n num: 3,\n type: 'GPIO',\n },\n title: 'SWO (TDO)',\n },\n {\n num: 7,\n pin: {\n type: 'DISABLED',\n },\n title: 'Not connected',\n },\n {\n num: 8,\n pin: {\n num: 4,\n type: 'GPIO',\n },\n title: 'TDI',\n },\n {\n num: 9,\n pin: {\n type: 'GROUND',\n },\n title: 'Gnd',\n },\n {\n num: 10,\n pin: {\n num: 0,\n type: 'GPIO',\n },\n title: 'RST',\n },\n];\n\nexport const J3PinSchema: PinSchema = [\n {\n num: 1,\n pin: {\n power: 3.3,\n type: 'POWER',\n },\n title: 'Vcc',\n },\n {\n num: 2,\n pin: {\n type: 'GROUND',\n },\n title: 'Gnd',\n },\n {\n num: 2,\n pin: {\n num: 4,\n type: 'GPIO',\n },\n title: 'SP3PIO/SWDIO (TMS)',\n },\n {\n num: 4,\n pin: {\n num: 2,\n type: 'GPIO',\n },\n title: 'S3PCLK/SWDCLK (TCK)',\n },\n {\n num: 10,\n pin: {\n num: 0,\n type: 'GPIO',\n },\n title: 'RST',\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}