@Override public String label(Vehicle vehicle) { return vehicle.getName(); }
@Override public boolean test(Vehicle vehicle) { boolean accept = true; if (procState != null && !procState.equals(vehicle.getProcState().name())) { accept = false; } return accept; }
public static VehicleStatusMessage fromVehicle(Vehicle vehicle) { VehicleStatusMessage vehicleMessage = new VehicleStatusMessage(); vehicleMessage.setVehicleName(vehicle.getName()); vehicleMessage.setTransportOrderName( vehicle.getTransportOrder() == null ? null : vehicle.getTransportOrder().getName()); vehicleMessage.setPosition( vehicle.getCurrentPosition() == null ? null : vehicle.getCurrentPosition().getName()); vehicleMessage.setState(vehicle.getState()); vehicleMessage.setProcState(vehicle.getProcState()); Triple precisePos = vehicle.getPrecisePosition(); if (precisePos != null) { VehicleStatusMessage.PrecisePosition precisePosElement; precisePosElement = new VehicleStatusMessage.PrecisePosition( precisePos.getX(), precisePos.getY(), precisePos.getZ()); vehicleMessage.setPrecisePosition(precisePosElement); } return vehicleMessage; }
/** * Creates a <Code>VehicleState</Code> instance from a <Code>Vehicle</Code> instance. * * @param vehicle The vehicle whose properties will be used to create a <Code>VehicleState</Code> * instance. * @return A new <Code>VehicleState</Code> instance filled with data from the given vehicle. */ public static VehicleState fromVehicle(Vehicle vehicle) { if (vehicle == null) { return null; } VehicleState vehicleState = new VehicleState(); vehicleState.setName(vehicle.getName()); vehicleState.setProperties(vehicle.getProperties()); vehicleState.setLength(vehicle.getLength()); vehicleState.setEnergyLevelGood(vehicle.getEnergyLevelGood()); vehicleState.setEnergyLevelCritical(vehicle.getEnergyLevelCritical()); vehicleState.setEnergyLevel(vehicle.getEnergyLevel()); vehicleState.setIntegrationLevel(vehicle.getIntegrationLevel()); vehicleState.setProcState(vehicle.getProcState()); vehicleState.setTransportOrder(nameOfNullableReference(vehicle.getTransportOrder())); vehicleState.setCurrentPosition(nameOfNullableReference(vehicle.getCurrentPosition())); vehicleState.setState(vehicle.getState()); return vehicleState; }
if (vehicleNow.getTransportOrder() != null && vehicleOld.getTransportOrder() == null) { writeEvent(StatisticsEvent.VEHICLE_STARTS_PROCESSING, vehicleNow.getName()); if (vehicleNow.getTransportOrder() == null && vehicleOld.getTransportOrder() != null) { writeEvent(StatisticsEvent.VEHICLE_STOPS_PROCESSING, vehicleNow.getName()); if (vehicleNow.hasState(Vehicle.State.CHARGING) && !vehicleOld.hasState(Vehicle.State.CHARGING)) { writeEvent(StatisticsEvent.VEHICLE_STARTS_CHARGING, vehicleNow.getName()); if (!vehicleNow.hasState(Vehicle.State.CHARGING) && vehicleOld.hasState(Vehicle.State.CHARGING)) { writeEvent(StatisticsEvent.VEHICLE_STOPS_CHARGING, vehicleNow.getName()); if (vehicleNow.hasProcState(Vehicle.ProcState.PROCESSING_ORDER) && !vehicleNow.hasState(Vehicle.State.EXECUTING) && (vehicleOld.hasState(Vehicle.State.EXECUTING) || !vehicleOld.hasProcState(Vehicle.ProcState.PROCESSING_ORDER))) { writeEvent(StatisticsEvent.VEHICLE_STARTS_WAITING, vehicleNow.getName()); if (vehicleNow.hasProcState(Vehicle.ProcState.PROCESSING_ORDER) && vehicleNow.hasState(Vehicle.State.EXECUTING) && !vehicleOld.hasState(Vehicle.State.EXECUTING)) { writeEvent(StatisticsEvent.VEHICLE_STOPS_WAITING, vehicleNow.getName());
public void putVehicleIntegrationLevel(String name, String value) throws ObjectUnknownException, IllegalArgumentException { requireNonNull(name, "name"); requireNonNull(value, "value"); Vehicle vehicle = orderService.fetchObject(Vehicle.class, name); if (vehicle == null) { throw new ObjectUnknownException("Unknown vehicle: " + name); } Vehicle.IntegrationLevel level = Vehicle.IntegrationLevel.valueOf(value); kernelExecutor.submit( () -> vehicleService.updateVehicleIntegrationLevel(vehicle.getReference(), level) ); }
curStruc.getIntendedVehicle()).getReference()); for (TransportOrderXMLStructure.XMLMapEntry curEntry : curStruc.getProperties()) { data.addProperty(curEntry.getKey(), curEntry.getValue()); DriveOrderStructure newDOS = new DriveOrderStructure(objectService.fetchObject( Location.class, curDOXMLS.getDriveOrderLocation()).getReference(), curDOXMLS.getDriveOrderVehicleOperation()); data.addDriveOrder(newDOS);
public void withdrawByVehicle(String name, boolean immediate, boolean disableVehicle) throws ObjectUnknownException { requireNonNull(name, "name"); Vehicle vehicle = orderService.fetchObject(Vehicle.class, name); if (vehicle == null) { throw new ObjectUnknownException("Unknown vehicle: " + name); } kernelExecutor.submit(() -> { if (disableVehicle) { vehicleService.updateVehicleIntegrationLevel(vehicle.getReference(), Vehicle.IntegrationLevel.TO_BE_RESPECTED); } dispatcherService.withdrawByVehicle(vehicle.getReference(), immediate); }); }
/** * 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()); } }
= (TCSObjectReference<Location>) locationsComboBox.getSelectedItem(); Location location = objectService.fetchObject(Location.class, loc); TCSObjectReference<LocationType> locationRef = location.getType(); LocationType locationType = objectService.fetchObject(LocationType.class, locationRef); Set<String> operationTypes = new TreeSet<>(locationType.getAllowedOperations()); for (String j : operationTypes) { operationTypesComboBox.addItem(j);
/** * Checks if a given vehicle is loaded. * * @param vehicle The vehicle. * @return Flag indicating if it is loaded. */ private boolean loaded(Vehicle vehicle) { return vehicle.getLoadHandlingDevices().stream() .anyMatch(lhd -> lhd.isFull()); }
private TransportOrder createSingleOrder() throws KernelRuntimeException { List<DestinationCreationTO> dests = new ArrayList<>(); for (int j = 0; j < orderSize; j++) { Location destLoc = locations.get(random.nextInt(locations.size())); dests.add(new DestinationCreationTO(destLoc.getName(), Destination.OP_NOP)); } TransportOrder newOrder = transportOrderService.createTransportOrder( new TransportOrderCreationTO("TOrder-" + UUID.randomUUID(), dests)); return newOrder; } }
@Override public Component getTreeCellRendererComponent(JTree tree, Object node, boolean selected, boolean expanded, boolean isLeaf, int row, boolean hasFocus) { //Let the superclass handle all its stuff related to rendering super.getTreeCellRendererComponent(tree, node, selected, expanded, isLeaf, row, hasFocus); if (node instanceof DefaultMutableTreeNode) { DefaultMutableTreeNode treeNode = (DefaultMutableTreeNode) node; //User object is of type string only if the node contains a vehicle or is the root node if (treeNode.getUserObject() instanceof String) { setIcon(vehicleIcon); } //User object is of type TCSResource only if the node contains a path or a point else if (treeNode.getUserObject() instanceof TCSResource) { TCSResource<?> resource = (TCSResource<?>) treeNode.getUserObject(); setText(resource.getName()); if (resource instanceof Path) { setIcon(pathIcon); } else if (resource instanceof Point) { setIcon(pointIcon); } } } return this; }
TCSResource<?> resource2 = (TCSResource<?>) current.getUserObject(); if (!resource.equals(resource2)) {
private void buildTableModels(TransportOrderData transportOrder) { requireNonNull(transportOrder, "transportOrder"); // Drive orders locationsComboBox.removeAllItems(); operationTypesComboBox.removeAllItems(); SortedSet<Location> sortedLocationSet = new TreeSet<>(Comparators.objectsByName()); sortedLocationSet.addAll(objectService.fetchObjects(Location.class)); for (Location i : sortedLocationSet) { locationsComboBox.addItem(i.getReference()); } locationsComboBox.addItemListener((ItemEvent e) -> locationsComboBoxItemStateChanged(e)); doTable.setModel(new DriveOrderTableModel(transportOrder.getDriveOrders())); doTable.setDefaultEditor(TCSObjectReference.class, new DefaultCellEditor(locationsComboBox)); doTable.setDefaultEditor(String.class, new DefaultCellEditor(operationTypesComboBox)); // Properties propertyTable.setModel(new PropertyTableModel(transportOrder.getProperties())); propertyTable.getColumn(bundle.getString("key")) .setCellEditor(new DefaultCellEditor(propertyComboBox)); }
public static VehicleStatusMessage fromVehicle(Vehicle vehicle, long sequenceNumber, Instant creationTimeStamp) { VehicleStatusMessage vehicleMessage = new VehicleStatusMessage(); vehicleMessage.setSequenceNumber(sequenceNumber); vehicleMessage.setCreationTimeStamp(creationTimeStamp); vehicleMessage.setVehicleName(vehicle.getName()); vehicleMessage.setTransportOrderName( vehicle.getTransportOrder() == null ? null : vehicle.getTransportOrder().getName()); vehicleMessage.setPosition( vehicle.getCurrentPosition() == null ? null : vehicle.getCurrentPosition().getName()); vehicleMessage.setState(vehicle.getState()); vehicleMessage.setProcState(vehicle.getProcState()); Triple precisePos = vehicle.getPrecisePosition(); if (precisePos != null) { VehicleStatusMessage.PrecisePosition precisePosElement; precisePosElement = new VehicleStatusMessage.PrecisePosition( precisePos.getX(), precisePos.getY(), precisePos.getZ()); vehicleMessage.setPrecisePosition(precisePosElement); } return vehicleMessage; }
/** * Finds the vehicle with the given name. * * @param name The name of the requested vehicle. * @return A single vehicle that has the given name. * @throws ObjectUnknownException If a vehicle with the given name does not exist. */ public VehicleState getVehicleStateByName(String name) throws ObjectUnknownException { requireNonNull(name, "name"); return orderService.fetchObjects(Vehicle.class, v -> v.getName().equals(name)) .stream() .map(v -> VehicleState.fromVehicle(v)) .findAny() .orElseThrow(() -> new ObjectUnknownException("Unknown vehicle: " + name)); }
@Override public void initialize() { if (isInitialized()) { return; } // Get a kernel reference. try { sharedPortal = portalProvider.register(); } catch (ServiceUnavailableException exc) { LOG.warn("Kernel unavailable", exc); return; } objectService = (TCSObjectService) sharedPortal.getPortal().getPlantModelService(); Set<Vehicle> vehicles = new TreeSet<>(Comparators.objectsByName()); vehicles.addAll(objectService.fetchObjects(Vehicle.class)); JComboBox<TCSObjectReference<Vehicle>> vehiclesComboBox = new JComboBox<>(); vehiclesComboBox.addItem(null); vehiclesComboBox.setRenderer(new StringListCellRenderer<>(x -> x == null ? "" : x.getName())); for (Vehicle curVehicle : vehicles) { vehiclesComboBox.addItem(curVehicle.getReference()); } DefaultCellEditor vehicleEditor = new DefaultCellEditor(vehiclesComboBox); toTable.setDefaultEditor(TCSObjectReference.class, vehicleEditor); toTable.setDefaultRenderer( TCSObjectReference.class, new StringTableCellRenderer<TCSObjectReference<?>>(x -> x == null ? "" : x.getName())); updateElementStates(); initialized = true; }