Sha256: 548b8d925a82fbd5b58a19576ea6e0515f4f24e37a7eab95e394a14bc9d12f60

Contents?: true

Size: 1.55 KB

Versions: 24

Compression:

Stored size: 1.55 KB

Contents

# -*- coding: utf-8 -*-
require 'smalrubot'

module Smalruby
  module Hardware
    module Pin
      module_function

      DIO_SMALRUBOT_RE = /\A([0-9]|1[0-3])\z/
      DIO_SMALRUBY_RE = /\AD([0-9]|1[0-3])\z/
      AI_RE = /\AA[0-5]\z/

      # Smalrubyのピン番号をSmalrubotのピン番号に変換する
      #
      # ピン番号が0~13、D0~D13、A0~A5でなければ例外が発生する
      #
      # @param [String|Numeric] pin Smalrubyのピン番号
      # @return [Numeric] Smalrubotのデジタル入出力のピン番号
      # @return [String] Smalrubotのアナログ入力のピン番号
      def smalruby_to_smalrubot(pin)
        pin = pin.to_s
        case pin
        when DIO_SMALRUBOT_RE
          pin.to_i
        when DIO_SMALRUBY_RE
          pin[1..-1].to_i
        when AI_RE
          pin
        else
          fail "ハードウェアのピンの番号が間違っています: #{pin}"
        end
      end

      # Smalrubotのピン番号をSmalrubyのピン番号に変換する
      #
      # ピン番号が0~13、D0~D13、A0~A5でなければ例外が発生する
      #
      # @param [String|Numeric] pin Smalrubotのピン番号
      # @return [String] Smalrubyのピン番号
      def smalrubot_to_smalruby(pin)
        pin = pin.to_s
        case pin
        when DIO_SMALRUBOT_RE
          "D#{pin}"
        when DIO_SMALRUBY_RE
          pin
        when AI_RE
          pin
        else
          fail "ハードウェアのピンの番号が間違っています: #{pin}"
        end
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
smalruby-0.1.11-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.11 lib/smalruby/hardware/pin.rb
smalruby-0.1.10-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.10 lib/smalruby/hardware/pin.rb
smalruby-0.1.9-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.9 lib/smalruby/hardware/pin.rb
smalruby-0.1.8-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.8 lib/smalruby/hardware/pin.rb
smalruby-0.1.7-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.7 lib/smalruby/hardware/pin.rb
smalruby-0.1.6-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.6 lib/smalruby/hardware/pin.rb
smalruby-0.1.5-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.5 lib/smalruby/hardware/pin.rb
smalruby-0.1.4-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.4 lib/smalruby/hardware/pin.rb
smalruby-0.1.3-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.3 lib/smalruby/hardware/pin.rb
smalruby-0.1.2-x86-mingw32 lib/smalruby/hardware/pin.rb
smalruby-0.1.2 lib/smalruby/hardware/pin.rb