@iotize/cli
Version:
IoTize command line interface
94 lines • 4.45 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
require("@iotize/device-client.js/ext/gpio");
const gpio_1 = require("@iotize/device-client.js/gpio");
const clime_1 = require("clime");
const device_1 = require("../../../options/device");
const gpio_options_1 = require("../../../options/gpio-options");
const ui_1 = require("src/ui");
// const DEFAULT_GPIO_MODE: KeyOfGPIOMode = 'OUTPUT_PUSHPULL';
class MyOptions extends device_1.DeviceOptions {
}
__decorate([
clime_1.option(gpio_options_1.createGPIOModeOption(undefined)),
__metadata("design:type", String)
], MyOptions.prototype, "mode", void 0);
__decorate([
clime_1.option({
description: 'Pin index to configure'
}),
__metadata("design:type", Number)
], MyOptions.prototype, "pinIndex", void 0);
exports.MyOptions = MyOptions;
const description = `Write pin value. If mode option is set, it will first configure GPIO with given mode.`;
let GPIOWriteCommand = class GPIOWriteCommand extends clime_1.Command {
constructor() {
super(...arguments);
this.help = description;
this.command = 'gpio write';
}
execute(pinValue, options) {
return __awaiter(this, void 0, void 0, function* () {
const tap = yield options.getDevice(true, false, true);
yield this.run({ tap }, { options, args: [pinValue] });
yield tap.disconnect().catch(err => { });
});
}
run({ tap }, { options, args }) {
var _a;
return __awaiter(this, void 0, void 0, function* () {
const pinValue = args && args.length > 0 ? !!args[0] : false;
if ((_a = options) === null || _a === void 0 ? void 0 : _a.pinIndex) {
const pin = tap.gpio.getPinByIndex(options.pinIndex);
if (options.mode) {
yield pin.writeConfig({
mode: gpio_1.GPIOMode[options.mode]
});
}
yield pin.writeValue(pinValue);
ui_1.display.success(`Write pin ${options.pinIndex} to ${pinValue}`);
}
else {
yield tap.gpio.writeValues(pinValue);
ui_1.display.success(`Write all pins to ${pinValue}`);
}
});
}
};
__decorate([
clime_1.metadata,
__param(0, clime_1.param({
description: 'Value'
})),
__metadata("design:type", Function),
__metadata("design:paramtypes", [Boolean, MyOptions]),
__metadata("design:returntype", Promise)
], GPIOWriteCommand.prototype, "execute", null);
GPIOWriteCommand = __decorate([
clime_1.command({
description
})
], GPIOWriteCommand);
exports.default = GPIOWriteCommand;
//# sourceMappingURL=write.js.map