本文整理汇总了TypeScript中pigpio.Gpio类的典型用法代码示例。如果您正苦于以下问题:TypeScript Gpio类的具体用法?TypeScript Gpio怎么用?TypeScript Gpio使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Gpio类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: constructor
constructor(config: number | string | IPWMConfig) {
let pin: number | string;
let frequency = DEFAULT_FREQUENCY;
let range = DEFAULT_RANGE;
if (typeof config === 'number' || typeof config === 'string') {
pin = config;
} else if (typeof config === 'object') {
if (typeof config.pin === 'number' || typeof config.pin === 'string') {
pin = config.pin;
} else {
throw new Error(`Invalid pin "${config.pin}". Pin must a number or string`);
}
if (typeof config.frequency === 'number') {
frequency = config.frequency;
}
if (typeof config.range === 'number') {
range = config.range;
}
} else {
throw new Error('Invalid config, must be a number, string, or object');
}
super(pin);
const gpioPin = getGpioNumber(pin);
if (gpioPin === null) {
throw new Error(`Internal error: ${pin} was parsed as a valid pin, but couldn't be resolved to a GPIO pin`);
}
this._frequency = frequency;
this._range = range;
this._dutyCycle = 0;
this._pwm = new Gpio(gpioPin, { mode: Gpio.OUTPUT });
this._pwm.pwmFrequency(frequency);
this._pwm.pwmRange(range);
}
示例2: constructor
constructor(config: number | string | IConfig) {
const parsedConfig = parseConfig(config);
super(parsedConfig.pin);
this.pullResistor = parsedConfig.pullResistor;
this._input = new Gpio(getPin(parsedConfig.pin, this.pins[0]), {
mode: Gpio.INPUT,
pullUpDown: parsedConfig.pullResistor
});
this._input.enableInterrupt(Gpio.EITHER_EDGE);
this._input.on('interrupt', (level: number) => setTimeout(() => {
this._currentValue = level;
this.emit('change', this.value);
}));
this._currentValue = this._input.digitalRead();
}
示例3: read
public read(): number {
if (!this.alive) {
throw new Error('Attempted to read from a destroyed peripheral');
}
this._currentValue = this._input.digitalRead();
return this.value;
}
示例4: write
public write(dutyCycle: number) {
if (!this.alive) {
throw new Error('Attempted to write to a destroyed peripheral');
}
if (typeof dutyCycle !== 'number' || dutyCycle < 0 || dutyCycle > 1) {
throw new Error(`Invalid PWM duty cycle "${dutyCycle}"`);
}
this._dutyCycle = dutyCycle;
this._pwm.pwmWrite(Math.round(this._dutyCycle * this._range));
}
示例5: write
public write(value: number): void {
if (!this.alive) {
throw new Error('Attempted to write to a destroyed peripheral');
}
if ([LOW, HIGH].indexOf(value) === -1) {
throw new Error('Invalid write value ' + value);
}
this._currentValue = value;
this._output.digitalWrite(this.value);
this.emit('change', this.value);
}
示例6: write
public write(dutyCycle: number) {
if (!this.alive) {
throw new Error('Attempted to write to a destroyed peripheral');
}
if (typeof dutyCycle !== 'number' || dutyCycle < 0 || dutyCycle > 1) {
throw new Error(`Invalid PWM duty cycle ${dutyCycle}`);
}
this._dutyCycleValue = dutyCycle;
this._pwm.hardwarePwmWrite(this._frequencyValue, Math.round(this._dutyCycleValue * MAX_DUTY_CYCLE));
this.emit('change', this._dutyCycleValue);
}
示例7: destroy
public destroy() {
this._input.disableInterrupt();
super.destroy();
}