org.opentcs.access.rmi.services.RemoteVehicleService Maven / Gradle / Ivy
/**
* Copyright (c) The openTCS Authors.
*
* This program is free software and subject to the MIT license. (For details,
* see the licensing information (LICENSE.txt) you should have received with
* this copy of the software.)
*/
package org.opentcs.access.rmi.services;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.Set;
import org.opentcs.access.rmi.ClientID;
import org.opentcs.components.kernel.services.VehicleService;
import org.opentcs.data.TCSObjectReference;
import org.opentcs.data.model.Vehicle;
import org.opentcs.data.model.Vehicle.EnergyLevelThresholdSet;
import org.opentcs.drivers.vehicle.AdapterCommand;
import org.opentcs.drivers.vehicle.VehicleCommAdapterDescription;
import org.opentcs.drivers.vehicle.management.VehicleAttachmentInformation;
import org.opentcs.drivers.vehicle.management.VehicleProcessModelTO;
import org.opentcs.util.annotations.ScheduledApiChange;
/**
* Declares the methods provided by the {@link VehicleService} via RMI.
*
*
* The majority of the methods declared here have signatures analogous to their counterparts in
* {@link VehicleService}, with an additional {@link ClientID} parameter which serves the purpose
* of identifying the calling client and determining its permissions.
*
*
* To avoid redundancy, the semantics of methods that only pass through their arguments are not
* explicitly documented here again. See the corresponding API documentation in
* {@link VehicleService} for these, instead.
*
*/
public interface RemoteVehicleService
extends
RemoteTCSObjectService,
Remote {
// CHECKSTYLE:OFF
void attachCommAdapter(
ClientID clientId, TCSObjectReference ref,
VehicleCommAdapterDescription description
)
throws RemoteException;
void disableCommAdapter(ClientID clientId, TCSObjectReference ref)
throws RemoteException;
void enableCommAdapter(ClientID clientId, TCSObjectReference ref)
throws RemoteException;
VehicleAttachmentInformation fetchAttachmentInformation(
ClientID clientId,
TCSObjectReference ref
)
throws RemoteException;
VehicleProcessModelTO fetchProcessModel(ClientID clientId, TCSObjectReference ref)
throws RemoteException;
void sendCommAdapterCommand(
ClientID clientId,
TCSObjectReference ref,
AdapterCommand command
)
throws RemoteException;
void sendCommAdapterMessage(
ClientID clientId,
TCSObjectReference vehicleRef,
Object message
)
throws RemoteException;
void updateVehicleIntegrationLevel(
ClientID clientId,
TCSObjectReference ref,
Vehicle.IntegrationLevel integrationLevel
)
throws RemoteException;
void updateVehiclePaused(
ClientID clientId,
TCSObjectReference ref,
boolean paused
)
throws RemoteException;
@ScheduledApiChange(when = "7.0", details = "Default implementation will be removed.")
default void updateVehicleEnergyLevelThresholdSet(
ClientID clientId,
TCSObjectReference ref,
EnergyLevelThresholdSet energyLevelThresholdSet
)
throws RemoteException {
throw new UnsupportedOperationException("Not yet implemented.");
}
void updateVehicleAllowedOrderTypes(
ClientID clientId,
TCSObjectReference ref,
Set allowedOrderTypes
)
throws RemoteException;
void updateVehicleEnvelopeKey(
ClientID clientId,
TCSObjectReference ref,
String envelopeKey
)
throws RemoteException;
// CHECKSTYLE:ON
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy