Class: MaxCube::Messages::TCP::Parser
- Inherits:
-
Object
- Object
- MaxCube::Messages::TCP::Parser
- Includes:
- Handler, Parser, MessageA, MessageC, MessageF, MessageH, MessageL, MessageM, MessageN, MessageS
- Defined in:
- lib/maxcube/messages/tcp/parser.rb,
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/h.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/s.rb
Defined Under Namespace
Modules: MessageA, MessageC, MessageF, MessageH, MessageL, MessageM, MessageN, MessageS
Constant Summary collapse
- MSG_TYPES =
%w[H F L C M N A E D b g j p o v w S].freeze
Constants included from MaxCube::Messages
DAYS_OF_WEEK, DEVICE_MODE, DEVICE_TYPE, PACK_FORMAT
Instance Method Summary collapse
-
#parse_tcp_data(raw_data) ⇒ Array<Hash>
Process set of messages - raw data separated by “rn”.
-
#parse_tcp_msg(msg) ⇒ Hash
Parse single message already without “rn”.
Methods included from Parser
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
Instance Method Details
#parse_tcp_data(raw_data) ⇒ Array<Hash>
Process set of messages - raw data separated by “rn”
27 28 29 30 |
# File 'lib/maxcube/messages/tcp/parser.rb', line 27 def parse_tcp_data(raw_data) check_tcp_data(raw_data) raw_data.split("\r\n").map(&method(:parse_tcp_msg)) end |
#parse_tcp_msg(msg) ⇒ Hash
Parse single message already without “rn”
36 37 38 39 40 41 42 |
# File 'lib/maxcube/messages/tcp/parser.rb', line 36 def parse_tcp_msg(msg) check_tcp_msg(msg) body = msg.split(':')[1] || '' hash = { type: @msg_type } return hash unless parse_msg_body(body, hash, 'tcp') check_tcp_hash(hash) end |