Class: Spi_settings

Inherits:
Qt::Widget
  • Object
show all
Defined in:
lib/class/SPI/Spi_settings.rb

Instance Method Summary collapse

Constructor Details

#initialize(chip) ⇒ Spi_settings

Returns a new instance of Spi_settings.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/class/SPI/Spi_settings.rb', line 12

def initialize(chip)
  super()
  @view = Ui_Spi_settings.new
  centerWindow(self)
  @view.setupUi(self)
  @view.lbl_chip.setText(chip.reference)
  inputRestrict(@view.lie_total_size,         0)
  inputRestrict(@view.lie_page_size,          0)
  inputRestrict(@view.lie_write_page_latency, 0)
  inputRestrict(@view.lie_cmd_read,           0)
  inputRestrict(@view.lie_cmd_write,          0)
  inputRestrict(@view.lie_cmd_write_enable,   0)
  inputRestrict(@view.lie_cmd_erase,          0)
  inputRestrict(@view.lie_erase_time,         0)
  @chip = chip
  feed_settings_form unless chip.spi_setting.nil?
end

Instance Method Details

#createObject



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# File 'lib/class/SPI/Spi_settings.rb', line 56

def create
  chip_settings = SpiSetting.create(
    mode:                 @view.cbx_mode.currentText.to_i,
    frequency:            @view.cbx_frequency.currentText,
    write_page_latency:   @view.lie_write_page_latency.text,
    command_read:         @view.lie_cmd_read.text,
    command_write:        @view.lie_cmd_write.text,
    command_write_enable: @view.lie_cmd_write_enable.text,
    command_erase:        @view.lie_cmd_erase.text,
    erase_time:           @view.lie_erase_time.text,
    page_size:            @view.lie_page_size.text,
    total_size:           @view.lie_total_size.text,
    is_flash:             is_flash?,
    chip_id:              @chip.id
  )
  unless check_for_errors(chip_settings)
    Qt::MessageBox.new(
      Qt::MessageBox::Information,
      'Succes',
      'SPI settings saved'
    ).exec
    close
  end
rescue Exception => msg
  ErrorMsg.new.unknown(msg)
end

#feed_settings_formObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/class/SPI/Spi_settings.rb', line 35

def feed_settings_form
  @view.cbx_mode.setCurrentIndex(@view.cbx_mode.findText(@chip.spi_setting.mode.to_s))
  @view.cbx_frequency.setCurrentIndex(@view.cbx_frequency.findText(@chip.spi_setting.frequency))
  @view.lie_cmd_read.setText(@chip.spi_setting.command_read.to_s)
  @view.lie_cmd_write.setText(@chip.spi_setting.command_write.to_s)
  @view.lie_write_page_latency.setText(@chip.spi_setting.write_page_latency.to_s)
  @view.lie_cmd_write_enable.setText(@chip.spi_setting.command_write_enable.to_s)
  @view.lie_cmd_erase.setText(@chip.spi_setting.command_erase.to_s)
  @view.lie_erase_time.setText(@chip.spi_setting.erase_time.to_s)
  @view.lie_page_size.setText(@chip.spi_setting.page_size.to_s)
  @view.lie_total_size.setText(@chip.spi_setting.total_size.to_s)
  @view.rbn_no.setChecked(true) if @chip.spi_setting.is_flash.zero?
rescue Exception => msg
  ErrorMsg.new.unknow(msg)
end

#is_flash?Boolean

Returns:

  • (Boolean)


51
52
53
54
# File 'lib/class/SPI/Spi_settings.rb', line 51

def is_flash?
  return 0 if @view.rbn_no.isChecked
  return 1
end

#save_settingsObject



30
31
32
33
# File 'lib/class/SPI/Spi_settings.rb', line 30

def save_settings
  @chip.spi_setting.nil? ? create : update
  @chip.reload
end

#updateObject



83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# File 'lib/class/SPI/Spi_settings.rb', line 83

def update
  @chip.spi_setting.update(
    mode:                 @view.cbx_mode.currentText.to_i,
    frequency:            @view.cbx_frequency.currentText,
    write_page_latency:   @view.lie_write_page_latency.text,
    command_read:         @view.lie_cmd_read.text,
    command_write:        @view.lie_cmd_write.text,
    command_write_enable: @view.lie_cmd_write_enable.text,
    command_erase:        @view.lie_cmd_erase.text,
    erase_time:           @view.lie_erase_time.text,
    page_size:            @view.lie_page_size.text,
    total_size:           @view.lie_total_size.text,
    is_flash:             is_flash?
  )
  unless check_for_errors(@chip.spi_setting)
    Qt::MessageBox.new(
      Qt::MessageBox::Information,
      'Succes',
      'SPI settings updated'
    ).exec
    close
  end
rescue Exception => msg
  ErrorMsg.new.unknown(msg)
end