今日のちょんぼ

 動かないことを指摘されて気がついた。テストしなさすぎ。

#! /usr/bin/ruby

class Hardware
  def iRangeSet(ch, irange)
    @iRange = irange

    case @irange
    when '1mA'
      writeRegister(ch, 1)
    when '100uA'
      writeRegister(ch, 2)
    else # HOLD
      writeRegister(ch, 0)
    end
  end

  private
  def writeRegister(ch, data)
    # hardware access etc...
  end
end

ch = 1
hw = Hardware.new

hw.iRangeSet(ch, '1mA')

 nilだから動くわけないですな。間抜けすぎ。最初まったく気がつかなくて、ちょっとはまった。
 大文字小文字の間違いを修正して、条件としてHOLDを追加、elseではエラー処理とメッセージを表示するように修正。

 ハードウェアをクラスに記述していくのは、ブロック図で入力しているような感じでなんとなく楽な気がする。