use of org.opentcs.data.model.Point in project opentcs-integration-example by openTCS.
the class ControlPanel method initComponents.
/**
* This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
private // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;
connectionSettingsPanel = new javax.swing.JPanel();
enableAdapterCheckBox = new javax.swing.JCheckBox();
hostLabel = new javax.swing.JLabel();
hostTextField = new javax.swing.JTextField();
connectedButton = new javax.swing.JButton();
portLabel = new javax.swing.JLabel();
portTextField = new javax.swing.JTextField();
activeButton = new javax.swing.JButton();
aliveTimeoutLable = new javax.swing.JLabel();
aliveTimeoutTextField = new javax.swing.JTextField();
disconnectOnTimeoutChkBox = new javax.swing.JCheckBox();
reconnectOnConnectionLossChkBox = new javax.swing.JCheckBox();
enableLoggingChkBox = new javax.swing.JCheckBox();
connectionSettingsPanelFiller = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 32767));
setOrderPanel = new javax.swing.JPanel();
destinationLabel = new javax.swing.JLabel();
destinationComboBox = new javax.swing.JComboBox<>();
actionLabel = new javax.swing.JLabel();
actionComboBox = new javax.swing.JComboBox<>();
orderIdLabel = new javax.swing.JLabel();
orderIdTextField = new javax.swing.JTextField();
sendOrderButton = new javax.swing.JButton();
setOrderPanelFiller = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 32767));
repeatOrderPanel = new javax.swing.JPanel();
lastOrdersScrollPane = new javax.swing.JScrollPane();
lastOrdersList = new javax.swing.JList<>();
lastOrderDetailsPanel = new javax.swing.JPanel();
destinationLabel1 = new javax.swing.JLabel();
lastDestinationTextField = new javax.swing.JTextField();
actionLabel1 = new javax.swing.JLabel();
lastActionTextField = new javax.swing.JTextField();
lastOrderIdLabel = new javax.swing.JLabel();
lastOrderIdTextField = new javax.swing.JTextField();
repeatLastOrderButton = new javax.swing.JButton();
// NOI18N
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("com/example/commadapter/vehicle/Bundle");
// NOI18N
connectionSettingsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, bundle.getString("VehicleConnectionTitle"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11)));
connectionSettingsPanel.setLayout(new java.awt.GridBagLayout());
// NOI18N
enableAdapterCheckBox.setText(bundle.getString("EnableAdapter"));
enableAdapterCheckBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
enableAdapterCheckBoxActionPerformed(evt);
}
});
connectionSettingsPanel.add(enableAdapterCheckBox, new java.awt.GridBagConstraints());
// NOI18N
hostLabel.setText(bundle.getString("VehicleIpAddress"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
connectionSettingsPanel.add(hostLabel, gridBagConstraints);
hostTextField.setColumns(12);
hostTextField.setText("XXX.XXX.XXX.XXX");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
connectionSettingsPanel.add(hostTextField, gridBagConstraints);
// NOI18N
connectedButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/example/commadapter/vehicle/res/symbols/LEDGray.gif")));
// NOI18N
connectedButton.setText(bundle.getString("AdapterConnected"));
connectedButton.setBorderPainted(false);
// NOI18N
connectedButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/com/example/commadapter/vehicle/res/symbols/LEDRed.gif")));
// NOI18N
connectedButton.setDisabledSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/com/example/commadapter/vehicle/res/symbols/LEDGreen.gif")));
connectedButton.setEnabled(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
connectionSettingsPanel.add(connectedButton, gridBagConstraints);
// NOI18N
portLabel.setText(bundle.getString("VehicleTcpPort"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
connectionSettingsPanel.add(portLabel, gridBagConstraints);
portTextField.setColumns(6);
portTextField.setDocument(new PlainDocument() {
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
try {
String oldString = getText(0, getLength());
StringBuilder newString = new StringBuilder(oldString);
newString.insert(offs, str);
int newValue = Integer.parseInt(newString.toString());
if (newValue >= 1 && newValue <= 65535) {
super.insertString(offs, str, a);
}
} catch (NumberFormatException e) {
}
}
});
portTextField.setText("XXXXX");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
connectionSettingsPanel.add(portTextField, gridBagConstraints);
// NOI18N
activeButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/example/commadapter/vehicle/res/symbols/LEDGray.gif")));
// NOI18N
activeButton.setText(bundle.getString("ControlPanel.AdapterActive"));
activeButton.setBorderPainted(false);
// NOI18N
activeButton.setDisabledIcon(new javax.swing.ImageIcon(getClass().getResource("/com/example/commadapter/vehicle/res/symbols/LEDRed.gif")));
// NOI18N
activeButton.setDisabledSelectedIcon(new javax.swing.ImageIcon(getClass().getResource("/com/example/commadapter/vehicle/res/symbols/LEDGreen.gif")));
activeButton.setEnabled(false);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
connectionSettingsPanel.add(activeButton, gridBagConstraints);
// NOI18N
aliveTimeoutLable.setText(bundle.getString("ControlPanel.IdleAfter"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
connectionSettingsPanel.add(aliveTimeoutLable, gridBagConstraints);
aliveTimeoutTextField.setColumns(6);
aliveTimeoutTextField.setDocument(new PlainDocument() {
@Override
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {
try {
Integer.parseInt(str);
super.insertString(offs, str, a);
} catch (NumberFormatException e) {
}
}
});
aliveTimeoutTextField.setText("XXXXX");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
connectionSettingsPanel.add(aliveTimeoutTextField, gridBagConstraints);
// NOI18N
disconnectOnTimeoutChkBox.setText(bundle.getString("ControlPanel.DisconnectOnTimeout"));
disconnectOnTimeoutChkBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
disconnectOnTimeoutChkBoxActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
connectionSettingsPanel.add(disconnectOnTimeoutChkBox, gridBagConstraints);
// NOI18N
reconnectOnConnectionLossChkBox.setText(bundle.getString("ControlPanel.DisconnectOnConnectionLoss"));
reconnectOnConnectionLossChkBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
reconnectOnConnectionLossChkBoxActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 4;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
connectionSettingsPanel.add(reconnectOnConnectionLossChkBox, gridBagConstraints);
// NOI18N
enableLoggingChkBox.setText(bundle.getString("ControlPanel.EnableLogging"));
enableLoggingChkBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
enableLoggingChkBoxActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 5;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
connectionSettingsPanel.add(enableLoggingChkBox, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 3;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 6;
gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
gridBagConstraints.weightx = 1.0;
connectionSettingsPanel.add(connectionSettingsPanelFiller, gridBagConstraints);
// NOI18N
setOrderPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, bundle.getString("NewOrderTelegramTitle"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11)));
setOrderPanel.setLayout(new java.awt.GridBagLayout());
// NOI18N
destinationLabel.setText(bundle.getString("OrderDestination"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
setOrderPanel.add(destinationLabel, gridBagConstraints);
destinationComboBox.setEditable(true);
destinationComboBox.setEditor(new TCSObjectComboBoxEditor());
destinationComboBox.setRenderer(new StringListCellRenderer<Point>(point -> point.getName()));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
setOrderPanel.add(destinationComboBox, gridBagConstraints);
// NOI18N
actionLabel.setText(bundle.getString("OrderAction"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
setOrderPanel.add(actionLabel, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 1;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
setOrderPanel.add(actionComboBox, gridBagConstraints);
// NOI18N
orderIdLabel.setText(bundle.getString("OrderID"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
setOrderPanel.add(orderIdLabel, gridBagConstraints);
orderIdTextField.setColumns(6);
orderIdTextField.setText("1");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 2;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
setOrderPanel.add(orderIdTextField, gridBagConstraints);
// NOI18N
sendOrderButton.setText(bundle.getString("SendNewOrder"));
sendOrderButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
sendOrderButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 3;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 3);
setOrderPanel.add(sendOrderButton, gridBagConstraints);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 2;
gridBagConstraints.gridy = 0;
gridBagConstraints.gridheight = 4;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.weightx = 1.0;
setOrderPanel.add(setOrderPanelFiller, gridBagConstraints);
// NOI18N
repeatOrderPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, bundle.getString("LastOrderTelegramTitle"), javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 1, 11)));
repeatOrderPanel.setMinimumSize(new java.awt.Dimension(199, 170));
lastOrdersList.setModel(lastOrderListModel);
lastOrdersList.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
lastOrdersList.setCellRenderer(new OrderListCellRenderer());
lastOrdersScrollPane.setViewportView(lastOrdersList);
lastOrdersList.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
lastOrdersSentValueChanged(evt);
}
});
lastOrdersScrollPane.setViewportView(lastOrdersList);
lastOrderDetailsPanel.setLayout(new java.awt.GridBagLayout());
// NOI18N
destinationLabel1.setText(bundle.getString("OrderDestination"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
lastOrderDetailsPanel.add(destinationLabel1, gridBagConstraints);
lastDestinationTextField.setEditable(false);
lastDestinationTextField.setColumns(12);
lastDestinationTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 0;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
lastOrderDetailsPanel.add(lastDestinationTextField, gridBagConstraints);
// NOI18N
actionLabel1.setText(bundle.getString("OrderAction"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 9;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
lastOrderDetailsPanel.add(actionLabel1, gridBagConstraints);
lastActionTextField.setEditable(false);
lastActionTextField.setColumns(12);
lastActionTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 9;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
lastOrderDetailsPanel.add(lastActionTextField, gridBagConstraints);
// NOI18N
lastOrderIdLabel.setText(bundle.getString("OrderID"));
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 11;
gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3);
lastOrderDetailsPanel.add(lastOrderIdLabel, gridBagConstraints);
lastOrderIdTextField.setEditable(false);
lastOrderIdTextField.setColumns(6);
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 1;
gridBagConstraints.gridy = 11;
gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
gridBagConstraints.insets = new java.awt.Insets(0, 0, 3, 3);
lastOrderDetailsPanel.add(lastOrderIdTextField, gridBagConstraints);
// NOI18N
repeatLastOrderButton.setText(bundle.getString("SendLastOrderAgain"));
repeatLastOrderButton.setEnabled(false);
repeatLastOrderButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
repeatLastOrderButtonActionPerformed(evt);
}
});
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.gridx = 0;
gridBagConstraints.gridy = 12;
gridBagConstraints.gridwidth = 2;
gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL;
gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 3);
lastOrderDetailsPanel.add(repeatLastOrderButton, gridBagConstraints);
javax.swing.GroupLayout repeatOrderPanelLayout = new javax.swing.GroupLayout(repeatOrderPanel);
repeatOrderPanel.setLayout(repeatOrderPanelLayout);
repeatOrderPanelLayout.setHorizontalGroup(repeatOrderPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(repeatOrderPanelLayout.createSequentialGroup().addComponent(lastOrdersScrollPane, javax.swing.GroupLayout.PREFERRED_SIZE, 166, javax.swing.GroupLayout.PREFERRED_SIZE).addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED).addComponent(lastOrderDetailsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(0, 0, 0)));
repeatOrderPanelLayout.setVerticalGroup(repeatOrderPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(repeatOrderPanelLayout.createSequentialGroup().addGroup(repeatOrderPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false).addComponent(lastOrdersScrollPane).addComponent(lastOrderDetailsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(0, 0, 0)));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(0, 0, 0).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addComponent(connectionSettingsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 380, javax.swing.GroupLayout.PREFERRED_SIZE).addGap(6, 6, 6).addComponent(setOrderPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addComponent(repeatOrderPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(0, 0, 0)));
layout.setVerticalGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addGroup(layout.createSequentialGroup().addGap(0, 0, 0).addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING).addComponent(connectionSettingsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addComponent(setOrderPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)).addGap(6, 6, 6).addComponent(repeatOrderPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE).addContainerGap(85, Short.MAX_VALUE)));
// NOI18N
getAccessibleContext().setAccessibleName(bundle.getString("ControlsPanelTitle"));
}
use of org.opentcs.data.model.Point in project opentcs-integration-example by openTCS.
the class StatisticsEventLogger method processPointEvent.
/**
* Processes an event for a {@link Point} if it is interesting.
*
* @param event The event to be processed.
*/
private void processPointEvent(TCSObjectEvent event) {
if (event.getPreviousObjectState() == null || event.getCurrentObjectState() == null) {
// We cannot compare two states to find out what happened - ignore.
return;
}
Point pointOld = (Point) event.getPreviousObjectState();
Point pointNow = (Point) event.getCurrentObjectState();
// Did a vehicle arrive at this point?
if (pointNow.getOccupyingVehicle() != null && pointOld.getOccupyingVehicle() == null) {
writeEvent(StatisticsEvent.POINT_OCCUPIED, pointNow.getName());
}
// Did a vehicle leave this point?
if (pointNow.getOccupyingVehicle() == null && pointOld.getOccupyingVehicle() != null) {
writeEvent(StatisticsEvent.POINT_FREED, pointNow.getName());
}
}
use of org.opentcs.data.model.Point in project OpenTCS-4 by touchmii.
the class DoorController method getOpenDoor.
public static List<Point> getOpenDoor(DriveOrder driveOrder) {
List<Route.Step> doorList = checkPassDoor(driveOrder);
List<Point> openDoorList = new ArrayList<>();
List<Route.Step> stepList = driveOrder.getRoute().getSteps();
String doorName;
for (Route.Step doorStep : doorList) {
int index = driveOrder.getRoute().getSteps().indexOf(doorStep);
doorName = doorStep.getDestinationPoint().getProperty("door");
// if (doorList.size() - doorList.indexOf(doorStep) > 0) {
// int nextdoorIndex = stepList.indexOf(doorList.get(doorList.indexOf(doorStep)+1));
// if (stepList.indexOf(doorList.get(nextdoorIndex)) - index < 4) {
//
// }
// }
String p = null;
if (index < 1) {
index = 1;
} else {
p = doorStep.getSourcePoint().getProperty("dis");
}
if (p != null && p.equals("0")) {
openDoorList.add(doorStep.getSourcePoint().withProperty("door", doorName).withProperty("action", "open"));
} else {
openDoorList.add(driveOrder.getRoute().getSteps().get(index - 1).getSourcePoint().withProperty("door", doorName).withProperty("action", "open"));
}
}
return openDoorList;
}
use of org.opentcs.data.model.Point in project OpenTCS-4 by touchmii.
the class DoorTruck method runActualTask.
@Override
protected void runActualTask() {
curPoint = processModel.getVehiclePosition();
try {
if (pointQueue.peek() != null && pointQueue.peek().getName().equals(curPoint)) {
Point point = pointQueue.poll();
LOG.info("door: {} action: {} in point: {}", point.getProperty("door"), point.getProperty("action"), curPoint);
doorAction(point.getProperty("door"), point.getProperty("action"));
}
if (recheckOpenQueue.size() > 0) {
String doorName = recheckOpenQueue.peek();
// doorAction(doorName, "open");
// LOG.info("recheck open door: {}", doorName);
open_timer.schedule(new CheckOpen(doorName), 500);
}
if (recheckCloseQueue.size() > 0) {
String doorName = recheckCloseQueue.peek();
open_timer.schedule(new CheckClose(doorName), 1000);
}
} catch (Exception e) {
LOG.error("doorTruck error: {}", e.getMessage());
}
}
use of org.opentcs.data.model.Point in project OpenTCS-4 by touchmii.
the class ConfigRouteTest method newDriverOrder.
public DriveOrder newDriverOrder(List<Triple> tripleList) {
List<Route.Step> stepsList = new ArrayList<>();
Point destPoint = null;
for (int i = 0; i < tripleList.size() - 1; i++) {
Point pointa = new Point(String.valueOf(i)).withPosition(tripleList.get(i));
Point pointb = new Point(String.valueOf(i + 1)).withPosition(tripleList.get(i + 1));
if (i == 3) {
pointb.withProperty("door", "JN2");
}
stepsList.add(new Route.Step(new Path("Path" + String.valueOf(i), pointa.getReference(), pointb.getReference()), pointa, pointb, Vehicle.Orientation.FORWARD, i));
if (i + 2 == tripleList.size()) {
destPoint = pointb;
}
}
Route route = new Route(stepsList, stepsList.size());
DriveOrder driveOrder = new DriveOrder(new DriveOrder.Destination(destPoint.getReference())).withRoute(route);
return driveOrder;
}
Aggregations