Method: Utel::Pdu.decode

Defined in:
lib/utel/pdu.rb

.decode(string) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/utel/pdu.rb', line 17

def self.decode string
  out = ''
  b = 0; d = 0
  string.scan(/.{2}/).each do |part|
    byte = part.to_i(16)
    c = ((byte & ((1 << 7-d)-1)) << d) | b;
    b = byte >> (7-d);
    out << c.chr
    d += 1
    if d == 7
      out << b.chr
      d = 0; b = 0
    end
  end
  out
end