當前位置: 首頁>>代碼示例>>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;未經允許,請勿轉載。