From f8db03e725d528569abb13c22c2878c213822023 Mon Sep 17 00:00:00 2001 From: chromhelm Date: Fri, 29 May 2015 16:51:55 +0200 Subject: [PATCH 1/3] - Saving same bytes in HardwareSerial::write --- hardware/arduino/avr/cores/arduino/HardwareSerial.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hardware/arduino/avr/cores/arduino/HardwareSerial.cpp b/hardware/arduino/avr/cores/arduino/HardwareSerial.cpp index 4022698934a..a2029a8b0d4 100644 --- a/hardware/arduino/avr/cores/arduino/HardwareSerial.cpp +++ b/hardware/arduino/avr/cores/arduino/HardwareSerial.cpp @@ -213,6 +213,7 @@ void HardwareSerial::flush() size_t HardwareSerial::write(uint8_t c) { + _written = true; // If the buffer and the data register is empty, just write the byte // to the data register and be done. This shortcut helps // significantly improve the effective datarate at high (> @@ -220,7 +221,6 @@ size_t HardwareSerial::write(uint8_t c) if (_tx_buffer_head == _tx_buffer_tail && bit_is_set(*_ucsra, UDRE0)) { *_udr = c; sbi(*_ucsra, TXC0); - _written = true; return 1; } tx_buffer_index_t i = (_tx_buffer_head + 1) % SERIAL_TX_BUFFER_SIZE; @@ -244,10 +244,8 @@ size_t HardwareSerial::write(uint8_t c) _tx_buffer_head = i; sbi(*_ucsrb, UDRIE0); - _written = true; return 1; } - #endif // whole file From 219cc6c4e482403705f555992c50c59f1f1eff0f Mon Sep 17 00:00:00 2001 From: Wilhelm Date: Thu, 5 Apr 2018 22:15:33 +0200 Subject: [PATCH 2/3] Add clear button to SerialPlotter --- app/src/processing/app/SerialPlotter.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/processing/app/SerialPlotter.java b/app/src/processing/app/SerialPlotter.java index 363753749fe..262b525687d 100644 --- a/app/src/processing/app/SerialPlotter.java +++ b/app/src/processing/app/SerialPlotter.java @@ -37,6 +37,7 @@ public class SerialPlotter extends AbstractMonitor { private final StringBuffer messageBuffer; private JComboBox serialRates; + private JButton clearButton; private Serial serial; private int serialRate, xCount; @@ -231,6 +232,8 @@ public SerialPlotter(BoardPort port) { messageBuffer = new StringBuffer(); graphs = new ArrayList<>(); + + clearButton.addActionListener(ae -> {graphs.clear();}); } protected void onCreateWindow(Container mainPane) { @@ -248,16 +251,20 @@ protected void onCreateWindow(Container mainPane) { for (String serialRateString : serialRateStrings) serialRates.addItem(serialRateString + " " + tr("baud")); serialRates.setMaximumSize(serialRates.getMinimumSize()); + + clearButton = new JButton(tr("Clear output")); pane.add(Box.createHorizontalGlue()); pane.add(Box.createRigidArea(new Dimension(8, 0))); pane.add(serialRates); + pane.add(clearButton); mainPane.add(pane, BorderLayout.SOUTH); } protected void onEnableWindow(boolean enable) { serialRates.setEnabled(enable); + clearButton.setEnabled(enable); } private void onSerialRateChange(ActionListener listener) { From c76a8f98054856153efdfd216dc47540e46246d6 Mon Sep 17 00:00:00 2001 From: Wilhelm Date: Fri, 6 Apr 2018 00:22:11 +0200 Subject: [PATCH 3/3] Added label support to SerialPlotter Supports csv style header and colon separated