Sha256: a557d683017eb4ff472e2a0f2a7021b85bb5fbd6f3716aa75b0e7fe9f909d793
Contents?: true
Size: 1.05 KB
Versions: 2
Compression:
Stored size: 1.05 KB
Contents
require_relative 'handler' require 'maxcube/messages/parser' module MaxCube module Messages module UDP class Parser include Handler include Messages::Parser KEYS = %i[prefix serial_number id].freeze %w[i n h].each { |f| require_relative 'type/' << f } MSG_TYPES = %w[I N h c].freeze include MessageI include MessageN include MessageH MSG_PREFIX = (UDP::MSG_PREFIX + 'Ap').freeze def parse_udp_msg(msg) check_udp_msg(msg) hash = parse_udp_msg_head(msg) return hash unless parse_msg_body(@io.string, hash, 'udp') check_udp_hash(hash) end private def msg_msg_type(msg) msg[19] end def parse_udp_msg_head(msg) @io = StringIO.new(msg, 'rb') hash = { prefix: read(8), serial_number: read(10), id: read(1, true), type: read(1), } @io.string = @io.read hash end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
maxcube-client-0.4.1 | lib/maxcube/messages/udp/parser.rb |
maxcube-client-0.4.0 | lib/maxcube/messages/udp/parser.rb |