Class: LadderDrive::Uploader

Inherits:
Object
  • Object
show all
Includes:
PlcDefine
Defined in:
lib/ladder_drive/uploader.rb

Constant Summary

Constants included from PlcDefine

PlcDefine::ESC_STATUS_FROM_PLC_ACK_CLEAR_PROGRAM, PlcDefine::ESC_STATUS_FROM_PLC_CYCLE_RUN, PlcDefine::ESC_STATUS_TO_PLC_CLEAR_PROGRAM, PlcDefine::ESC_STATUS_TO_PLC_STOP_PLC_FLAG

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Uploader

Returns a new instance of Uploader.



35
36
37
# File 'lib/ladder_drive/uploader.rb', line 35

def initialize options={}
  @protocol = options[:protocol] if options[:protocol]
end

Instance Attribute Details

#protocolObject

Returns the value of attribute protocol.



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

def protocol
  @protocol
end

#sourceObject

Returns the value of attribute source.



33
34
35
# File 'lib/ladder_drive/uploader.rb', line 33

def source
  @source
end

Instance Method Details

#dataObject



47
48
49
50
51
52
# File 'lib/ladder_drive/uploader.rb', line 47

def data
  @data ||= begin
    hex = IntelHex.load @source
    hex.codes
  end
end

#uploadObject



39
40
41
42
43
44
45
# File 'lib/ladder_drive/uploader.rb', line 39

def upload
  # stop plc
  stop_plc
  clear_program
  write_program
  run_plc
end

#word_dataObject



54
55
56
57
58
59
# File 'lib/ladder_drive/uploader.rb', line 54

def word_data
  data.each_slice(2).map do |pair|
    pair << 0 if pair.size == 1
    pair.pack("C*").unpack("n*")
  end.flatten
end