Date: 2012-11-06 09:45
Sender: Dion Mendel
Here's the framework to use. You just need to insert the pack/unpack
code.
class PkdDec < BinData::Primitive
mandatory_parameter :length
default_parameter :dec_pos => 0
string :str, :read_length => :length
def get
str_length = eval_parameter(:length)
dec_pos = eval_parameter(:dec_pos)
unpacked = str.unpack("H#{str_length
* 2}").first
dec_val = # convert unpacked value to float ...
dec
end
def set(dec_val)
packed_str = # convert dec_val to packed string ...
str.assign(packed_str)
end
end
class MyRecord < BinData::Record
pkd_dec :amt1, :length => 6, :dec_pos => 2
end
|