Module: AutomationCodeList

Defined in:
lib/automation_code_list.rb

Class Method Summary collapse

Class Method Details

._inverse(code, code_length, num) ⇒ Object

反码处理code 待处理的编码num 处理后几位作为反码



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/automation_code_list.rb', line 9

def self._inverse(code,code_length,num)
  begin
   length = code.length
   _num = code_length/4 - length
   _num.times.each do |i|
     code = "0"+code
   end
   inverse_num = ""
   num.times.each do |i|
     inverse_num +="1"
   end
    inverse_num = "0b" + inverse_num
    ret = ""
    eval("ret=((~((code).to_i(16)))&Integer(#{inverse_num})).to_s(16)")
    (code_length/4 - ret.length).times.each do |i|
      ret = "0" + ret
    end
    return ret
   rescue => err
    raise RuntimeError, get_error_msg("get radix-minus-one complement Error,  Error msg : #{err.to_s}",{METHOD_NAME => "inverse"})
  end
end

.dispose(protocol, code) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/automation_code_list.rb', line 37

def self.dispose(protocol,code)
  begin
    protocol_array = protocol.split("#")
    ret = ""
    header = true
    protocol_array.length.times.each do |i|
      @_error = ""
      @_msg = ""
      if protocol_array[i][0]=="V"
        _dispose_code = protocol_array[i].split(":")
        @_array = _dispose_code
        @code_length = _dispose_code[2].to_i
        _dispose_code[1]=eval("#{_dispose_code[1]}")
        @_msg = "I= #{i} protocol = #{protocol_array[i]}  "
        (_dispose_code[2].to_i/4-_dispose_code[1].length).times.each do |i|
          _dispose_code[1] = "0"+_dispose_code[1]
        end
        _dispose_code[1] = "0x"+_dispose_code[1]
        protocol_array[i]=_dispose_code[0]+":"+_dispose_code[1]+":"+ _dispose_code[3]
        p "********************************Use protocol #{protocol}  Code:#{code} Msg:#{@_msg} Array:#{@_array}"
      end
      unless header
        ret += "#"+protocol_array[i]
      else
        ret +=protocol_array[i]
        header = false
      end
    end
    return ret
  rescue => err
    raise RuntimeError,"Error!Msg:#{err.to_s} ********************************Use protocol #{protocol}  Code:#{@_error} Msg:#{@_msg} Array:#{@_array}"
  end
end

.inverse(code, num) ⇒ Object



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

def self.inverse(code,num)
  _inverse(code,@code_length,num)
end