Class: Export_manager
- Inherits:
-
Qt::Widget
- Object
- Qt::Widget
- Export_manager
- Defined in:
- lib/class/Export_manager.rb
Instance Method Summary collapse
- #create_result_table(bus) ⇒ Object
-
#initialize(bus, result, spiDataSended = []) ⇒ Export_manager
constructor
A new instance of Export_manager.
- #save_i2c(result_file) ⇒ Object
- #save_i2c_csv(result_file) ⇒ Object
- #save_result ⇒ Object
- #save_spi(result_file) ⇒ Object
Constructor Details
#initialize(bus, result, spiDataSended = []) ⇒ Export_manager
Returns a new instance of Export_manager.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/class/Export_manager.rb', line 12 def initialize(bus, result, spiDataSended = []) super() @view = Ui_Export_manager.new centerWindow(self) @view.setupUi(self) @bus = bus # Check the bus type to adapt the table column if bus == 'SPI' create_result_table('SPI') @view.cbx_export.hide @view.tbl_result.setRowCount(result.length) result.length.times do |i| @view.tbl_result.setItem(i, 0, Qt::TableWidgetItem.new(spiDataSended[i].to_s)) @view.tbl_result.setItem(i, 1, Qt::TableWidgetItem.new(result[i].to_s)) end @view.tbl_result.resizeColumnsToContents @view.tbl_result.resizeRowsToContents @view.tbl_result.horizontalHeader.stretchLastSection = true else create_result_table('I2C') @view.tbl_result.setRowCount(result.length / 2) (0..result.length - 1).step(2).each_with_index do |i, v| case result[i] when 0 @view.tbl_result.setItem(v, 0, Qt::TableWidgetItem.new('Write')) @view.tbl_result.setItem(v, 1, Qt::TableWidgetItem.new('ACK')) @view.tbl_result.setItem(v, 2, Qt::TableWidgetItem.new(result[i + 1].to_s)) when 1 @view.tbl_result.setItem(v, 0, Qt::TableWidgetItem.new('Read')) @view.tbl_result.setItem(v, 1, Qt::TableWidgetItem.new('ACK')) @view.tbl_result.setItem(v, 2, Qt::TableWidgetItem.new(result[i + 1].to_s)) when 2 @view.tbl_result.setItem(v, 0, Qt::TableWidgetItem.new('Write')) @view.tbl_result.setItem(v, 1, Qt::TableWidgetItem.new('NACK')) @view.tbl_result.setItem(v, 2, Qt::TableWidgetItem.new(result[i + 1].to_s)) else @view.tbl_result.setItem(v, 0, Qt::TableWidgetItem.new('Write')) @view.tbl_result.setItem(v, 1, Qt::TableWidgetItem.new('NACK')) @view.tbl_result.setItem(v, 2, Qt::TableWidgetItem.new(result[i + 1].to_s)) end end @view.tbl_result.resizeColumnsToContents @view.tbl_result.resizeRowsToContents @view.tbl_result.horizontalHeader.stretchLastSection = true end end |
Instance Method Details
#create_result_table(bus) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/class/Export_manager.rb', line 59 def create_result_table(bus) if bus == 'SPI' @view.tbl_result.insertColumn(0) @view.tbl_result.setHorizontalHeaderItem(0, Qt::TableWidgetItem.new('Data send')) @view.tbl_result.insertColumn(1) @view.tbl_result.setHorizontalHeaderItem(1, Qt::TableWidgetItem.new('Data receive')) else @view.tbl_result.insertColumn(0) @view.tbl_result.setHorizontalHeaderItem(0, Qt::TableWidgetItem.new('R/W')) @view.tbl_result.insertColumn(1) @view.tbl_result.setHorizontalHeaderItem(1, Qt::TableWidgetItem.new('(N)ACK)')) @view.tbl_result.insertColumn(2) @view.tbl_result.setHorizontalHeaderItem(2, Qt::TableWidgetItem.new('DATA')) end end |
#save_i2c(result_file) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/class/Export_manager.rb', line 103 def save_i2c(result_file) file = File.open("#{result_file}", 'w') result = [] @view.tbl_result.rowCount.times do |i| if @view.tbl_result.item(i, 0).text == 'Read' && @view.tbl_result.item(i, 1).text == 'ACK' result.push(@view.tbl_result.item(i, 2).text.to_i) end end file.write(result.pack('C*')) file.close end |
#save_i2c_csv(result_file) ⇒ Object
94 95 96 97 98 99 100 101 |
# File 'lib/class/Export_manager.rb', line 94 def save_i2c_csv(result_file) CSV.open("#{result_file}.csv", 'wb', :col_sep => ';') do |csv| csv << ['R/W', '(N)ACK', 'DATA'] @view.tbl_result.rowCount.times do |i| csv << [@view.tbl_result.item(i, 0).text, @view.tbl_result.item(i, 1).text, @view.tbl_result.item(i, 2).text] end end end |
#save_result ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/class/Export_manager.rb', line 75 def save_result result_file = Qt::FileDialog.getSaveFileName(self, tr('Create a file'), '/', tr('All files (*)')) unless result_file.nil? if @bus == 'I2C' if @view.cbx_export.currentIndex == 0 save_i2c_csv(result_file) else save_i2c(result_file) end else save_spi(result_file) end end rescue Exception => msg logger = Logger.new($logFilePath) logger.error msg Qt::MessageBox.new(Qt::MessageBox::Critical, 'Critical error', 'Error occured while saving the results. Consult the logs for more details').exec end |
#save_spi(result_file) ⇒ Object
115 116 117 118 119 120 121 122 123 |
# File 'lib/class/Export_manager.rb', line 115 def save_spi(result_file) file = File.open("#{result_file}", 'w') result = [] @view.tbl_result.rowCount.times do |i| result.push(@view.tbl_result.item(i, 1).text.to_i) end file.write(result.pack('C*')) file.close end |