BitStruct-28bit-Ruby Beginner

Hi ,
I am a beginner to Ruby. I am using the ruby 1.9.2p0 (2010-08-18
revision 29036) [i686-linux] and bit-struct (0.13.6)
I am trying to construct a 28 bit length data element in my class
and am getting the following
error./usr/local/ruby/lib/ruby/gems/1.9.1/gems/bit-struct-0.13.6/lib/bit-struct/unsigned-field.rb:244:in
`add_accessors_to': unsupported:

I read through some limitations in
byte alignments of Ruby BitStruct.
I am hoping somebody can direct me to an example of how I can achieve a
28 bit field with BitStruct or some other technique..

Please let me know if this is an incorrect post for this forum and
redirect me.

···

--
Posted via http://www.ruby-forum.com/.

Hi ,
I am a beginner to Ruby. I am using the ruby 1.9.2p0 (2010-08-18
revision 29036) [i686-linux] and bit-struct (0.13.6)
I am trying to construct a 28 bit length data element in my class

And did you read the documentation that says BitStruct supports fields of
size 1 to 16, or multiples of 8? 28 is not a supported size.

and am getting the following
error./usr/local/ruby/lib/ruby/gems/1.9.1/gems/bit-struct-0.13.6/lib/bit-struct/unsigned-field.rb:244:in
`add_accessors_to': unsupported:

That says you're using ruby 1.9.1, not that it matters much. The error is
telling you that 28 bits is not a valid size.

I am hoping somebody can direct me to an example of how I can achieve a
28 bit field with BitStruct or some other technique..

Perhaps you should describe what you are actually trying to do. Are you
trying to parse a file that contains fields of oddly-sized data? There may
be easier ways.

If nothing else, you can compose your field out of smaller sizes, like one
fields of 24 bits and an adjacent field of 4 bits. It depends on what your
actual task is.

···

Jaikanth Krishnaswamy <jaikanth.krishnaswamy@gmail.com> wrote:
--
Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc.

"Jaikanth Krishnaswamy" <jaikanth.krishnaswamy@gmail.com> schrieb im Newsbeitrag news:0401466efe60cefce55d246c5d9ce4d4@ruby-forum.com...

Hi ,
I am a beginner to Ruby. I am using the ruby 1.9.2p0 (2010-08-18
revision 29036) [i686-linux] and bit-struct (0.13.6)
I am trying to construct a 28 bit length data element in my class
and am getting the following
error./usr/local/ruby/lib/ruby/gems/1.9.1/gems/bit-struct-0.13.6/lib/bit-struct/unsigned-field.rb:244:in
`add_accessors_to': unsupported:

Why not use binary string representation:
irb(main):019:0> b = "1234".unpack('B*').first
=> "00110001001100100011001100110100"
irb(main):020:0> [b[8..15]].pack 'B*'
=> "2"

Yes I did read the documentation and was trying to see if some
workaround could be used for odd sized field.
This is part of a protocol simulation that the field is 28 bit long.
Unfortunately it cannot be broken down to more sensible chunks as you
suggested.

Tim Roberts wrote in post #963486:

···

Jaikanth Krishnaswamy <jaikanth.krishnaswamy@gmail.com> wrote:

Hi ,
I am a beginner to Ruby. I am using the ruby 1.9.2p0 (2010-08-18
revision 29036) [i686-linux] and bit-struct (0.13.6)
I am trying to construct a 28 bit length data element in my class

And did you read the documentation that says BitStruct supports fields
of
size 1 to 16, or multiples of 8? 28 is not a supported size.

and am getting the following
error./usr/local/ruby/lib/ruby/gems/1.9.1/gems/bit-struct-0.13.6/lib/bit-struct/unsigned-field.rb:244:in
`add_accessors_to': unsupported:

That says you're using ruby 1.9.1, not that it matters much. The error
is
telling you that 28 bits is not a valid size.

I am hoping somebody can direct me to an example of how I can achieve a
28 bit field with BitStruct or some other technique..

Perhaps you should describe what you are actually trying to do. Are you
trying to parse a file that contains fields of oddly-sized data? There
may
be easier ways.

If nothing else, you can compose your field out of smaller sizes, like
one
fields of 24 bits and an adjacent field of 4 bits. It depends on what
your
actual task is.

--
Posted via http://www.ruby-forum.com/\.

What about padding the 28bit data to 32bit length, with preceding
zeros, for example?

···

On Tue, Nov 30, 2010 at 10:58 PM, Jaikanth Krishnaswamy <jaikanth.krishnaswamy@gmail.com> wrote:

Yes I did read the documentation and was trying to see if some
workaround could be used for odd sized field.
This is part of a protocol simulation that the field is 28 bit long.
Unfortunately it cannot be broken down to more sensible chunks as you
suggested.

--
Phillip Gawlowski

Though the folk I have met,
(Ah, how soon!) they forget
When I've moved on to some other place,
There may be one or two,
When I've played and passed through,
Who'll remember my song or my face.