module EISCP::Parser::EISCPParser

This module parses an eISCP string and returns a Message object

Public Class Methods

create_header(array) click to toggle source
# File lib/eiscp/parser/eiscp_parser.rb, line 24
def self.create_header(array)
  {
    magic: array[0],
    header_size: array[1],
    data_size: array[2],
    version: array[3],
    reserved: array[4]
  }
end
parse(string) click to toggle source
# File lib/eiscp/parser/eiscp_parser.rb, line 10
def self.parse(string)
  array = string.unpack('A4NNCa3A*')
  msg = ISCPParser.parse(array[5])
  packet = Message.new(
    command: msg.command,
    value: msg.value,
    terminator: msg.terminator,
    unit_type: msg.unit_type,
    start: msg.start
  )
  packet.header = create_header(array)
  packet
end
validate(packet) click to toggle source
# File lib/eiscp/parser/eiscp_parser.rb, line 34
def self.validate(packet)
  packet.header.header_size.size == packet.command.size
end