Changeset 212
- Timestamp:
- 04/09/11 21:48:38 (14 months ago)
- Location:
- trunk
- Files:
-
- 15 added
- 8 modified
- 2 copied
- 1 moved
-
CHANGELOG (modified) (1 diff)
-
lib/velocity-1.7-dep.jar (added)
-
src-test/Browser.java (added)
-
src-test/templates (added)
-
src-test/templates/HelloWorld.vm (added)
-
src-test/velocity (added)
-
src-test/velocity/HelloWorld.java (added)
-
src/org/jergometer/communication/BikeConnectionTester.java (modified) (2 diffs)
-
src/org/jergometer/communication/BikeConnector.java (modified) (3 diffs)
-
src/org/jergometer/communication/BikeConnectorSimulator.java (added)
-
src/org/jergometer/communication/BikeReader.java (added)
-
src/org/jergometer/communication/BikeWriter.java (added)
-
src/org/jergometer/communication/FileRecorder.java (added)
-
src/org/jergometer/communication/KetterBikeConnector.java (moved) (moved from trunk/src/org/jergometer/communication/BikeConnectorSerial.java) (4 diffs)
-
src/org/jergometer/communication/KettlerBikeReader.java (copied) (copied from trunk/src/org/jergometer/communication/BikeReader.java) (2 diffs)
-
src/org/jergometer/communication/KettlerBikeWriter.java (copied) (copied from trunk/src/org/jergometer/communication/BikeWriter.java) (2 diffs)
-
src/org/jergometer/gui/BikeInfoPane.java (added)
-
src/org/jergometer/gui/MainWindow.form (modified) (3 diffs)
-
src/org/jergometer/gui/MainWindow.java (modified) (12 diffs)
-
src/org/jergometer/gui/SettingsWindow.java (modified) (2 diffs)
-
src/org/jergometer/gui/templates (added)
-
src/org/jergometer/gui/templates/default_de.vm (added)
-
src/org/jergometer/gui/templates/default.vm (added)
-
src/org/jergometer/Jergometer.java (modified) (1 diff)
-
src/org/jergometer/JergometerTestConsole.java (modified) (3 diffs)
-
src/velocity.properties (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/CHANGELOG
r211 r212 6 6 * implemented issue #247: display error message when JErgometer is started without RXTX library 7 7 * implemented issue #252: rename all occurrences of "COM port" to "serial port" 8 * implemented issue #253: allow to switch between kJ and kcal 8 9 9 10 == 0.7.11 == -
trunk/src/org/jergometer/communication/BikeConnectionTester.java
r210 r212 25 25 private SerialPort serialPort; 26 26 private BufferedReader reader = null; 27 private BikeWriter writer = null;27 private KettlerBikeWriter writer = null; 28 28 29 29 private State state = State.init; … … 73 73 74 74 // set reader and writer 75 writer = new BikeWriter(serialPort.getOutputStream());75 writer = new KettlerBikeWriter(serialPort.getOutputStream()); 76 76 RXTXReader rxtxReader = new RXTXReader(serialPort); 77 77 reader = new BufferedReader(new InputStreamReader(rxtxReader)); -
trunk/src/org/jergometer/communication/BikeConnector.java
r76 r212 10 10 public interface BikeConnector extends Closeable { 11 11 /** 12 * Returns the reader re ading receiving from the XUP board.12 * Returns the reader receiving messages from the ergometer. 13 13 * 14 14 * @return reader … … 17 17 18 18 /** 19 * Returns the writer sending messages to the the XUP board.19 * Returns the writer sending messages to the ergometer. 20 20 * 21 21 * @return writer … … 24 24 25 25 /** 26 * Closes the connection to the XUP board.26 * Closes the connection to the ergometer. 27 27 */ 28 28 public void close() throws IOException; -
trunk/src/org/jergometer/communication/KetterBikeConnector.java
r210 r212 9 9 import org.jergometer.translation.I18n; 10 10 11 import javax.swing.*;12 13 11 /** 14 * BikeConnectorSerialconnects to the bike via serial port (e.g. RS232 or USB).12 * KetterBikeConnector connects to the bike via serial port (e.g. RS232 or USB). 15 13 * It is used to receive data from the bike and to control it. 16 14 */ 17 public class BikeConnectorSerialimplements BikeConnector {15 public class KetterBikeConnector implements BikeConnector { 18 16 19 17 // static … … 50 48 51 49 private SerialPort serialPort; 52 private BikeReader reader = null;53 private BikeWriter writer = null;50 private KettlerBikeReader reader = null; 51 private KettlerBikeWriter writer = null; 54 52 55 public BikeConnectorSerial(String serialName) throws BikeException, UnsupportedCommOperationException, IOException {53 public KetterBikeConnector(String serialName) throws BikeException, UnsupportedCommOperationException, IOException { 56 54 connect(serialName); 57 55 } … … 86 84 87 85 // set reader and writer 88 writer = new BikeWriter(serialPort.getOutputStream());86 writer = new KettlerBikeWriter(serialPort.getOutputStream()); 89 87 RXTXReader rxtxReader = new RXTXReader(serialPort); 90 reader = new BikeReader(rxtxReader);88 reader = new KettlerBikeReader(rxtxReader); 91 89 } 92 90 … … 112 110 113 111 // getters and setters 114 public BikeReader getReader() {112 public KettlerBikeReader getReader() { 115 113 return reader; 116 114 } 117 115 118 public BikeWriter getWriter() {116 public KettlerBikeWriter getWriter() { 119 117 return writer; 120 118 } -
trunk/src/org/jergometer/communication/KettlerBikeReader.java
r201 r212 12 12 * It reads incoming messages from the bike. 13 13 */ 14 public class BikeReader extends Thread{14 public class KettlerBikeReader extends Thread implements BikeReader { 15 15 16 16 // static … … 36 36 * @param in input stream 37 37 */ 38 public BikeReader(InputStream in) {38 public KettlerBikeReader(InputStream in) { 39 39 this.inStream = in; 40 40 this.in = new BufferedReader(new InputStreamReader(inStream), 1); -
trunk/src/org/jergometer/communication/KettlerBikeWriter.java
r76 r212 8 8 * It writes messages to the bike. 9 9 */ 10 public class BikeWriter {10 public class KettlerBikeWriter implements BikeWriter { 11 11 12 12 // static … … 30 30 * @param out output stream 31 31 */ 32 public BikeWriter(OutputStream out) {32 public KettlerBikeWriter(OutputStream out) { 33 33 this.out = new DataOutputStream(out); 34 34 } -
trunk/src/org/jergometer/gui/MainWindow.form
r100 r212 99 99 <grid id="e65ca" layout-manager="GridBagLayout"> 100 100 <constraints> 101 <grid row="0" column=" 2" row-span="3" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>101 <grid row="0" column="3" row-span="3" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/> 102 102 <gridbag top="0" left="0" bottom="0" right="10" weightx="0.0" weighty="0.0"/> 103 103 </constraints> … … 106 106 <font/> 107 107 </border> 108 <children> 109 <component id="dc8ff" class="javax.swing.JLabel"> 110 <constraints> 111 <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 112 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 113 </constraints> 114 <properties> 115 <text resource-bundle="org/jergometer/translation/jergometer" key="property.pulse"/> 116 </properties> 117 </component> 118 <component id="49de1" class="javax.swing.JLabel"> 119 <constraints> 120 <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 121 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 122 </constraints> 123 <properties> 124 <text resource-bundle="org/jergometer/translation/jergometer" key="property.pedal_rpm"/> 125 </properties> 126 </component> 127 <component id="e3555" class="javax.swing.JLabel"> 128 <constraints> 129 <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 130 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 131 </constraints> 132 <properties> 133 <text resource-bundle="org/jergometer/translation/jergometer" key="property.speed"/> 134 </properties> 135 </component> 136 <component id="6ef9f" class="javax.swing.JLabel"> 137 <constraints> 138 <grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 139 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 140 </constraints> 141 <properties> 142 <text resource-bundle="org/jergometer/translation/jergometer" key="property.distance"/> 143 </properties> 144 </component> 145 <component id="ed697" class="javax.swing.JLabel"> 146 <constraints> 147 <grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 148 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 149 </constraints> 150 <properties> 151 <text resource-bundle="org/jergometer/translation/jergometer" key="property.dest_power"/> 152 </properties> 153 </component> 154 <component id="2f0fd" class="javax.swing.JLabel"> 155 <constraints> 156 <grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 157 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 158 </constraints> 159 <properties> 160 <text resource-bundle="org/jergometer/translation/jergometer" key="property.energy"/> 161 </properties> 162 </component> 163 <component id="6d1d6" class="javax.swing.JLabel"> 164 <constraints> 165 <grid row="6" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 166 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 167 </constraints> 168 <properties> 169 <text resource-bundle="org/jergometer/translation/jergometer" key="property.time"/> 170 </properties> 171 </component> 172 <component id="a2637" class="javax.swing.JLabel"> 173 <constraints> 174 <grid row="7" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="4" fill="0" indent="0" use-parent-layout="false"/> 175 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 176 </constraints> 177 <properties> 178 <text resource-bundle="org/jergometer/translation/jergometer" key="property.real_power"/> 179 </properties> 180 </component> 181 <component id="354a" class="javax.swing.JLabel" binding="destPowerLabel"> 182 <constraints> 183 <grid row="4" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 184 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 185 </constraints> 186 <properties> 187 <text value="-"/> 188 </properties> 189 </component> 190 <component id="7b970" class="javax.swing.JLabel" binding="pulseLabel"> 191 <constraints> 192 <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 193 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 194 </constraints> 195 <properties> 196 <text value="-"/> 197 </properties> 198 </component> 199 <component id="1f67f" class="javax.swing.JLabel" binding="pedalRpmLabel"> 200 <constraints> 201 <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 202 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 203 </constraints> 204 <properties> 205 <text value="-"/> 206 </properties> 207 </component> 208 <component id="2e3af" class="javax.swing.JLabel" binding="speedLabel"> 209 <constraints> 210 <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 211 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 212 </constraints> 213 <properties> 214 <text value="-"/> 215 </properties> 216 </component> 217 <component id="e5e59" class="javax.swing.JLabel" binding="distanceLabel"> 218 <constraints> 219 <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 220 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 221 </constraints> 222 <properties> 223 <text value="-"/> 224 </properties> 225 </component> 226 <component id="a54fc" class="javax.swing.JLabel" binding="energyLabel"> 227 <constraints> 228 <grid row="5" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 229 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 230 </constraints> 231 <properties> 232 <text value="-"/> 233 </properties> 234 </component> 235 <component id="225d8" class="javax.swing.JLabel" binding="timeLabel"> 236 <constraints> 237 <grid row="6" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 238 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 239 </constraints> 240 <properties> 241 <text value="-"/> 242 </properties> 243 </component> 244 <component id="4b725" class="javax.swing.JLabel" binding="realPowerLabel"> 245 <constraints> 246 <grid row="7" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/> 247 <gridbag top="5" left="5" bottom="5" right="5" weightx="0.0" weighty="0.0"/> 248 </constraints> 249 <properties> 250 <text value="-"/> 251 </properties> 252 </component> 253 </children> 108 <children/> 254 109 </grid> 255 110 <component id="e6b31" class="javax.swing.JLabel" binding="welcomeLabel"> … … 287 142 </children> 288 143 </grid> 144 <component id="c6a78" class="org.jergometer.gui.BikeInfoPane" binding="bikeInfoPane" custom-create="true"> 145 <constraints> 146 <grid row="0" column="2" row-span="3" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/> 147 <gridbag weightx="0.0" weighty="0.0"/> 148 </constraints> 149 <properties> 150 <background swing-color="Label.background"/> 151 <contentType value="text/html"/> 152 <editable value="false"/> 153 <enabled value="true"/> 154 <text value="<html> <head> </head> <body> <p style="margin-top: 0"> </p> </body> </html> "/> 155 </properties> 156 <clientProperties> 157 <JEditorPane.honorDisplayProperties class="java.lang.Boolean" value="true"/> 158 </clientProperties> 159 </component> 289 160 </children> 290 161 </grid> -
trunk/src/org/jergometer/gui/MainWindow.java
r202 r212 1 1 package org.jergometer.gui; 2 2 3 import de.endrullis.utils.VelocityUtils; 4 import org.apache.velocity.Template; 5 import org.apache.velocity.VelocityContext; 6 import org.apache.velocity.app.Velocity; 7 import org.apache.velocity.context.Context; 8 import org.apache.velocity.exception.ResourceNotFoundException; 3 9 import org.jergometer.Jergometer; 4 10 import org.jergometer.control.BikeProgram; … … 16 22 import java.awt.event.*; 17 23 import java.util.ArrayList; 24 import java.util.Locale; 18 25 import java.util.ResourceBundle; 19 26 import java.util.Enumeration; … … 28 35 */ 29 36 public class MainWindow extends JFrame implements ActionListener, TreeSelectionListener, ListSelectionListener, KeyListener { 37 private static double kcalFactor = 0.239005736; 38 30 39 private JPanel mainPanel; 31 private JLabel pulseLabel;32 private JLabel speedLabel;33 private JLabel distanceLabel;34 private JLabel destPowerLabel;35 private JLabel pedalRpmLabel;36 private JLabel energyLabel;37 private JLabel timeLabel;38 private JLabel realPowerLabel;39 40 private Diagram diagram; 40 41 private JTable sessionTable; … … 43 44 private JButton recordButton; 44 45 private JButton stopButton; 46 private BikeInfoPane bikeInfoPane; 45 47 46 48 // menu items … … 71 73 private DefaultMutableTreeNode copiedProgramNode = null; 72 74 private boolean movePrograms = false; 75 private DataRecord lastDataRecord; 76 private boolean kcal = false; 73 77 74 78 /** … … 91 95 super(title); 92 96 this.jergometer = jergometer; 97 $$$setupUI$$$(); 93 98 setContentPane(mainPanel); 94 99 createPopups(); … … 107 112 programTree.getInputMap().getParent().remove(KeyStroke.getKeyStroke("control A")); 108 113 programTree.setCellRenderer(new BetterTreeCellRenderer()); 114 115 // reset bikeInfoPane 116 bikeInfoPane.resetValues(); 109 117 110 118 // add listener … … 146 154 147 155 public void setData(DataRecord dataRecord) { 148 if (dataRecord.getPulse() != 0) { 149 pulseLabel.setText(dataRecord.getPulse() + ""); 150 pulseLabel.setForeground(Color.black); 151 } else { 152 pulseLabel.setText("?"); 153 pulseLabel.setForeground(Color.red); 154 } 155 pedalRpmLabel.setText(dataRecord.getPedalRpm() + " rpm"); 156 speedLabel.setText(String.format("%.1f km/h", (double) dataRecord.getSpeed() / 10)); 157 distanceLabel.setText(String.format("%.1f km", (double) dataRecord.getDistance() / 10)); 158 destPowerLabel.setText(dataRecord.getDestPower() + " W"); 159 energyLabel.setText(dataRecord.getEnergy() + " kJ"); 160 timeLabel.setText(dataRecord.getTime()); 161 realPowerLabel.setText(dataRecord.getRealPower() + " W"); 156 lastDataRecord = dataRecord; 157 158 updateBikeInfoPane(dataRecord); 159 } 160 161 public void updateBikeInfoPane(DataRecord dataRecord) { 162 if (dataRecord == null) return; 163 164 VelocityContext context = new VelocityContext(); 165 context.put("pulse", dataRecord.getPulse()); 166 context.put("pulseString", dataRecord.getPulse() == 0 ? "?" : "" + dataRecord.getPulse()); 167 context.put("pedalRpm", dataRecord.getPedalRpm()); 168 context.put("pedalRpmString", dataRecord.getPedalRpm() + " rpm"); 169 context.put("speed", dataRecord.getSpeed()); 170 context.put("speedString", String.format("%.1f km/h", (double) dataRecord.getSpeed() / 10)); 171 context.put("distance", dataRecord.getDistance()); 172 context.put("distanceString", dataRecord.getDistance() + " km"); 173 context.put("destPower", dataRecord.getDestPower()); 174 context.put("destPowerString", dataRecord.getDestPower() + " W"); 175 context.put("actPower", dataRecord.getRealPower()); 176 context.put("actPowerString", dataRecord.getRealPower() + " W"); 177 context.put("energy", dataRecord.getEnergy()); 178 String energyString = dataRecord.getEnergy() + " kJ"; 179 if (kcal) { 180 energyString = ((int) (dataRecord.getEnergy() * kcalFactor)) + " kcal"; 181 } 182 context.put("energyString", energyString); 183 context.put("timeString", dataRecord.getTime()); 184 185 bikeInfoPane.setContext(context); 186 } 187 188 public void bikeInfoPaneAction(String action) { 189 if (action.equals("energy")) { 190 kcal = !kcal; 191 updateBikeInfoPane(lastDataRecord); 192 } 162 193 } 163 194 … … 804 835 } 805 836 806 { 807 // GUI initializer generated by IntelliJ IDEA GUI Designer 808 // >>> IMPORTANT!! <<< 809 // DO NOT EDIT OR ADD ANY CODE HERE! 810 $$$setupUI$$$(); 837 public void createUIComponents() { 838 try { 839 bikeInfoPane = new BikeInfoPane(this, getLangTemplate("org/jergometer/gui/templates/default")); 840 } catch (Exception e) { 841 e.printStackTrace(); 842 } 843 } 844 845 private Template getLangTemplate(String templateName) throws Exception { 846 String cc = Locale.getDefault().getCountry().toLowerCase(); 847 try { 848 return VelocityUtils.getTemplate(templateName + "_" + cc + ".vm"); 849 } catch (ResourceNotFoundException e) { 850 return VelocityUtils.getTemplate(templateName + ".vm"); 851 } 811 852 } 812 853 … … 819 860 */ 820 861 private void $$$setupUI$$$() { 862 createUIComponents(); 821 863 mainPanel = new JPanel(); 822 864 mainPanel.setLayout(new GridBagLayout()); … … 895 937 panel4.setLayout(new GridBagLayout()); 896 938 gbc = new GridBagConstraints(); 897 gbc.gridx = 2;939 gbc.gridx = 3; 898 940 gbc.gridy = 0; 899 941 gbc.gridheight = 3; 900 942 gbc.insets = new Insets(0, 0, 0, 10); 901 943 panel1.add(panel4, gbc); 902 final JLabel label1 = new JLabel();903 this.$$$loadLabelText$$$(label1, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.pulse"));904 gbc = new GridBagConstraints();905 gbc.gridx = 0;906 gbc.gridy = 0;907 gbc.anchor = GridBagConstraints.EAST;908 gbc.insets = new Insets(5, 5, 5, 5);909 panel4.add(label1, gbc);910 final JLabel label2 = new JLabel();911 this.$$$loadLabelText$$$(label2, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.pedal_rpm"));912 gbc = new GridBagConstraints();913 gbc.gridx = 0;914 gbc.gridy = 1;915 gbc.anchor = GridBagConstraints.EAST;916 gbc.insets = new Insets(5, 5, 5, 5);917 panel4.add(label2, gbc);918 final JLabel label3 = new JLabel();919 this.$$$loadLabelText$$$(label3, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.speed"));920 gbc = new GridBagConstraints();921 gbc.gridx = 0;922 gbc.gridy = 2;923 gbc.anchor = GridBagConstraints.EAST;924 gbc.insets = new Insets(5, 5, 5, 5);925 panel4.add(label3, gbc);926 final JLabel label4 = new JLabel();927 this.$$$loadLabelText$$$(label4, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.distance"));928 gbc = new GridBagConstraints();929 gbc.gridx = 0;930 gbc.gridy = 3;931 gbc.anchor = GridBagConstraints.EAST;932 gbc.insets = new Insets(5, 5, 5, 5);933 panel4.add(label4, gbc);934 final JLabel label5 = new JLabel();935 this.$$$loadLabelText$$$(label5, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.dest_power"));936 gbc = new GridBagConstraints();937 gbc.gridx = 0;938 gbc.gridy = 4;939 gbc.anchor = GridBagConstraints.EAST;940 gbc.insets = new Insets(5, 5, 5, 5);941 panel4.add(label5, gbc);942 final JLabel label6 = new JLabel();943 this.$$$loadLabelText$$$(label6, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.energy"));944 gbc = new GridBagConstraints();945 gbc.gridx = 0;946 gbc.gridy = 5;947 gbc.anchor = GridBagConstraints.EAST;948 gbc.insets = new Insets(5, 5, 5, 5);949 panel4.add(label6, gbc);950 final JLabel label7 = new JLabel();951 this.$$$loadLabelText$$$(label7, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.time"));952 gbc = new GridBagConstraints();953 gbc.gridx = 0;954 gbc.gridy = 6;955 gbc.anchor = GridBagConstraints.EAST;956 gbc.insets = new Insets(5, 5, 5, 5);957 panel4.add(label7, gbc);958 final JLabel label8 = new JLabel();959 this.$$$loadLabelText$$$(label8, ResourceBundle.getBundle("org/jergometer/translation/jergometer").getString("property.real_power"));960 gbc = new GridBagConstraints();961 gbc.gridx = 0;962 gbc.gridy = 7;963 gbc.anchor = GridBagConstraints.EAST;964 gbc.insets = new Insets(5, 5, 5, 5);965 panel4.add(label8, gbc);966 destPowerLabel = new JLabel();967 destPowerLabel.setText("-");968 gbc = new GridBagConstraints();969 gbc.gridx = 1;970 gbc.gridy = 4;971 gbc.anchor = GridBagConstraints.WEST;972 gbc.insets = new Insets(5, 5, 5, 5);973 panel4.add(destPowerLabel, gbc);974 pulseLabel = new JLabel();975 pulseLabel.setText("-");976 gbc = new GridBagConstraints();977 gbc.gridx = 1;978 gbc.gridy = 0;979 gbc.anchor = GridBagConstraints.WEST;980 gbc.insets = new Insets(5, 5, 5, 5);981 panel4.add(pulseLabel, gbc);982 pedalRpmLabel = new JLabel();983 pedalRpmLabel.setText("-");984 gbc = new GridBagConstraints();985 gbc.gridx = 1;986 gbc.gridy = 1;987 gbc.anchor = GridBagConstraints.WEST;988 gbc.insets = new Insets(5, 5, 5, 5);989 panel4.add(pedalRpmLabel, gbc);990 speedLabel = new JLabel();991 speedLabel.setText("-");992 gbc = new GridBagConstraints();993 gbc.gridx = 1;994 gbc.gridy = 2;995 gbc.anchor = GridBagConstraints.WEST;996 gbc.insets = new Insets(5, 5, 5, 5);997 panel4.add(speedLabel, gbc);998 distanceLabel = new JLabel();999 distanceLabel.setText("-");1000 gbc = new GridBagConstraints();1001 gbc.gridx = 1;1002 gbc.gridy = 3;1003 gbc.anchor = GridBagConstraints.WEST;1004 gbc.insets = new Insets(5, 5, 5, 5);1005 panel4.add(distanceLabel, gbc);1006 energyLabel = new JLabel();1007 energyLabel.setText("-");1008 gbc = new GridBagConstraints();1009 gbc.gridx = 1;1010 gbc.gridy = 5;1011 gbc.anchor = GridBagConstraints.WEST;1012 gbc.insets = new Insets(5, 5, 5, 5);1013 panel4.add(energyLabel, gbc);1014 timeLabel = new JLabel();1015 timeLabel.setText("-");1016 gbc = new GridBagConstraints();1017 gbc.gridx = 1;1018 gbc.gridy = 6;1019 gbc.anchor = GridBagConstraints.WEST;1020 gbc.insets = new Insets(5, 5, 5, 5);1021 panel4.add(timeLabel, gbc);1022 realPowerLabel = new JLabel();1023 realPowerLabel.setText("-");1024 gbc = new GridBagConstraints();1025 gbc.gridx = 1;1026 gbc.gridy = 7;1027 gbc.anchor = GridBagConstraints.WEST;1028 gbc.insets = new Insets(5, 5, 5, 5);1029 panel4.add(realPowerLabel, gbc);1030 944 welcomeLabel = new JLabel(); 1031 945 welcomeLabel.setFont(new Font("Bitstream Vera Serif", Font.BOLD, 16)); … … 1060 974 sessionTable = new JTable(); 1061 975 scrollPane2.setViewportView(sessionTable); 976 bikeInfoPane.setBackground(UIManager.getColor("Label.background")); 977 bikeInfoPane.setContentType("text/html"); 978 bikeInfoPane.setEditable(false); 979 bikeInfoPane.setEnabled(true); 980 bikeInfoPane.setText("<html>\n <head>\n\n </head>\n <body>\n <p style=\"margin-top: 0\">\n \n </p>\n </body>\n</html>\n"); 981 bikeInfoPane.putClientProperty("JEditorPane.honorDisplayProperties", Boolean.TRUE); 982 gbc = new GridBagConstraints(); 983 gbc.gridx = 2; 984 gbc.gridy = 0; 985 gbc.gridheight = 3; 986 gbc.fill = GridBagConstraints.HORIZONTAL; 987 panel1.add(bikeInfoPane, gbc); 1062 988 } 1063 989 -
trunk/src/org/jergometer/gui/SettingsWindow.java
r210 r212 1 1 package org.jergometer.gui; 2 2 3 import org.jergometer.communication.KetterBikeConnector; 3 4 import org.jergometer.translation.I18n; 4 import org.jergometer.communication.BikeConnectorSerial;5 5 import org.jergometer.communication.BikeConnectionTester; 6 6 import org.jergometer.JergometerSettings; … … 384 384 try { 385 385 // detect available serial ports 386 for (String s : BikeConnectorSerial.getPortNames()) {386 for (String s : KetterBikeConnector.getPortNames()) { 387 387 comboBoxModel.addElement(s); 388 388 // check if this comport this the current comport -
trunk/src/org/jergometer/Jergometer.java
r210 r212 198 198 if (comPort == null) { 199 199 throw new UnconfiguredSerialPortException(); 200 } 201 bikeConnector = new BikeConnectorSerial(comPort); 200 } else 201 if (comPort.equals("replay")) { 202 bikeConnector = new BikeConnectorSimulator(); 203 } else 204 if (comPort.startsWith("record:")) { 205 comPort = comPort.substring("record:".length()); 206 bikeConnector = new KetterBikeConnector(comPort); 207 bikeConnector.getReader().addBikeReaderListener(new FileRecorder(BikeConnectorSimulator.SIMULATOR_SESSION)); 208 } else { 209 bikeConnector = new KetterBikeConnector(comPort); 210 } 202 211 203 212 BikeReader bikeReader = bikeConnector.getReader(); -
trunk/src/org/jergometer/JergometerTestConsole.java
r208 r212 23 23 // dynamic 24 24 25 private BikeConnector bikeConnector;25 private KetterBikeConnector bikeConnector; 26 26 27 27 public JergometerTestConsole() throws UnsupportedCommOperationException, BikeException { … … 30 30 31 31 if(osName.toLowerCase().startsWith("windows")) { 32 bikeConnector = new BikeConnectorSerial("COM1");32 bikeConnector = new KetterBikeConnector("COM1"); 33 33 } else { 34 bikeConnector = new BikeConnectorSerial("/dev/ttyUSB0");35 // bikeConnector = new BikeConnectorSerial("/dev/ttyS0");34 bikeConnector = new KetterBikeConnector("/dev/ttyUSB0"); 35 // bikeConnector = new KetterBikeConnector("/dev/ttyS0"); 36 36 } 37 37 38 BikeWriter bikeWriter = bikeConnector.getWriter();39 BikeReader bikeReader = bikeConnector.getReader();38 KettlerBikeWriter bikeWriter = bikeConnector.getWriter(); 39 KettlerBikeReader bikeReader = bikeConnector.getReader(); 40 40 bikeReader.addBikeReaderListener(this); 41 41 bikeReader.start(); … … 122 122 123 123 case 11: 124 bikeReader.setPrintAvailable( BikeReader.PrintAvailable.characters);124 bikeReader.setPrintAvailable(KettlerBikeReader.PrintAvailable.characters); 125 125 break; 126 126 127 127 case 12: 128 bikeReader.setPrintAvailable( BikeReader.PrintAvailable.decimals);128 bikeReader.setPrintAvailable(KettlerBikeReader.PrintAvailable.decimals); 129 129 break; 130 130
![(please configure the [header_logo] section in trac.ini)](https://jergometer.org/images/fork_me_on_github.png)