Class: MaxCube::Messages::TCP::Serializer

Inherits:
Object
  • Object
show all
Includes:
Serializer, Handler, MessageA, MessageC, MessageF, MessageL, MessageM, MessageN, MessageQ, MessageS, MessageT, MessageU, MessageZ
Defined in:
lib/maxcube/messages/tcp/type/a.rb,
lib/maxcube/messages/tcp/type/c.rb,
lib/maxcube/messages/tcp/type/f.rb,
lib/maxcube/messages/tcp/type/l.rb,
lib/maxcube/messages/tcp/type/m.rb,
lib/maxcube/messages/tcp/type/n.rb,
lib/maxcube/messages/tcp/type/q.rb,
lib/maxcube/messages/tcp/type/s.rb,
lib/maxcube/messages/tcp/type/t.rb,
lib/maxcube/messages/tcp/type/u.rb,
lib/maxcube/messages/tcp/type/z.rb,
lib/maxcube/messages/tcp/serializer.rb

Defined Under Namespace

Modules: MessageA, MessageC, MessageF, MessageL, MessageM, MessageN, MessageQ, MessageS, MessageT, MessageU, MessageZ

Constant Summary collapse

MSG_TYPES =
%w[u i s m n x g q e d B G J P O V W a r t l c v f z].freeze

Constants included from MaxCube::Messages

DAYS_OF_WEEK, DEVICE_MODE, DEVICE_TYPE, PACK_FORMAT

Instance Method Summary collapse

Methods included from Serializer

#serialize, #serialize_hash_body, #write

Methods included from Handler

#check_data_type, #check_hash, #check_hash_keys, #check_hash_msg_type, #check_hash_values, #check_msg, #check_msg_msg_type, #check_msg_type, #msg_type_hash_keys, #msg_type_hash_opt_keys, #valid_data_type, #valid_hash, #valid_hash_keys, #valid_hash_msg_type, #valid_hash_values, #valid_msg, #valid_msg_msg_type, #valid_msg_type

Methods included from Handler

#check_tcp_data, #check_tcp_hash, #check_tcp_msg, #check_tcp_msg_format, #check_tcp_msg_length, #valid_tcp_data, #valid_tcp_hash, #valid_tcp_msg, #valid_tcp_msg_format, #valid_tcp_msg_length

Instance Method Details

#serialize_tcp_hash(hash) ⇒ String

Serialize data from hash into message with “rn” at the end

Parameters:

  • particular (Hash, #read)

    human readable message parts (it is assumed to contain valid data)

Returns:

  • (String)

    single message data with “rn” at the end



39
40
41
42
43
# File 'lib/maxcube/messages/tcp/serializer.rb', line 39

def serialize_tcp_hash(hash)
  check_tcp_hash(hash)
  msg = "#{@msg_type}:" << serialize_hash_body(hash, 'tcp')
  check_tcp_msg(msg) << "\r\n"
end

#serialize_tcp_hashes(hashes) ⇒ String

Send set of messages separated by “rn”

Parameters:

  • particular (Array<Hash>)

    message contents

Returns:

  • (String)

    raw data for a Cube



30
31
32
33
# File 'lib/maxcube/messages/tcp/serializer.rb', line 30

def serialize_tcp_hashes(hashes)
  raw_data = hashes.map(&method(:serialize_tcp_hash)).join
  check_tcp_data(raw_data)
end