class TeletaskApi::Request

Constants

START

Public Class Methods

new(command, function = 0, number = 0, setting = nil) click to toggle source
# File lib/request.rb, line 4
def initialize command, function = 0, number = 0, setting = nil
        @command = command
        @parameters = Array.new

        case command
        when Command::KEEPALIVE
        when Command::LOG
                @parameters = Array.new
                @parameters[0] = function
                @parameters[1] = number
        else
                @parameters[0] = 1          #central number
                @parameters[1] = function
                @parameters[2] = 0          #byte1
                @parameters[3] = number     #byte2
                @parameters[4] = setting if setting != nil
        end
end

Public Instance Methods

to_s() click to toggle source
# File lib/request.rb, line 23
def to_s
        #"s,8,7,1,1,0,21,103,143,"
        request = [START, length, @command] + @parameters + [checksum]
        request.pack("C*")
end

Private Instance Methods

checksum() click to toggle source
# File lib/request.rb, line 30
def checksum
        parametersum = @parameters.empty? ? 0 : @parameters.inject{|sum,x| sum + x }
        return (START + length + @command + parametersum) % 256
end
length() click to toggle source
# File lib/request.rb, line 35
def length
        return @parameters.length + 3
end