diff --git a/.classpath b/.classpath
index 34fa454..f0e2e47 100644
--- a/.classpath
+++ b/.classpath
@@ -6,6 +6,6 @@
-
+
diff --git a/src/org/hwo/pulscounter/AbstractPulsCounterApplicationListener.java b/src/org/hwo/pulscounter/AbstractPulsCounterApplicationListener.java
index 5dc6716..0c978d2 100644
--- a/src/org/hwo/pulscounter/AbstractPulsCounterApplicationListener.java
+++ b/src/org/hwo/pulscounter/AbstractPulsCounterApplicationListener.java
@@ -2,9 +2,6 @@ package org.hwo.pulscounter;
public abstract class AbstractPulsCounterApplicationListener implements PulsCounterApplicationListener {
- @Override
- public void serialPortChanged() {
- }
}
diff --git a/src/org/hwo/pulscounter/PulsCounterApplication.java b/src/org/hwo/pulscounter/PulsCounterApplication.java
index 69c61da..1c23101 100644
--- a/src/org/hwo/pulscounter/PulsCounterApplication.java
+++ b/src/org/hwo/pulscounter/PulsCounterApplication.java
@@ -3,6 +3,8 @@ package org.hwo.pulscounter;
import static org.hwo.logging.Logging.log;
import static org.hwo.logging.LogLevel.*;
+import java.awt.EventQueue;
+import java.awt.Frame;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -19,6 +21,9 @@ import java.util.Vector;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
+import javax.swing.JFrame;
+
+import org.hsqldb.persist.EventLogInterface;
import org.hwo.StringHelper;
import org.hwo.configuration.ConfigurableObjects;
import org.hwo.io.NewSerialPort.NewSerialPort;
@@ -27,6 +32,7 @@ import org.hwo.servicelink.ServiceLink;
import org.hwo.servicelink.ServiceLinkListener;
import org.hwo.pulscounter.device.IDeviceConnector;
import org.hwo.pulscounter.device.ServiceLinkDeviceConnector;
+import org.hwo.pulscounter.device.SimulatedCounter;
import org.hwo.pulscounter.ui.AppSettingsListener;
import org.hwo.pulscounter.ui.BatchRunner;
import org.hwo.pulscounter.ui.NewMainWindow;
@@ -142,7 +148,10 @@ public class PulsCounterApplication implements ServiceLinkListener{
/* Initialize default configuration */
applicationConfiguration.setProperty("ui.class", NewMainWindow.class.getCanonicalName());
- applicationConfiguration.setProperty("interface.classes", StringHelper.join(new String[]{ServiceLinkDeviceConnector.class.getCanonicalName() }, ","));
+ applicationConfiguration.setProperty("interface.classes", StringHelper.join(new String[]{
+ ServiceLinkDeviceConnector.class.getCanonicalName(),
+ SimulatedCounter.class.getCanonicalName()
+ }, ","));
try {
@@ -187,7 +196,7 @@ public class PulsCounterApplication implements ServiceLinkListener{
public void start(){
initialize();
-
+
String uiClassName = applicationConfiguration.getProperty("ui.class");
try {
@@ -246,14 +255,18 @@ public class PulsCounterApplication implements ServiceLinkListener{
log(INFO,"Application shutdown...");
-
+ /* Dispose all left frames */
+ for (Frame frame: JFrame.getFrames()){
+ frame.setVisible(false);
+ frame.dispose();
+ }
if (shouldSaveConfiguration){
applicationConfiguration.setProperty("interfaces.n", Integer.toString(interfaces.size()));
for (int n=0;n %s",serial,connectionSettings);
+ serial = Integer.parseInt(connectionSettings);
+ }
+ }
+
+ @Override
+ public String getConnectionSettingsText() {
+ return String.format("Device Serial: %d\nSimulated Values", serial);
+ }
+
+ @Override
+ public int[] getCounters() {
+ int i = random.nextInt();
+
+ values[ i & 0x1F ] += random.nextInt() & 0x07;
+
+ for (i=0;i<8;i++){
+ analogs[i] += (float)(random.nextFloat() * 0.6)-0.3;
+ if (analogs[i] > 10.0f){
+ analogs[i] = 10.0f;
+ }
+ if (analogs[i] < 0.0f){
+ analogs[i] = 0.0f;
+ }
+ }
+
+ inputs = random.nextInt();
+
+ return values;
+ }
+
+ @Override
+ public void setCounters(int[] values) {
+ this.values = values;
+ }
+
+ @Override
+ public int getCounter(int channel) {
+ return values[channel];
+ }
+
+ @Override
+ public void setCounter(int channel, int counter) {
+ values[channel] = counter;
+ }
+
+ @Override
+ public int[] getSimpleScript() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public void setSimpleScript(int[] simpleScript) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public int getInputs() {
+ return inputs;
+ }
+
+ @Override
+ public int getOutputs() {
+ return outputs;
+ }
+
+ @Override
+ public void setOutputs(int outputs) {
+ this.outputs = outputs;
+ }
+
+ @Override
+ public int getPullups() {
+ return pullups;
+ }
+
+ @Override
+ public void setPullups(int pullups) {
+ this.pullups = pullups;
+ }
+
+ @Override
+ public int getInverts() {
+ return inverts;
+ }
+
+ @Override
+ public void setInverts(int inverts) {
+ this.inverts = inverts;
+ }
+
+ @Override
+ public float[] getAnalogs() {
+ return analogs;
+ }
+
+ @Override
+ public float getAnalog(int channel) {
+ return analogs[channel];
+ }
+
+}
diff --git a/src/org/hwo/pulscounter/device/SimulatedCounterSettingsDialog.java b/src/org/hwo/pulscounter/device/SimulatedCounterSettingsDialog.java
new file mode 100644
index 0000000..32619d0
--- /dev/null
+++ b/src/org/hwo/pulscounter/device/SimulatedCounterSettingsDialog.java
@@ -0,0 +1,108 @@
+package org.hwo.pulscounter.device;
+
+import java.awt.BorderLayout;
+import java.awt.FlowLayout;
+
+import javax.swing.JButton;
+import javax.swing.JDialog;
+import javax.swing.JPanel;
+import javax.swing.border.EmptyBorder;
+import java.awt.event.ActionListener;
+import java.awt.event.ActionEvent;
+import java.awt.GridBagLayout;
+import javax.swing.JLabel;
+import java.awt.GridBagConstraints;
+import javax.swing.JTextField;
+import java.awt.Insets;
+
+public class SimulatedCounterSettingsDialog extends JDialog {
+
+ public static boolean show(SimulatedCounter counter){
+ SimulatedCounterSettingsDialog dlg = new SimulatedCounterSettingsDialog();
+ dlg.setSerial(counter.getConnectionSettings());
+ dlg.setVisible(true);
+
+ if (dlg.accepted){
+ counter.setConnectionSettings(dlg.getSerial());
+ dlg.dispose();
+ return true;
+ }
+ return false;
+ }
+
+
+ private final JPanel contentPanel = new JPanel();
+
+ private boolean accepted;
+ private JTextField tfSerial;
+
+ public SimulatedCounterSettingsDialog() {
+ setTitle("Simulierter Zähler");
+ setDefaultCloseOperation(DISPOSE_ON_CLOSE);
+ setBounds(100, 100, 450, 300);
+ setModalityType(ModalityType.APPLICATION_MODAL);
+ getContentPane().setLayout(new BorderLayout());
+ contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
+ getContentPane().add(contentPanel, BorderLayout.CENTER);
+ GridBagLayout gbl_contentPanel = new GridBagLayout();
+ gbl_contentPanel.columnWidths = new int[]{0, 0, 0};
+ gbl_contentPanel.rowHeights = new int[]{0, 0};
+ gbl_contentPanel.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
+ gbl_contentPanel.rowWeights = new double[]{0.0, Double.MIN_VALUE};
+ contentPanel.setLayout(gbl_contentPanel);
+ {
+ JLabel lblAnschluss = new JLabel("Seriennummer:");
+ GridBagConstraints gbc_lblAnschluss = new GridBagConstraints();
+ gbc_lblAnschluss.insets = new Insets(0, 0, 0, 5);
+ gbc_lblAnschluss.anchor = GridBagConstraints.EAST;
+ gbc_lblAnschluss.gridx = 0;
+ gbc_lblAnschluss.gridy = 0;
+ contentPanel.add(lblAnschluss, gbc_lblAnschluss);
+ }
+ {
+ tfSerial = new JTextField();
+ GridBagConstraints gbc_tfSerial = new GridBagConstraints();
+ gbc_tfSerial.anchor = GridBagConstraints.NORTH;
+ gbc_tfSerial.fill = GridBagConstraints.HORIZONTAL;
+ gbc_tfSerial.gridx = 1;
+ gbc_tfSerial.gridy = 0;
+ contentPanel.add(tfSerial, gbc_tfSerial);
+ tfSerial.setColumns(10);
+ }
+ {
+ JPanel buttonPane = new JPanel();
+ buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT));
+ getContentPane().add(buttonPane, BorderLayout.SOUTH);
+ {
+ JButton okButton = new JButton("OK");
+ okButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ accepted = true;
+ setVisible(false);
+ }
+ });
+ okButton.setActionCommand("OK");
+ buttonPane.add(okButton);
+ getRootPane().setDefaultButton(okButton);
+ }
+ {
+ JButton cancelButton = new JButton("Cancel");
+ cancelButton.addActionListener(new ActionListener() {
+ public void actionPerformed(ActionEvent e) {
+ setVisible(false);
+ }
+ });
+ cancelButton.setActionCommand("Cancel");
+ buttonPane.add(cancelButton);
+ }
+ }
+ }
+
+ public String getSerial(){
+ return tfSerial.getText();
+ }
+ public void setSerial(String serial){
+ tfSerial.setText(serial);
+ }
+
+}
diff --git a/src/org/hwo/pulscounter/ui/BatchRunner.java b/src/org/hwo/pulscounter/ui/BatchRunner.java
index c1a7e25..2aa263b 100644
--- a/src/org/hwo/pulscounter/ui/BatchRunner.java
+++ b/src/org/hwo/pulscounter/ui/BatchRunner.java
@@ -44,17 +44,6 @@ public class BatchRunner implements PulsCounterApplicationListener{
pulsCounterApplication.notifyUiIsFinished(false);
}
- @Override
- public void serialPortChanged() {
- }
-
- @Override
- public void connectionStateChanged(Boolean connected) {
- if (connected){
- }
-
- }
-
@Override
public void messageArrived(String message) {
System.err.println(message);
diff --git a/src/org/hwo/pulscounter/ui/ChannelDisplay.java b/src/org/hwo/pulscounter/ui/ChannelDisplay.java
index 539847e..f0ab819 100644
--- a/src/org/hwo/pulscounter/ui/ChannelDisplay.java
+++ b/src/org/hwo/pulscounter/ui/ChannelDisplay.java
@@ -151,7 +151,6 @@ public class ChannelDisplay extends JPanel {
lName = new JTextField();
lName.setEditable(false);
- lName.setForeground(Color.LIGHT_GRAY);
lName.setInheritsPopupMenu(true);
GridBagConstraints gbc_lName = new GridBagConstraints();
gbc_lName.fill = GridBagConstraints.HORIZONTAL;
@@ -291,7 +290,13 @@ public class ChannelDisplay extends JPanel {
}
public void setCounter(Integer counter) {
this.counter = counter;
- tfCounter.setText(String.format("%d", counter));
+ if (counter != null){
+ tfCounter.setText(String.format("%d", counter));
+ tfCounter.setEnabled(true);
+ } else {
+ tfCounter.setEnabled(false);
+ tfCounter.setText("");
+ }
}
public Double getVoltage() {
@@ -299,7 +304,13 @@ public class ChannelDisplay extends JPanel {
}
public void setVoltage(Double voltage) {
this.voltage = voltage;
- tfAnalog.setText(String.format("%.02f V",voltage));
+ if (voltage != null){
+ tfAnalog.setText(String.format("%.02f V",voltage));
+ tfAnalog.setEnabled(true);
+ } else {
+ tfAnalog.setEnabled(false);
+ tfAnalog.setText("");
+ }
}
public void setChannelName(String channelName) {
@@ -317,4 +328,16 @@ public class ChannelDisplay extends JPanel {
return lName.getText();
}
+ @Override
+ public void setEnabled(boolean enabled) {
+ if (enabled){
+ } else {
+ setVoltage(null);
+ setCounter(null);
+ setOutput(false);
+ setInput(false);
+ setPullup(false);
+ }
+ }
+
}
diff --git a/src/org/hwo/pulscounter/ui/DeviceTestFrame.java b/src/org/hwo/pulscounter/ui/DeviceTestFrame.java
index e40aec4..d727321 100644
--- a/src/org/hwo/pulscounter/ui/DeviceTestFrame.java
+++ b/src/org/hwo/pulscounter/ui/DeviceTestFrame.java
@@ -188,17 +188,11 @@ public class DeviceTestFrame extends JFrame implements PulsCounterApplicationLis
lMessages.setModel(messageListModel);
application().addPulsCounterApplicationListener(this);
- application().fireConnectionStateChanged(false);
setVisible(true);
}
- @Override
- public void serialPortChanged() {
- // TODO Auto-generated method stub
-
- }
-
+ /*
@Override
public void connectionStateChanged(Boolean connected) {
@@ -237,7 +231,8 @@ public class DeviceTestFrame extends JFrame implements PulsCounterApplicationLis
}
}
-
+ */
+
@Override
public synchronized void messageArrived(String message) {
if (EventQueue.isDispatchThread()){
diff --git a/src/org/hwo/pulscounter/ui/NewMainWindow.java b/src/org/hwo/pulscounter/ui/NewMainWindow.java
index 36a11e6..a90b426 100644
--- a/src/org/hwo/pulscounter/ui/NewMainWindow.java
+++ b/src/org/hwo/pulscounter/ui/NewMainWindow.java
@@ -7,6 +7,7 @@ import java.awt.GridBagLayout;
import java.awt.BorderLayout;
import javax.swing.JToolBar;
import javax.swing.JSplitPane;
+import javax.swing.JTextArea;
import javax.swing.JPanel;
import java.awt.GridBagConstraints;
import javax.swing.border.TitledBorder;
@@ -21,11 +22,13 @@ import org.hwo.pulscounter.PulsCounterApplication;
import org.hwo.pulscounter.PulsCounterApplicationListener;
import org.hwo.pulscounter.SnapshotManager.Notification;
import org.hwo.pulscounter.device.IDeviceConnector;
+import org.hwo.pulscounter.device.NoDeviceConnectionException;
import org.hwo.servicelink.ServiceLinkException;
import org.hwo.servicelink.ServiceLinkRequestFailedException;
import org.hwo.tasklet.Tasklet;
import org.hwo.tasklet.TaskletListener;
import org.hwo.tasklet.TaskletManager;
+import org.hwo.ui.JObjectSelector;
import org.hwo.ui.dialog.SerialPortChooser;
import org.omg.CORBA.Environment;
@@ -69,8 +72,13 @@ import javax.swing.event.ChangeListener;
import javax.swing.plaf.metal.MetalBorders.ToolBarBorder;
import javax.swing.event.ChangeEvent;
import static org.hwo.logging.Logging.log;
+import static org.hwo.logging.LogLevel.*;
+
import javax.swing.event.ListSelectionListener;
import javax.swing.event.ListSelectionEvent;
+import java.awt.event.MouseAdapter;
+import java.awt.event.MouseEvent;
+import java.awt.event.WindowAdapter;
public class NewMainWindow implements PulsCounterApplicationListener, TaskletListener{
@@ -82,9 +90,10 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
private FlexibleObjectListModel
lmInterfaces = new FlexibleObjectListModel<>();
+ private BackgroundThread backgroundThread;
+
private JFrame frmSynolog;
private JSplitPane splitter;
- private JTextField tfConnection;
private JButton btnSetup;
private DefaultListModel messageListModel;
@@ -115,7 +124,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
private JButton bIntfAdd;
private JButton bIntfDel;
private JPanel panel_4;
- private JTextField tfConnectionSettings;
+ private JTextArea tfConnectionSettings;
public static void startGUI(){
@@ -172,9 +181,6 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
application().addPulsCounterApplicationListener(this);
- application().fireConnectionStateChanged();
- application().fireSerialPortChanged();
-
application().message("Synololog Applikation wurde gestartet.");
timerReconnect.scheduleAtFixedRate(new TimerTask() {
@@ -211,50 +217,24 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
}
- frmSynolog.addWindowListener(new WindowListener() {
-
- @Override
- public void windowOpened(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void windowIconified(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void windowDeiconified(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void windowDeactivated(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void windowClosing(WindowEvent e) {
- }
+ frmSynolog.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
- application().notifyUiIsFinished(true);
-
+ backgroundThread.exit();
+ application().notifyUiIsFinished(true);
}
- @Override
- public void windowActivated(WindowEvent e) {
- // TODO Auto-generated method stub
-
- }
});
- lmInterfaces.setItems(pulsCounterApplication.getInterfaces());
+ //lmInterfaces.setItems(pulsCounterApplication.getInterfaces());
+ if (pulsCounterApplication.getInterfaces().size()>0){
+ interfacesChanged(pulsCounterApplication);
+ lInterfaces.setSelectedIndex(0);
+ }
+
+ backgroundThread = new BackgroundThread();
+ backgroundThread.start();
frmSynolog.setVisible(true);
}
@@ -364,9 +344,9 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
splitter.setRightComponent(panel);
GridBagLayout gbl_panel = new GridBagLayout();
gbl_panel.columnWidths = new int[]{0, 0};
- gbl_panel.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0};
+ gbl_panel.rowHeights = new int[]{0, 0, 0, 0};
gbl_panel.columnWeights = new double[]{1.0, Double.MIN_VALUE};
- gbl_panel.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 1.0, 0.0, Double.MIN_VALUE};
+ gbl_panel.rowWeights = new double[]{0.0, 1.0, 0.0, Double.MIN_VALUE};
panel.setLayout(gbl_panel);
JPanel panel_1 = new JPanel();
@@ -381,9 +361,9 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
panel.add(panel_1, gbc_panel_1);
GridBagLayout gbl_panel_1 = new GridBagLayout();
gbl_panel_1.columnWidths = new int[]{0, 0, 0};
- gbl_panel_1.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0};
+ gbl_panel_1.rowHeights = new int[]{0, 0, 0, 0, 0};
gbl_panel_1.columnWeights = new double[]{1.0, 1.0, Double.MIN_VALUE};
- gbl_panel_1.rowWeights = new double[]{0.0, 1.0, 1.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
+ gbl_panel_1.rowWeights = new double[]{0.0, 1.0, 1.0, 0.0, Double.MIN_VALUE};
panel_1.setLayout(gbl_panel_1);
bIntfAdd = new JButton("+");
@@ -423,6 +403,17 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
panel_1.add(scrollPane_2, gbc_scrollPane_2);
lInterfaces = new JList(lmInterfaces);
+ lInterfaces.addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ if ((e.getClickCount()==2)&&(e.getButton()==e.BUTTON1)){
+ if (selectedDeviceInterface != null){
+ selectedDeviceInterface.showConnctionSetup();
+ frmSynolog.repaint();
+ }
+ }
+ }
+ });
lInterfaces.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
selectedInterfaceChanged();
@@ -445,7 +436,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
panel_4.setBorder(new TitledBorder(null, "Anschlusseinstellungen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
GridBagConstraints gbc_panel_4 = new GridBagConstraints();
gbc_panel_4.gridwidth = 2;
- gbc_panel_4.insets = new Insets(0, 0, 5, 5);
+ gbc_panel_4.insets = new Insets(0, 0, 5, 0);
gbc_panel_4.fill = GridBagConstraints.BOTH;
gbc_panel_4.gridx = 0;
gbc_panel_4.gridy = 2;
@@ -457,7 +448,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
gbl_panel_4.rowWeights = new double[]{1.0, Double.MIN_VALUE};
panel_4.setLayout(gbl_panel_4);
- tfConnectionSettings = new JTextField();
+ tfConnectionSettings = new JTextArea();
tfConnectionSettings.setEditable(false);
GridBagConstraints gbc_tfConnectionSettings = new GridBagConstraints();
gbc_tfConnectionSettings.fill = GridBagConstraints.BOTH;
@@ -467,25 +458,12 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
tfConnectionSettings.setColumns(10);
GridBagConstraints gbc_cbTrimDevice = new GridBagConstraints();
+ gbc_cbTrimDevice.gridwidth = 2;
gbc_cbTrimDevice.anchor = GridBagConstraints.WEST;
- gbc_cbTrimDevice.insets = new Insets(0, 0, 5, 5);
gbc_cbTrimDevice.gridx = 0;
- gbc_cbTrimDevice.gridy = 4;
+ gbc_cbTrimDevice.gridy = 3;
panel_1.add(cbTrimDevice, gbc_cbTrimDevice);
- tfConnection = new JTextField();
- tfConnection.setHorizontalAlignment(SwingConstants.CENTER);
- tfConnection.setText("...");
- tfConnection.setBackground(Color.WHITE);
- tfConnection.setEditable(false);
- GridBagConstraints gbc_tfConnection = new GridBagConstraints();
- gbc_tfConnection.fill = GridBagConstraints.HORIZONTAL;
- gbc_tfConnection.gridwidth = 2;
- gbc_tfConnection.gridx = 0;
- gbc_tfConnection.gridy = 5;
- panel_1.add(tfConnection, gbc_tfConnection);
- tfConnection.setColumns(10);
-
JPanel panel_2 = new JPanel();
panel_2.setBackground(Color.WHITE);
panel_2.setBorder(new TitledBorder(null, "Meldungen", TitledBorder.LEADING, TitledBorder.TOP, null, null));
@@ -493,7 +471,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
gbc_panel_2.insets = new Insets(0, 0, 5, 0);
gbc_panel_2.fill = GridBagConstraints.BOTH;
gbc_panel_2.gridx = 0;
- gbc_panel_2.gridy = 4;
+ gbc_panel_2.gridy = 1;
panel.add(panel_2, gbc_panel_2);
GridBagLayout gbl_panel_2 = new GridBagLayout();
gbl_panel_2.columnWidths = new int[]{142, 0};
@@ -519,7 +497,7 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
GridBagConstraints gbc_panel_3 = new GridBagConstraints();
gbc_panel_3.fill = GridBagConstraints.BOTH;
gbc_panel_3.gridx = 0;
- gbc_panel_3.gridy = 5;
+ gbc_panel_3.gridy = 2;
panel.add(panel_3, gbc_panel_3);
panel_3.setLayout(new BoxLayout(panel_3, BoxLayout.X_AXIS));
@@ -558,7 +536,9 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
} else {
bIntfDel.setEnabled(true);
+// tfConnectionSettings.setText(String.format("%s", selectedDeviceInterface.getConnectionSettingsText().replaceAll("\n", "
")));
tfConnectionSettings.setText(selectedDeviceInterface.getConnectionSettingsText());
+
}
}
@@ -573,12 +553,22 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
@Override
public void interfacesChanged(PulsCounterApplication pulsCounterApplication) {
- lmInterfaces.setItems(pulsCounterApplication.getInterfaces());
+ lmInterfaces.setItems(pulsCounterApplication.getInterfaces());
}
private void addInterface(){
- pulsCounterApplication.addInterface(pulsCounterApplication.getInterfaceClasses().get(0), "");
+ Class cidc;
+
+ if (pulsCounterApplication.getInterfaceClasses().size()==1){
+ cidc = pulsCounterApplication.getInterfaceClasses().get(0);
+ } else {
+ cidc = (Class)JObjectSelector.execute(pulsCounterApplication.getInterfaceClasses().toArray());
+ }
+
+ if (cidc != null){
+ pulsCounterApplication.addInterface(cidc, "");
+ };
}
private void removeInterface(){
@@ -588,14 +578,53 @@ public class NewMainWindow implements PulsCounterApplicationListener, TaskletLis
}
}
- private void setSerialPort(NewSerialPort serialPort){
- PulsCounterApplication.getApplication().setSerialPort(serialPort);
- }
- @Override
- public void serialPortChanged() {
+
+ private synchronized void updateDeviceView(){
+ if (selectedDeviceInterface != null){
+ try {
+ int[] values = selectedDeviceInterface.getCounters();
+ float[] analogs = selectedDeviceInterface.getAnalogs();
+ int inputs,
+ outputs,
+ pullups;
+
+ inputs = selectedDeviceInterface.getInputs();
+ outputs = selectedDeviceInterface.getOutputs();
+ pullups = selectedDeviceInterface.getPullups();
+
+
+ for (int n=0;n<32;n++){
+ channelDisplays[n].setEnabled(true);
+ channelDisplays[n].setCounter(values[n]);
+
+ channelDisplays[n].setInput( ((inputs & (1<