@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
81 lines • 9.75 kB
JavaScript
import { GPIO } from './definitions';
export 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 = {}));
export class TapGPIOController {
tap;
conf;
_state;
_mode;
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');
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9ncGlvL3NyYy9saWIvdGFwLWV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRCxNQUFNLENBQU4sSUFBWSxTQVNYO0FBVEQsV0FBWSxTQUFTO0lBQ25CLDZEQUFrQixDQUFBO0lBQ2xCLGlFQUFvQixDQUFBO0lBQ3BCLCtEQUFtQixDQUFBO0lBQ25CLHlEQUFnQixDQUFBO0lBQ2hCLCtFQUEyQixDQUFBO0lBQzNCLDZEQUFrQixDQUFBO0lBQ2xCLDZFQUE0QixDQUFBO0lBQzVCLHFFQUF3QixDQUFBO0FBQzFCLENBQUMsRUFUVyxTQUFTLEtBQVQsU0FBUyxRQVNwQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFJVDtJQUFpQjtJQUhwQyxNQUFNLENBQWU7SUFDckIsS0FBSyxDQUFhO0lBRWxCLFlBQW1CLEdBQVEsRUFBUyxJQUFhO1FBQTlCLFFBQUcsR0FBSCxHQUFHLENBQUs7UUFBUyxTQUFJLEdBQUosSUFBSSxDQUFTO0lBQUcsQ0FBQztJQUVyRCxNQUFNO1FBQ0osSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSzthQUNsQixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENB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Q0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyQyxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUdQSU9Db250cm9sbGVyLCBHUElPUGluLCBHUElPIH0gZnJvbSAnLi9kZWZpbml0aW9ucyc7XG5pbXBvcnQgeyBUYXAgfSBmcm9tICdAaW90aXplL3RhcCc7XG5cbmV4cG9ydCBlbnVtIEdQSU9fTU9ERSB7XG4gIElOUFVUX0ZMT0FUSU5HID0gMCxcbiAgT1VUUFVUX09QRU5EUkFJTiA9IDEsXG4gIE9VVFBVVF9QVVNIUFVMTCA9IDMsXG4gIElOUFVUX1BVTExVUCA9IDQsXG4gIE9VVFBVVF9PUEVORFJBSU5fUFVMTFVQID0gNSxcbiAgSU5QVVRfUFVMTERPV04gPSA4LFxuICBJTlBVVF9BTkFMT0dfRkxPQVRJTkcgPSAweDgwLFxuICBPVVRQVVRfQU5BTE9HX1BXTSA9IDB4ODMsXG59XG5cbmV4cG9ydCBjbGFzcyBUYXBHUElPQ29udHJvbGxlciBpbXBsZW1lbnRzIElHUElPQ29udHJvbGxlciB7XG4gIF9zdGF0ZT86IEdQSU8uU2lnbmFsO1xuICBfbW9kZT86IEdQSU8uTW9kZTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgdGFwOiBUYXAsIHB1YmxpYyBjb25mOiBHUElPUGluKSB7fVxuXG4gIHRvZ2dsZSgpIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgPT0gR1BJTy5TaWduYWwuSElHSCkge1xuICAgICAgcmV0dXJuIHRoaXMubG93KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmhpZ2goKTtcbiAgICB9XG4gIH1cblxuICBsb3coKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnRhcC5sd20ybVxuICAgICAgLnBvc3QoYC8xMDI5LyR7dGhpcy5jb25mLm51bX0vNWAsIFVpbnQ4QXJyYXkuZnJvbShbMF0pKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJlc3BvbnNlLnN1Y2Nlc3NmdWwoKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBHUElPLlNpZ25hbC5MT1c7XG4gICAgICB9KTtcbiAgfVxuXG4gIGhpZ2goKTogdm9pZCB8IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGxldCB2YWx1ZSA9IDB4RkYgJiB0aGlzLmNvbmYubnVtO1xuICAgIC8vIGxldCB2YWx1ZSA9IDBiMDAwMTExMDE7XG4gICAgY29uc3QgdmFsdWUgPSAxO1xuICAgIHJldHVybiB0aGlzLnRhcC5sd20ybVxuICAgICAgLnBvc3QoYC8xMDI5LyR7dGhpcy5jb25mLm51bX0vNWAsIFVpbnQ4QXJyYXkuZnJvbShbdmFsdWVdKSlcbiAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICByZXNwb25zZS5zdWNjZXNzZnVsKCk7XG4gICAgICAgIHRoaXMuX3N0YXRlID0gR1BJTy5TaWduYWwuSElHSDtcbiAgICAgIH0pO1xuICB9XG5cbiAgcmVhZCgpOiBHUElPLlNpZ25hbCB8IFByb21pc2U8R1BJTy5TaWduYWw+IHtcbiAgICByZXR1cm4gdGhpcy50YXAubHdtMm0uZ2V0KGAvMTAyOS8ke3RoaXMuY29uZi5udW19LzRgKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gcmVzcG9uc2UuYm9keSgpWzBdO1xuICAgICAgY29uc3QgZGVjb2RlZCA9IHJlc3VsdCA9PSAxID8gR1BJTy5TaWduYWwuSElHSCA6IEdQSU8uU2lnbmFsLkxPVztcbiAgICAgIGNvbnNvbGUubG9nKCdSRUFEIFJFU1VMVCcsIGRlY29kZWQpO1xuICAgICAgcmV0dXJuIGRlY29kZWQ7XG4gICAgfSk7XG4gIH1cblxuICBzZXR1cChcbiAgICBkaXJlY3Rpb246IEdQSU8uTW9kZSA9IEdQSU8uTW9kZS5PVVQsXG4gICAgaW5pdGlhbDogR1BJTy5TaWduYWwgPSBHUElPLlNpZ25hbC5MT1dcbiAgKSB7XG4gICAgLy8gbGV0IHZhbHVlID0gMHhGRiAmIHRoaXMuY29uZi5udW07XG4gICAgLy8gbGV0IHZhbHVlID0gMGIwMDAxMTEwMTtcbiAgICBjb25zdCB2YWx1ZSA9IDE7XG4gICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgR1BJTy5Nb2RlLklOOlxuICAgICAgICByZXR1cm4gdGhpcy50YXAubHdtMm1cbiAgICAgICAgICAucG9zdChgLzEwMjkvJHt0aGlzLmNvbmYubnVtICsgMTB9LzVgLCBVaW50OEFycmF5LmZyb20oW3ZhbHVlXSkpXG4gICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICByZXNwb25zZS5zdWNjZXNzZnVsKCk7XG4gICAgICAgICAgICB0aGlzLl9tb2RlID0gR1BJTy5Nb2RlLklOO1xuICAgICAgICAgIH0pO1xuICAgICAgY2FzZSBHUElPLk1vZGUuT1VUOlxuICAgICAgICByZXR1cm4gdGhpcy50YXAubHdtMm1cbiAgICAgICAgICAucG9zdChgLzEwMjkvJHt0aGlzLmNvbmYubnVtICsgMTB9LzVgLCBVaW50OEFycmF5LmZyb20oWzB4MDBdKSlcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHJlc3BvbnNlLnN1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIHRoaXMuX21vZGUgPSBHUElPLk1vZGUuT1VUO1xuICAgICAgICAgIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHNldHVwJyk7XG4gICAgfVxuICB9XG59XG4iXX0=