class Simatic::Types::S7String
Public Class Methods
new(value, size = nil)
click to toggle source
# File lib/simatic/types/s7_string.rb, line 6 def initialize value, size = nil @size = size @value = value end
parse_one(raw_value)
click to toggle source
# File lib/simatic/types/s7_string.rb, line 25 def self.parse_one raw_value res = raw_value.unpack('CCa*') buf_size = res[0] string_size = res[1] string = res[2] raise "S7String is broken, cant parse" if buf_size.nil? || string_size.nil? || string.nil? || buf_size < string_size string[0, string_size] end
serialize(value, size)
click to toggle source
# File lib/simatic/types/s7_string.rb, line 11 def self.serialize value, size raise "Value must be String class" unless value.kind_of? String size = size || value.length [size, value.length, value].pack("CCa#{size}x") end
Public Instance Methods
serialize()
click to toggle source
# File lib/simatic/types/s7_string.rb, line 17 def serialize if @value.kind_of? Array @value.map { |single_val| self.class.serialize single_val, @size } else self.class.serialize @value, @size end end