当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript pigpio.Gpio类代码示例

本文整理汇总了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);
  }
开发者ID:blafuente,项目名称:RaspberryPiCapstone,代码行数:35,代码来源:index.ts

示例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();
 }
开发者ID:nebrius,项目名称:raspi-gpio,代码行数:15,代码来源:index.ts

示例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;
 }
开发者ID:nebrius,项目名称:raspi-gpio,代码行数:7,代码来源:index.ts

示例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));
 }
开发者ID:blafuente,项目名称:RaspberryPiCapstone,代码行数:10,代码来源:index.ts

示例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);
 }
开发者ID:nebrius,项目名称:raspi-gpio,代码行数:11,代码来源:index.ts

示例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);
 }
开发者ID:nebrius,项目名称:raspi-pwm,代码行数:11,代码来源:index.ts

示例7: destroy

 public destroy() {
   this._input.disableInterrupt();
   super.destroy();
 }
开发者ID:nebrius,项目名称:raspi-gpio,代码行数:4,代码来源:index.ts


注:本文中的pigpio.Gpio类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。