class CresIP::Register

Attributes

header[R]
payload[R]

Public Class Methods

new(header = PacketHeader.new, payload = "\x02") click to toggle source
# File lib/cresip/register.rb, line 17
def initialize(header = PacketHeader.new, payload = "\x02")
    @header = header
    @payload = payload

    if @header.type == nil
        @header.packet_type = PacketTypes[:register]
    end
end

Public Instance Methods

reg_success?() click to toggle source
# File lib/cresip/register.rb, line 36
def reg_success?
    @header.type == :register_success && @payload.length == 4
end
register(ipid = 5, type = 0x0a) click to toggle source
# File lib/cresip/register.rb, line 51
def register(ipid = 5, type = 0x0a)
    # IPID Range: 0x03..0xFE

    head = PacketHeader.new
    # I think 0x0A is a switcher register response
    # and     0x01 is touch screen
    head.packet_type = type
    payload = if type == 0x0a
        # 0a000a00 ipid a342400200000000
        "\x00#{ipid.chr}\xa3\x42\x40\x02\x00\x00\x00\x00"
    else
        # 0100077F00000100 ipid 40
        "\x7F\x00\x00\x01\x00#{ipid.chr}\x40"
    end
    Register.new(head, payload)
end
registering?() click to toggle source
# File lib/cresip/register.rb, line 32
def registering?
    @header.type == :register_response
end
respond(success = true) click to toggle source
# File lib/cresip/register.rb, line 40
def respond(success = true)
    head = PacketHeader.new
    head.packet_type = PacketTypes[:register_success]

    if success
        Register.new(head, "\x00\x00\x00\x03")
    else
        Register.new(head, "\xff\xff\x02")
    end
end
to_binary_s() click to toggle source
# File lib/cresip/register.rb, line 68
def to_binary_s
    @header.packet_size = @payload.bytesize
    "#{@header.to_binary_s}#{@payload}"
end
type() click to toggle source
# File lib/cresip/register.rb, line 28
def type
    @header.type
end