Bladeren bron

serial communication with connect and buttons

master
gituser 10 maanden geleden
bovenliggende
commit
0800bdbdac

+ 5
- 0
pom.xml Bestand weergeven

@@ -43,6 +43,11 @@
<artifactId>jSerialComm</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.11.0</version>
</dependency>
</dependencies>

<build>

src/main/java/ch/spherICIT/main/ConnectionState.java → src/main/java/ch/spherICIT/communication/ConnectionState.java Bestand weergeven

@@ -1,4 +1,4 @@
package ch.spherICIT.main;
package ch.spherICIT.communication;

public enum ConnectionState {
READY, CONNECTING, CONNECTED, TIMEOUT

src/main/java/ch/spherICIT/main/ConnectionStateInfo.java → src/main/java/ch/spherICIT/communication/ConnectionStateInfo.java Bestand weergeven

@@ -1,4 +1,4 @@
package ch.spherICIT.main;
package ch.spherICIT.communication;

public record ConnectionStateInfo(ConnectionState connectionState, String port, String version) {


src/main/java/ch/spherICIT/main/IConnectionState.java → src/main/java/ch/spherICIT/communication/IConnectionState.java Bestand weergeven

@@ -1,4 +1,4 @@
package ch.spherICIT.main;
package ch.spherICIT.communication;

public interface IConnectionState {


+ 68
- 0
src/main/java/ch/spherICIT/communication/SerialCommHandler.java Bestand weergeven

@@ -0,0 +1,68 @@
package ch.spherICIT.communication;

import ch.spherICIT.main.Message;
import com.fazecast.jSerialComm.SerialPort;
import com.google.gson.Gson;

public class SerialCommHandler {

private static Gson gson = new Gson();

public static String sendInitCommand(SerialPort serialPort) {
String serializedMsg = getSerializedCmdString("Init", null);
send(serialPort, serializedMsg);
return serializedMsg;
}

public static String sendVersionCommand(SerialPort serialPort) {
String serializedMsg = getSerializedCmdString(Message.CMD_VER, null);
send(serialPort, serializedMsg);
return serializedMsg;
}

public static String sendRelaisStatusCommand(SerialPort serialPort) {
String serializedMsg = getSerializedCmdString(Message.CMD_STATUS_RELAY, null);
send(serialPort, serializedMsg);
return serializedMsg;
}

public static String sendCamZeroCommand(SerialPort serialPort) {
String serializedMsg = getSerializedCmdString(Message.CMD_ZERO_CAM, "0");
send(serialPort, serializedMsg);
return serializedMsg;
}

public static String sendRelaisPwrCommand(SerialPort serialPort, String val) {
String serializedMsg = getSerializedCmdString(Message.CMD_POWER_RELAY, val);
send(serialPort, serializedMsg);
return serializedMsg;
}

public static String sendCamPwrCommand(SerialPort serialPort, String val) {
String serializedMsg = getSerializedCmdString(Message.CMD_POWER_CAM, val);
send(serialPort, serializedMsg);
return serializedMsg;
}

public static String sendCamVelocityCommand(SerialPort serialPort, String val) {
String serializedMsg = getSerializedCmdString(Message.CMD_VELOCITY_CAM, val);
send(serialPort, serializedMsg);
return serializedMsg;
}

private static void send(SerialPort serialPort, String serializedMsg) {
if (serialPort.isOpen()) {
serialPort.writeBytes(serializedMsg.getBytes(), serializedMsg.length());
}
}

private static String getSerializedCmdString(String cmdStatusRelay, String value) {
Message message = new Message();
message.setSender(Message.CMD_SENDER_PC);
message.setCmd(cmdStatusRelay);
message.setVal(value);
String serializedMsg = gson.toJson(message);
return serializedMsg;
}
}


+ 36
- 0
src/main/java/ch/spherICIT/components/led/Led.java Bestand weergeven

@@ -0,0 +1,36 @@
package ch.spherICIT.components.led;

import ch.spherICIT.main.Message;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

public class Led extends JLabel {

private ImageIcon onIcon;
private ImageIcon offIcon;

public Led() {
super();
this.onIcon = new ImageIcon(getClass().getResource("/blue_led_on.png"));
this.offIcon = new ImageIcon(getClass().getResource("/blue_led_off.png"));
}

public void switchOn() {
setIcon(this.onIcon);
repaint();
}

public void switchOff() {
setIcon(this.offIcon);
repaint();
}

public void doSwitch(String state) {
if(state.toLowerCase().equals(Message.CMD_VAL_ON.toLowerCase())) {
switchOn();
} else {
switchOff();
}
}
}

+ 4
- 4
src/main/java/ch/spherICIT/components/statusbar/FSStatusBar.java Bestand weergeven

@@ -1,8 +1,8 @@
package ch.spherICIT.components.statusbar;

import ch.spherICIT.main.ConnectionState;
import ch.spherICIT.main.IConnectionState;
import ch.spherICIT.main.ConnectionStateInfo;
import ch.spherICIT.communication.ConnectionState;
import ch.spherICIT.communication.IConnectionState;
import ch.spherICIT.communication.ConnectionStateInfo;
import com.formdev.flatlaf.ui.FlatLineBorder;
import com.formdev.flatlaf.util.StringUtils;

@@ -64,6 +64,7 @@ public class FSStatusBar implements IConnectionState {
this.reconnectBtn.setVisible(false);
this.portValueLbl.setText(" ");
this.versionValueLbl.setText(" ");
this.connectionStatePrgBar.setValue(0);
this.connectionStatePrgBar.setIndeterminate(false);
if (connectionStateInfo.connectionState().equals(ConnectionState.READY)) {
this.connectionStateLbl.setText("Bereit");
@@ -81,7 +82,6 @@ public class FSStatusBar implements IConnectionState {
} else {
this.connectionStateLbl.setText("Zeitüberschreitung!");
this.connectionStatePrgBar.setString("Nicht verbunden");
this.connectionStatePrgBar.setValue(0);
this.reconnectBtn.setVisible(true);
}
}

+ 4
- 3
src/main/java/ch/spherICIT/components/switchbtn/SwitchButton.java Bestand weergeven

@@ -3,6 +3,7 @@ package ch.spherICIT.components.switchbtn;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import javax.swing.Timer;
import javax.swing.UIManager;
import java.awt.AlphaComposite;
import java.awt.Color;
import java.awt.Cursor;
@@ -82,7 +83,7 @@ public class SwitchButton extends JComponent {

@Override
public void mouseReleased(MouseEvent me) {
if (SwingUtilities.isLeftMouseButton(me)) {
if (isEnabled() && SwingUtilities.isLeftMouseButton(me)) {
if (mouseOver) {
selected = !selected;
timer.start();
@@ -101,13 +102,13 @@ public class SwitchButton extends JComponent {
int height = getHeight();
float alpha = getAlpha();
if (alpha < 1) {
g2.setColor(Color.GRAY);
g2.setColor(isEnabled() ? Color.GRAY : Color.LIGHT_GRAY);
g2.fillRoundRect(0, 0, width, height, height, height);
}
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
g2.setColor(getBackground());
g2.fillRoundRect(0, 0, width, height, height, height);
g2.setColor(getForeground());
g2.setColor(isEnabled() ? getForeground() : UIManager.getDefaults().getColor("Button.disabledSelectedBackground"));
g2.setComposite(AlphaComposite.SrcOver);
g2.fillOval((int) location, 2, height - 4, height - 4);
super.paint(grphcs);

+ 5
- 10
src/main/java/ch/spherICIT/main/LogWindow.java Bestand weergeven

@@ -59,13 +59,6 @@ public class LogWindow extends JFrame {
setResizable(false);
add(this.mainLogPnl, BorderLayout.CENTER);
add(btnPanel, BorderLayout.SOUTH);

addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"On\"}", SendDirection.IN);
addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"Off\"}", SendDirection.OUT);
addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"On\"}", SendDirection.IN);
addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"Off\"}", SendDirection.OUT);
addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"On\"}", SendDirection.IN);
addLogEntry("{\"Sender\": \"FSRemoteControl_AN\", \"Cmd\": \"Relais_Power\", \"Val\": \"Off\"}", SendDirection.OUT);
}

private void createCloseBtn() {
@@ -82,9 +75,11 @@ public class LogWindow extends JFrame {
}

public void addLogEntry(String logEntry, SendDirection sd) {
this.logs.add(this.dateTimeFormatter.format(LocalDateTime.now()) + " :" + (sd.equals(SendDirection.IN) ? " << " : " >> ") + logEntry);
this.logsTxtArea.append(this.logs.getLast());
this.logsTxtArea.append("\r\n");
synchronized (logs) {
this.logs.add(this.dateTimeFormatter.format(LocalDateTime.now()) + " :" + (sd.equals(SendDirection.IN) ? " << " : " >> ") + logEntry);
this.logsTxtArea.append(this.logs.getLast());
this.logsTxtArea.append("\r\n");
}
}

{

+ 8
- 4
src/main/java/ch/spherICIT/main/MainPanel.form Bestand weergeven

@@ -52,11 +52,11 @@
<font name="Bahnschrift" size="14" style="0"/>
<hideActionText value="false"/>
<horizontalTextPosition value="0"/>
<label value="Öffnen"/>
<label value="Connecten"/>
<minimumSize width="130" height="32"/>
<preferredSize width="130" height="32"/>
<selected value="false"/>
<text value="Öffnen"/>
<text value="Connecten"/>
<verticalAlignment value="3"/>
</properties>
</component>
@@ -148,7 +148,9 @@
</constraints>
<properties>
<background color="-16738404"/>
<enabled value="false"/>
<preferredSize width="80" height="40"/>
<selected value="false"/>
</properties>
</component>
</children>
@@ -171,7 +173,7 @@
<gridbag weightx="0.0" weighty="0.0" ipady="80"/>
</constraints>
</vspacer>
<component id="28a8c" class="javax.swing.JLabel" binding="relaisPwrLed">
<component id="28a8c" class="ch.spherICIT.components.led.Led" binding="relaisPwrLed" custom-create="true">
<constraints>
<grid row="5" column="0" row-span="1" col-span="3" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
<gridbag weightx="0.0" weighty="0.0"/>
@@ -234,6 +236,7 @@
</constraints>
<properties>
<background color="-16738404"/>
<enabled value="false"/>
</properties>
</component>
<component id="5163d" class="javax.swing.JLabel">
@@ -317,7 +320,7 @@
<text value="Status"/>
</properties>
</component>
<component id="b1d8f" class="javax.swing.JLabel" binding="camStepperPwrLed">
<component id="b1d8f" class="ch.spherICIT.components.led.Led" binding="camStepperPwrLed" custom-create="true">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
<gridbag weightx="0.0" weighty="0.0"/>
@@ -337,6 +340,7 @@
</constraints>
<properties>
<background color="-16738404"/>
<enabled value="false"/>
</properties>
</component>
</children>

+ 224
- 41
src/main/java/ch/spherICIT/main/MainPanel.java Bestand weergeven

@@ -1,7 +1,16 @@
package ch.spherICIT.main;

import ch.spherICIT.communication.ConnectionState;
import ch.spherICIT.communication.ConnectionStateInfo;
import ch.spherICIT.communication.IConnectionState;
import ch.spherICIT.communication.SerialCommHandler;
import ch.spherICIT.components.led.Led;
import ch.spherICIT.components.switchbtn.EventSwitchSelected;
import ch.spherICIT.components.switchbtn.SwitchButton;
import com.fazecast.jSerialComm.SerialPort;
import com.fazecast.jSerialComm.SerialPortEvent;
import com.fazecast.jSerialComm.SerialPortMessageListener;
import com.google.gson.Gson;

import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
@@ -9,8 +18,8 @@ import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.plaf.FontUIResource;
import javax.swing.text.StyleContext;
import java.awt.Color;
@@ -27,11 +36,19 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;

import static ch.spherICIT.main.LogWindow.SendDirection.IN;
import static ch.spherICIT.main.LogWindow.SendDirection.OUT;

public class MainPanel {

public static final long COMM_TIMEOUT = 3000L;

private JPanel mainPanel;
private JLabel serPortLbl;
private JComboBox<CommPort> serPortCboBox;
@@ -41,14 +58,17 @@ public class MainPanel {
private SwitchButton relaisPwrBtn;
private SwitchButton camVelocityModeBtn;
private SwitchButton camStepperPwrBtn;
private JLabel relaisPwrLed;
private JLabel camStepperPwrLed;
private Led relaisPwrLed;
private Led camStepperPwrLed;
private JButton logWindowBtn;
private final LogWindow logWindow;

private Set<IConnectionState> connectionStateListeners;
private ActionListener reconnectActionListener;
private List<CommPort> commPorts;
private SerialPort selectedSerialPort;
private FSSerialPortMessageListener serialPortMessageListener;
private Timer timer;

/**
* Konstruktor.
@@ -62,67 +82,81 @@ public class MainPanel {
this.reconnectActionListener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(mainPanel, "Test", "Title", JOptionPane.INFORMATION_MESSAGE);
connect();
}
};

this.serPortOpenBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// connectionStateListeners.iterator().next().connectionStateChanged(new ConnectionStateInfo(ConnectionState.CONNECTING, "", ""));
getSelectedCommPort().get().getSerialPort().get().openPort();
serPortOpenBtn.setEnabled(false);
serPortCloseBtn.setEnabled(true);
if (!selectedSerialPort.isOpen()) {
System.out.println("connecten clicked");
selectedSerialPort.openPort();
logWindow.addLogEntry(SerialCommHandler.sendInitCommand(selectedSerialPort), OUT);
}
connect();
}
});

this.serPortCloseBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// connectionStateListeners.iterator().next().connectionStateChanged(new ConnectionStateInfo(ConnectionState.CONNECTED, "COM4", "v1.2.0"));
getSelectedCommPort().get().getSerialPort().get().closePort();
serPortOpenBtn.setEnabled(true);
serPortCloseBtn.setEnabled(false);
if (selectedSerialPort != null && selectedSerialPort.isOpen()) {
selectedSerialPort.closePort();
serPortOpenBtn.setEnabled(true);
serPortCloseBtn.setEnabled(false);

relaisPwrBtn.setEnabled(false);
relaisPwrBtn.setSelected(false);
relaisPwrLed.switchOff();
camStepperPwrBtn.setEnabled(false);
camStepperPwrBtn.setSelected(false);
camStepperPwrLed.switchOff();
camVelocityModeBtn.setEnabled(false);
camVelocityModeBtn.setSelected(false);

for (IConnectionState listener : connectionStateListeners) {
listener.connectionStateChanged(new ConnectionStateInfo(ConnectionState.READY, null, null));
}
}
}
});

this.setZeroAzBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
connectionStateListeners.iterator().next().connectionStateChanged(new ConnectionStateInfo(ConnectionState.TIMEOUT, "", ""));
logWindow.addLogEntry(SerialCommHandler.sendCamZeroCommand(selectedSerialPort), OUT);
}
});

this.logWindowBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
logWindow.setVisible(true);
}
});
}

private void initCommPorts() {
this.commPorts = new ArrayList<>();
this.commPorts.add(new CommPort(null));
for (SerialPort serialPort : SerialPort.getCommPorts()) {
this.commPorts.add(new CommPort(serialPort));
}
this.serPortCboBox.setModel(new DefaultComboBoxModel(this.commPorts.toArray()));
serPortCboBox.addItemListener(new ItemListener() {
this.relaisPwrBtn.addEventSelected(new EventSwitchSelected() {
@Override
public void itemStateChanged(ItemEvent e) {
Optional<CommPort> selCommPortOptional = getSelectedCommPort();
if (selCommPortOptional.isPresent() && selCommPortOptional.get().getSerialPort().isPresent()) {
selCommPortOptional.get().getSerialPort().get().openPort();
serPortOpenBtn.setEnabled(false);
serPortCloseBtn.setEnabled(true);
} else {
for (IConnectionState listener : connectionStateListeners) {
listener.connectionStateChanged(new ConnectionStateInfo(ConnectionState.READY, null, null));
serPortOpenBtn.setEnabled(false);
serPortCloseBtn.setEnabled(false);
public void onSelected(boolean selected) {
logWindow.addLogEntry(SerialCommHandler.sendRelaisPwrCommand(selectedSerialPort, selected ? Message.CMD_VAL_ON : Message.CMD_VAL_OFF), OUT);
}
});

}
}
this.camStepperPwrBtn.addEventSelected(new EventSwitchSelected() {
@Override
public void onSelected(boolean selected) {
logWindow.addLogEntry(SerialCommHandler.sendCamPwrCommand(selectedSerialPort, selected ? Message.CMD_VAL_ON : Message.CMD_VAL_OFF), OUT);
}
});
this.serPortCboBox.setSelectedIndex(-1);

this.camVelocityModeBtn.addEventSelected(new EventSwitchSelected() {
@Override
public void onSelected(boolean selected) {
logWindow.addLogEntry(SerialCommHandler.sendCamVelocityCommand(selectedSerialPort, selected ? Message.CMD_VELOCITY_FAST : Message.CMD_VELOCITY_SLOW), OUT);
}
});

}

public void registerConnectionStateListener(IConnectionState connectionStateListener) {
@@ -141,11 +175,88 @@ public class MainPanel {
return this.serPortCboBox.getSelectedIndex() != -1 ? Optional.of(this.serPortCboBox.getItemAt(this.serPortCboBox.getSelectedIndex())) : Optional.empty();
}

private void connect() {
if (this.selectedSerialPort != null) {
if (this.selectedSerialPort.openPort()) {
this.timer = new Timer();
this.timer.schedule(new TimerTask() {
@Override
public void run() {
SwingUtilities.invokeLater(() -> {
for (IConnectionState listener : connectionStateListeners) {
listener.connectionStateChanged(new ConnectionStateInfo(ConnectionState.TIMEOUT, null, null));
}
serPortOpenBtn.setEnabled(true);
serPortCloseBtn.setEnabled(false);
});
}
}, COMM_TIMEOUT);

for (IConnectionState listener : this.connectionStateListeners) {
listener.connectionStateChanged(new ConnectionStateInfo(ConnectionState.CONNECTING, selectedSerialPort.getSystemPortName(), null));
}

SwingUtilities.invokeLater(() -> {
logWindow.addLogEntry(SerialCommHandler.sendVersionCommand(selectedSerialPort),
OUT);
});

this.serPortOpenBtn.setEnabled(false);
this.serPortCloseBtn.setEnabled(true);
}
}
}

private void initCommPorts() {
this.commPorts = new ArrayList<>();
this.commPorts.add(new CommPort(null));
this.serialPortMessageListener = new FSSerialPortMessageListener();

for (SerialPort serialPort : SerialPort.getCommPorts()) {
this.commPorts.add(new CommPort(serialPort));
}

this.serPortCboBox.setModel(new DefaultComboBoxModel(this.commPorts.toArray()));
this.serPortCboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
Optional<CommPort> selCommPortOptional = getSelectedCommPort();
if (selCommPortOptional.isPresent() && selCommPortOptional.get().getSerialPort().isPresent()) {
selectedSerialPort = selCommPortOptional.get().getSerialPort().get();
selectedSerialPort.setComPortParameters(9600, 8, SerialPort.ONE_STOP_BIT, SerialPort.NO_PARITY);
selectedSerialPort.addDataListener(serialPortMessageListener);
selectedSerialPort.openPort();
SwingUtilities.invokeLater(() -> {
logWindow.addLogEntry(SerialCommHandler.sendInitCommand(selectedSerialPort), OUT);
});
serPortOpenBtn.setEnabled(true);
} else {
if (selectedSerialPort != null) {
selectedSerialPort.removeDataListener();
selectedSerialPort = null;
}
for (IConnectionState listener : connectionStateListeners) {
listener.connectionStateChanged(new ConnectionStateInfo(ConnectionState.READY, null, null));
serPortOpenBtn.setEnabled(false);
serPortCloseBtn.setEnabled(false);
}
}
}
}
});
this.serPortCboBox.setSelectedIndex(-1);
}

private void createUIComponents() {
this.serPortCboBox = new JComboBox<>();
this.relaisPwrLed = new Led();
this.camStepperPwrLed = new Led();
}


/**
* Convenince Comm Port class for combobox usage.
*/
private class CommPort {

private SerialPort serialPort;
@@ -167,6 +278,76 @@ public class MainPanel {
public String toString() {
return this.serialPort != null ? this.serialPort.getSystemPortName() : "";
}

@Override
public boolean equals(Object o) {
if (o == null || getClass() != o.getClass()) return false;
CommPort commPort = (CommPort) o;
return Objects.equals(this.serialPort, commPort.serialPort);
}

@Override
public int hashCode() {
return Objects.hashCode(this.serialPort);
}
}

/**
* Fixed length serial communication read listener. Fires when the character '}' is received.
*/
private class FSSerialPortMessageListener implements SerialPortMessageListener {

private Gson gson = new Gson();

@Override
public byte[] getMessageDelimiter() {
return new byte[]{(byte) 0x7D}; // ='}'
}

@Override
public boolean delimiterIndicatesEndOfMessage() {
return true;
}

@Override
public int getListeningEvents() {
return SerialPort.LISTENING_EVENT_DATA_RECEIVED | SerialPort.LISTENING_EVENT_DATA_WRITTEN;
}

@Override
public void serialEvent(SerialPortEvent serialPortEvent) {
System.out.println(serialPortEvent.getEventType());
if (serialPortEvent.getEventType() == SerialPort.LISTENING_EVENT_DATA_RECEIVED) {
byte[] receivedData = serialPortEvent.getReceivedData();
String input = new String(receivedData);
Message deserializedMsg = gson.fromJson(input, Message.class);
System.out.println("serialEvent: " + input);
logWindow.addLogEntry(input, IN);
if (deserializedMsg.getSender().equals(Message.CMD_SENDER_AN) && deserializedMsg.getCmd().equals(Message.CMD_VER)) {
// connected
timer.cancel();
SwingUtilities.invokeLater(() -> {
for (IConnectionState listener : connectionStateListeners) {
listener.connectionStateChanged(new ConnectionStateInfo(ConnectionState.CONNECTED, selectedSerialPort.getSystemPortName(), deserializedMsg.getVal()));
}
});
relaisPwrBtn.setEnabled(true);
camStepperPwrBtn.setEnabled(true);
camVelocityModeBtn.setEnabled(true);
} else if (deserializedMsg.getSender().equals(Message.CMD_SENDER_AN) && deserializedMsg.getCmd().equals(Message.CMD_STATUS_RELAY)) {
//Power relais status
String val = deserializedMsg.getVal();
relaisPwrLed.doSwitch(val);
} else if (deserializedMsg.getSender().equals(Message.CMD_SENDER_AN) && deserializedMsg.getCmd().equals(Message.CMD_STATUS_CAM)) {
//Cam relais status
String val = deserializedMsg.getVal();
camStepperPwrLed.doSwitch(val);
}
} else if (serialPortEvent.getEventType() == SerialPort.LISTENING_EVENT_DATA_WRITTEN) {
System.out.println("serialEvent: LISTENING_EVENT_DATA_WRITTEN");
logWindow.addLogEntry("serialEvent: LISTENING_EVENT_DATA_WRITTEN", IN);
}
}
}

/**
@@ -226,11 +407,11 @@ public class MainPanel {
if (serPortOpenBtnFont != null) serPortOpenBtn.setFont(serPortOpenBtnFont);
serPortOpenBtn.setHideActionText(false);
serPortOpenBtn.setHorizontalTextPosition(0);
serPortOpenBtn.setLabel("Öffnen");
serPortOpenBtn.setLabel("Connecten");
serPortOpenBtn.setMinimumSize(new Dimension(130, 32));
serPortOpenBtn.setPreferredSize(new Dimension(130, 32));
serPortOpenBtn.setSelected(false);
serPortOpenBtn.setText("Öffnen");
serPortOpenBtn.setText("Connecten");
serPortOpenBtn.setVerticalAlignment(3);
gbc = new GridBagConstraints();
gbc.gridx = 3;
@@ -329,7 +510,9 @@ public class MainPanel {
panel1.add(label5, gbc);
relaisPwrBtn = new SwitchButton();
relaisPwrBtn.setBackground(new Color(-16738404));
relaisPwrBtn.setEnabled(false);
relaisPwrBtn.setPreferredSize(new Dimension(80, 40));
relaisPwrBtn.setSelected(false);
gbc = new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 0;
@@ -356,7 +539,6 @@ public class MainPanel {
gbc.fill = GridBagConstraints.VERTICAL;
gbc.ipady = 80;
mainPanel.add(spacer3, gbc);
relaisPwrLed = new JLabel();
relaisPwrLed.setHorizontalAlignment(0);
relaisPwrLed.setIcon(new ImageIcon(getClass().getResource("/blue_led_off.png")));
relaisPwrLed.setText("");
@@ -416,6 +598,7 @@ public class MainPanel {
panel2.add(label8, gbc);
camVelocityModeBtn = new SwitchButton();
camVelocityModeBtn.setBackground(new Color(-16738404));
camVelocityModeBtn.setEnabled(false);
gbc = new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 1;
@@ -505,7 +688,6 @@ public class MainPanel {
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.insets = new Insets(0, 10, 5, 10);
panel4.add(label13, gbc);
camStepperPwrLed = new JLabel();
camStepperPwrLed.setHorizontalAlignment(0);
camStepperPwrLed.setIcon(new ImageIcon(getClass().getResource("/blue_led_off.png")));
camStepperPwrLed.setText("");
@@ -516,6 +698,7 @@ public class MainPanel {
panel4.add(camStepperPwrLed, gbc);
camStepperPwrBtn = new SwitchButton();
camStepperPwrBtn.setBackground(new Color(-16738404));
camStepperPwrBtn.setEnabled(false);
gbc = new GridBagConstraints();
gbc.gridx = 1;
gbc.gridy = 1;

+ 12
- 12
src/main/java/ch/spherICIT/main/Message.java Bestand weergeven

@@ -18,41 +18,41 @@ public class Message {
public static String CMD_VELOCITY_SLOW = "Slow";
public static String CMD_VELOCITY_FAST = "Fast";

private String sender;
private String cmd;
private String val;
private String Sender;
private String Cmd;
private String Val;

public Message() {
this("", "", "");
}

public Message(String sender, String cmd, String val) {
this.sender = sender;
this.cmd = cmd;
this.val = val;
this.Sender = sender;
this.Cmd = cmd;
this.Val = val;
}

public String getSender() {
return sender;
return Sender;
}

public void setSender(String sender) {
this.sender = sender;
this.Sender = sender;
}

public String getCmd() {
return cmd;
return Cmd;
}

public void setCmd(String cmd) {
this.cmd = cmd;
this.Cmd = cmd;
}

public String getVal() {
return val;
return Val;
}

public void setVal(String val) {
this.val = val;
this.Val = val;
}
}

Laden…
Annuleren
Opslaan