Module: Argus::CFields::ClassMethods
- Defined in:
- lib/argus/cfields.rb
Instance Method Summary collapse
- #allot(n = 1) ⇒ Object
- #data_index ⇒ Object
- #define_array_field(name, size, format, width, transform) ⇒ Object
- #define_field(name, size, format, width = 1, &transform) ⇒ Object
- #define_scaler_field(name, format, width, transform) ⇒ Object
- #float32_t(name, size = nil) ⇒ Object
- #format_string ⇒ Object
- #int32_t(name, size = nil) ⇒ Object
- #matrix33_t(name, size = nil) ⇒ Object
- #uint16_t(name, size = nil) ⇒ Object
- #uint32_t(name, size = nil) ⇒ Object
- #vector31_t(name, size = nil) ⇒ Object
Instance Method Details
#allot(n = 1) ⇒ Object
28 29 30 31 32 |
# File 'lib/argus/cfields.rb', line 28 def allot(n=1) result = data_index @data_index += n result end |
#data_index ⇒ Object
20 21 22 |
# File 'lib/argus/cfields.rb', line 20 def data_index @data_index ||= 0 end |
#define_array_field(name, size, format, width, transform) ⇒ Object
48 49 50 51 52 |
# File 'lib/argus/cfields.rb', line 48 def define_array_field(name, size, format, width, transform) index = allot(width*size) format_string << "#{format}#{width*size}" define_method(name) { @data[index, width*size] } end |
#define_field(name, size, format, width = 1, &transform) ⇒ Object
34 35 36 37 38 39 40 |
# File 'lib/argus/cfields.rb', line 34 def define_field(name, size, format, width=1, &transform) if size define_array_field(name, size, format, width, transform) else define_scaler_field(name, format, width, transform) end end |
#define_scaler_field(name, format, width, transform) ⇒ Object
42 43 44 45 46 |
# File 'lib/argus/cfields.rb', line 42 def define_scaler_field(name, format, width, transform) index = allot(width) format_string << (width==1 ? format : "#{format}#{width}") define_method(name) { @data[index] } end |
#float32_t(name, size = nil) ⇒ Object
62 63 64 |
# File 'lib/argus/cfields.rb', line 62 def float32_t(name, size=nil) define_field(name, size, "e") end |
#format_string ⇒ Object
24 25 26 |
# File 'lib/argus/cfields.rb', line 24 def format_string @format_string ||= (defined?(initial_format) ? initial_format : "") end |
#int32_t(name, size = nil) ⇒ Object
66 67 68 |
# File 'lib/argus/cfields.rb', line 66 def int32_t(name, size=nil) define_field(name, size, "l<") end |
#matrix33_t(name, size = nil) ⇒ Object
70 71 72 |
# File 'lib/argus/cfields.rb', line 70 def matrix33_t(name, size=nil) define_field(name, size, "V", 9) end |
#uint16_t(name, size = nil) ⇒ Object
58 59 60 |
# File 'lib/argus/cfields.rb', line 58 def uint16_t(name, size=nil) define_field(name, size, "v") end |
#uint32_t(name, size = nil) ⇒ Object
54 55 56 |
# File 'lib/argus/cfields.rb', line 54 def uint32_t(name, size=nil) define_field(name, size, "V") end |
#vector31_t(name, size = nil) ⇒ Object
74 75 76 |
# File 'lib/argus/cfields.rb', line 74 def vector31_t(name, size=nil) define_field(name, size, "V", 3) end |