module Unpack

Constants

MASKS

Public Instance Methods

read_bit(byte, bit) click to toggle source
# File lib/fitreader/unpack.rb, line 21
def read_bit(byte, bit)
  (byte & MASKS[bit]) >> bit
end
read_bits(byte, range) click to toggle source
# File lib/fitreader/unpack.rb, line 25
def read_bits(byte, range)
  mask = range.first
              .downto(range.last)
              .inject(0) { |sum, i| sum + MASKS[i] }
  (byte & mask) >> range.last
end
read_multiple(io, char, len, size) click to toggle source
# File lib/fitreader/unpack.rb, line 7
def read_multiple(io, char, len, size)
  if char == 'Z*'
    readbytes(io, char, len)
  else
    multiples = len / size
    res = io.read(len).unpack(char * multiples)
    if res.length == 1
      res.first
    else
      res
    end
  end
end
readbytes(io, char, len) click to toggle source
# File lib/fitreader/unpack.rb, line 2
def readbytes(io, char, len)
  d = io.read(len)
  d.unpack(char).first
end