Class: CresIP::Register

Inherits:
Object
  • Object
show all
Defined in:
lib/cresip/register.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(header = PacketHeader.new, payload = "\x02") ⇒ Register

Returns a new instance of Register.



17
18
19
20
21
22
23
24
# 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

Instance Attribute Details

#headerObject (readonly)

Returns the value of attribute header.



26
27
28
# File 'lib/cresip/register.rb', line 26

def header
  @header
end

#payloadObject (readonly)

Returns the value of attribute payload.



26
27
28
# File 'lib/cresip/register.rb', line 26

def payload
  @payload
end

Instance Method Details

#reg_success?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/cresip/register.rb', line 36

def reg_success?
    @header.type == :register_success && @payload.length == 4
end

#register(ipid = 5, type = 0x0a) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/cresip/register.rb', line 32

def registering?
    @header.type == :register_response
end

#respond(success = true) ⇒ Object



40
41
42
43
44
45
46
47
48
49
# 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_sObject



68
69
70
71
# File 'lib/cresip/register.rb', line 68

def to_binary_s
    @header.packet_size = @payload.bytesize
    "#{@header.to_binary_s}#{@payload}"
end

#typeObject



28
29
30
# File 'lib/cresip/register.rb', line 28

def type
    @header.type
end