Class: I2c_import

Inherits:
Qt::Widget
  • Object
show all
Defined in:
lib/class/I2C/I2c_import.rb

Instance Method Summary collapse

Constructor Details

#initialize(api, chip) ⇒ I2c_import

Returns a new instance of I2c_import.



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/class/I2C/I2c_import.rb', line 15

def initialize(api, chip)
  super()
  @i2c_import_gui = Ui_Generic_import.new
  centerWindow(self)
  @i2c_import_gui.setupUi(self)
  @i2c_import_gui.lbl_chip.setText(chip.chip_reference)
  inputRestrict(@i2c_import_gui.lie_start, 0)
  @api = api
  @chip = chip
  @chip_settings = I2C.find_by(i2c_chip: chip.chip_id)
end

Instance Method Details

#control_import_settingsObject



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/class/I2C/I2c_import.rb', line 51

def control_import_settings
  @chip_settings = I2C.find_by(i2c_chip: @chip.chip_id)
  if @chip_settings.nil?
    Qt::MessageBox.new(Qt::MessageBox::Warning, 'Missing I2C setting', 'No settings saved for this chip').exec
    return 0
  end
  if @chip_settings.i2c_total_size.nil?
    Qt::MessageBox.new(Qt::MessageBox::Warning, 'Missing I2C setting', 'Total size setting missing').exec
    return 0
  end
  if @chip_settings.i2c_page_size.nil?
    Qt::MessageBox.new(Qt::MessageBox::Warning, 'Missing I2C setting', 'Page size setting missing').exec
    return 0
  end
  if @chip_settings.i2c_write_page_latency.nil?
    Qt::MessageBox.new(Qt::MessageBox::Warning, 'Missing I2C setting', 'Write page latency setting missing').exec
    return 0
  end
  if @chip_settings.i2c_frequency.nil? || @chip_settings.i2c_address_w.nil?
    Qt::MessageBox.new(Qt::MessageBox::Warning, 'Missing I2C setting', 'Write base address or frequency settings missing').exec
    return 0
  end
  if @i2c_import_gui.lie_start.text.empty?
    Qt::MessageBox.new(Qt::MessageBox::Warning, 'Missing start address', 'Please fill the Start address field').exec
    return 0
  end
  return 1
end

#importObject



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/class/I2C/I2c_import.rb', line 38

def import
  return 0 if control_import_settings.zero?
  start = @i2c_import_gui.lie_start.text.to_i
  Firmware.new(@api, 'I2C')
  $pgb = Progress_bar.new("I2C: Importing...")
  $pgb.show
  @api.i2c_Generic_Import(@chip_settings.i2c_frequency, @chip_settings.i2c_address_w.to_i(16), start, @chip_settings.i2c_page_size, @chip_settings.i2c_total_size, @filepath, @chip_settings.i2c_write_page_latency/1000.0)
rescue Exception => msg
    logger = Logger.new($logFilePath)
    logger.error msg
    Qt::MessageBox.new(Qt::MessageBox::Critical, 'Critical error', 'Error occured while partial import operation. Consult the logs for more details').exec
end

#select_import_fileObject



27
28
29
30
31
32
33
34
35
36
# File 'lib/class/I2C/I2c_import.rb', line 27

def select_import_file
  @filepath = Qt::FileDialog.getOpenFileName(self, tr('Select a file'), '/', tr('Bin file (*.bin)'))
  unless @filepath.nil?
    @i2c_import_gui.btn_import.setEnabled(true)
  end
rescue Exception => msg
    logger = Logger.new($logFilePath)
    logger.error msg
    Qt::MessageBox.new(Qt::MessageBox::Critical, 'Critical error', 'Error occured while openning the export file. Consult the logs for more details').exec
end