@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
77 lines • 9.69 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 {
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLWV4dGVuc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lvdGl6ZS1pb25pYy9ncGlvL3NyYy9saWIvdGFwLWV4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLElBQUksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRCxNQUFNLENBQU4sSUFBWSxTQVNYO0FBVEQsV0FBWSxTQUFTO0lBQ25CLDZEQUFrQixDQUFBO0lBQ2xCLGlFQUFvQixDQUFBO0lBQ3BCLCtEQUFtQixDQUFBO0lBQ25CLHlEQUFnQixDQUFBO0lBQ2hCLCtFQUEyQixDQUFBO0lBQzNCLDZEQUFrQixDQUFBO0lBQ2xCLDZFQUE0QixDQUFBO0lBQzVCLHFFQUF3QixDQUFBO0FBQzFCLENBQUMsRUFUVyxTQUFTLEtBQVQsU0FBUyxRQVNwQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFJNUIsWUFBbUIsR0FBUSxFQUFTLElBQWE7UUFBOUIsUUFBRyxHQUFILEdBQUcsQ0FBSztRQUFTLFNBQUksR0FBSixJQUFJLENBQVM7SUFBRyxDQUFDO0lBRXJELE1BQU07UUFDSixJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDbkI7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELEdBQUc7UUFDRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSzthQUNsQixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3RELElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2pCLFFBQVEsQ0FB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eyBJR1BJT0NvbnRyb2xsZXIsIEdQSU9QaW4sIEdQSU8gfSBmcm9tICcuL2RlZmluaXRpb25zJztcbmltcG9ydCB7IFRhcCB9IGZyb20gJ0Bpb3RpemUvdGFwJztcblxuZXhwb3J0IGVudW0gR1BJT19NT0RFIHtcbiAgSU5QVVRfRkxPQVRJTkcgPSAwLFxuICBPVVRQVVRfT1BFTkRSQUlOID0gMSxcbiAgT1VUUFVUX1BVU0hQVUxMID0gMyxcbiAgSU5QVVRfUFVMTFVQID0gNCxcbiAgT1VUUFVUX09QRU5EUkFJTl9QVUxMVVAgPSA1LFxuICBJTlBVVF9QVUxMRE9XTiA9IDgsXG4gIElOUFVUX0FOQUxPR19GTE9BVElORyA9IDB4ODAsXG4gIE9VVFBVVF9BTkFMT0dfUFdNID0gMHg4Myxcbn1cblxuZXhwb3J0IGNsYXNzIFRhcEdQSU9Db250cm9sbGVyIGltcGxlbWVudHMgSUdQSU9Db250cm9sbGVyIHtcbiAgX3N0YXRlPzogR1BJTy5TaWduYWw7XG4gIF9tb2RlPzogR1BJTy5Nb2RlO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB0YXA6IFRhcCwgcHVibGljIGNvbmY6IEdQSU9QaW4pIHt9XG5cbiAgdG9nZ2xlKCkge1xuICAgIGlmICh0aGlzLl9zdGF0ZSA9PSBHUElPLlNpZ25hbC5ISUdIKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb3coKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuaGlnaCgpO1xuICAgIH1cbiAgfVxuXG4gIGxvdygpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMudGFwLmx3bTJtXG4gICAgICAucG9zdChgLzEwMjkvJHt0aGlzLmNvbmYubnVtfS81YCwgVWludDhBcnJheS5mcm9tKFswXSkpXG4gICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgcmVzcG9uc2Uuc3VjY2Vzc2Z1bCgpO1xuICAgICAgICB0aGlzLl9zdGF0ZSA9IEdQSU8uU2lnbmFsLkxPVztcbiAgICAgIH0pO1xuICB9XG5cbiAgaGlnaCgpOiB2b2lkIHwgUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gbGV0IHZhbHVlID0gMHhGRiAmIHRoaXMuY29uZi5udW07XG4gICAgLy8gbGV0IHZhbHVlID0gMGIwMDAxMTEwMTtcbiAgICBjb25zdCB2YWx1ZSA9IDE7XG4gICAgcmV0dXJuIHRoaXMudGFwLmx3bTJtXG4gICAgICAucG9zdChgLzEwMjkvJHt0aGlzLmNvbmYubnVtfS81YCwgVWludDhBcnJheS5mcm9tKFt2YWx1ZV0pKVxuICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHJlc3BvbnNlLnN1Y2Nlc3NmdWwoKTtcbiAgICAgICAgdGhpcy5fc3RhdGUgPSBHUElPLlNpZ25hbC5ISUdIO1xuICAgICAgfSk7XG4gIH1cblxuICByZWFkKCk6IEdQSU8uU2lnbmFsIHwgUHJvbWlzZTxHUElPLlNpZ25hbD4ge1xuICAgIHJldHVybiB0aGlzLnRhcC5sd20ybS5nZXQoYC8xMDI5LyR7dGhpcy5jb25mLm51bX0vNGApLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSByZXNwb25zZS5ib2R5KClbMF07XG4gICAgICBjb25zdCBkZWNvZGVkID0gcmVzdWx0ID09IDEgPyBHUElPLlNpZ25hbC5ISUdIIDogR1BJTy5TaWduYWwuTE9XO1xuICAgICAgY29uc29sZS5sb2coJ1JFQUQgUkVTVUxUJywgZGVjb2RlZCk7XG4gICAgICByZXR1cm4gZGVjb2RlZDtcbiAgICB9KTtcbiAgfVxuXG4gIHNldHVwKFxuICAgIGRpcmVjdGlvbjogR1BJTy5Nb2RlID0gR1BJTy5Nb2RlLk9VVCxcbiAgICBpbml0aWFsOiBHUElPLlNpZ25hbCA9IEdQSU8uU2lnbmFsLkxPV1xuICApIHtcbiAgICAvLyBsZXQgdmFsdWUgPSAweEZGICYgdGhpcy5jb25mLm51bTtcbiAgICAvLyBsZXQgdmFsdWUgPSAwYjAwMDExMTAxO1xuICAgIGNvbnN0IHZhbHVlID0gMTtcbiAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xuICAgICAgY2FzZSBHUElPLk1vZGUuSU46XG4gICAgICAgIHJldHVybiB0aGlzLnRhcC5sd20ybVxuICAgICAgICAgIC5wb3N0KGAvMTAyOS8ke3RoaXMuY29uZi5udW0gKyAxMH0vNWAsIFVpbnQ4QXJyYXkuZnJvbShbdmFsdWVdKSlcbiAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIHJlc3BvbnNlLnN1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIHRoaXMuX21vZGUgPSBHUElPLk1vZGUuSU47XG4gICAgICAgICAgfSk7XG4gICAgICBjYXNlIEdQSU8uTW9kZS5PVVQ6XG4gICAgICAgIHJldHVybiB0aGlzLnRhcC5sd20ybVxuICAgICAgICAgIC5wb3N0KGAvMTAyOS8ke3RoaXMuY29uZi5udW0gKyAxMH0vNWAsIFVpbnQ4QXJyYXkuZnJvbShbMHgwMF0pKVxuICAgICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgcmVzcG9uc2Uuc3VjY2Vzc2Z1bCgpO1xuICAgICAgICAgICAgdGhpcy5fbW9kZSA9IEdQSU8uTW9kZS5PVVQ7XG4gICAgICAgICAgfSk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2V0dXAnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==