/******************************************************** * JINI Projektarbeit
*** Sommersemester 2001 * Thema: Simulation eines Foerderbandes *
in Java/Jini
* * Datei: Foerderbandsteuerung.java * Datum: 11.06.2001 *********************************************************/
import net.jini.core.discovery.LookupLocator; import net.jini.core.lookup.*; import java.rmi.RMISecurityManager; import java.awt.*; import java.io.*; import java.net.*; import java.util.*; import java.util.Vector; /** * Die Klasse
Foerderbandsteuerung ruft controlMotor() beim LookupService auf * * * @author S. Pollmann, O. Stradner, M. Thielicke, R.
Begemann * @version
Java 1.3, JINI 1.1 * @see Foerderband * @see Foerderbandsteuerung * @see JiniInterface * @see Motorsteuerung */ public class Foerderbandsteuerung extends Object { public Foerderbandsteuerung()
{ } /** Initialisierung
des Securitymanagers */ public static
void main (String args[]) throws Exception{ System.out.println
("Initialisierung..."); System.setSecurityManager(
new RMISecurityManager() ); /** Initialisierung
des LUS ( hier muss der aktuelle Hostname eingetragen werden ) */ LookupLocator
locator = new LookupLocator("jini://UNIMATRIX001"); ServiceRegistrar
sr = locator.getRegistrar(); Class[]
classes = new Class[] { JiniInterface.class }; ServiceTemplate
st = new ServiceTemplate( null, // ID classes,
// types null);
// attributes /**Definition
des Interface, dass im LUS regestriert wurde */ JiniInterface
Foerderband=(JiniInterface)sr.lookup(st); /**Definition
eines Vektors mit der Groesse 2 */ Vector v
= new Vector(2); v.setSize(2); int i=0; /** Initialiesirung
der Richtungsvariablen ( links steht fuer Linkslauf, rechts fuer Rechtslauf
) */ String x="links"; while(i<10){ // Initialisierung einer while-Schleife, die Bestimmt,
wieviele Zeitmessungen vorgenommen werden i++; v=Foerderband.controlMotor(x); /* Aufruf
der Methode controlMotor() auf dem Server. Der Methode wird die Laufrichtung
als Integer uebergeben,
diese gibt anschliessend die neue Endposition und die Laufzeit ueber
das Netz, in Form eines Vektors
zurueck*/ String variable
= (String)v.get(1); /* Konvertierung
des Vektorelements, dass die Endposition enthaelt, von einem Objekt
zurueck in einen String*/ if(variable.equals("rechte
Endposition erreicht")) /* if Schleife
zur Bestimmung der neuen Laufrichtung. Falls die
rechte Endposition erreicht wird, wird die Laufrichtung auf 1 respektive
"Linkslauf" gesetzt
und entsprechend andersherum, bei Erreichen der linken Endposition*/ x="links"; else x="rechts"; if(i==1){ System.out.println
("Messung gestartet..."); } else{ System.out.println
("Position: " + v.elementAt(1)); // Ausgabe der aktuellen
Endposition System.out.println
("Laufzeit: " + v.elementAt(0) + " ms"); // Ausgabe
der aktuellen Netzlaufzeit } } } } |