Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Events und Streams. Ein Virtueller Verstärker Stream (fast immer Daten) Event (fast nie Daten) Stream (fast immer Daten)

Ähnliche Präsentationen


Präsentation zum Thema: "Events und Streams. Ein Virtueller Verstärker Stream (fast immer Daten) Event (fast nie Daten) Stream (fast immer Daten)"—  Präsentation transkript:

1 Events und Streams

2 Ein Virtueller Verstärker Stream (fast immer Daten) Event (fast nie Daten) Stream (fast immer Daten)

3 Main Loop, go home main{ Repeat MyEvent=CheckNextEvent() If(MyEvent=null) {Abarbeiten} Else {HandleEvent(myEvent)} Until(quit)

4 Klassische Abfragen Event Source GetStatus Hauptprogramm Das Hauptprogramm fragt zu bestimmten Zeiten den Status aller möglichen EventSources ab.

5 Events und Listeners Event Source Event Listener Die EventSource muss den Listener kennen !

6 Beispiel Button ActionEvent ActionListener addActionlistener(ActionListener) MyListener=ActionListener Falls was passiert: MyListener.actionPerformed() actionPerformed(ActionEvent)

7 In unserem Fall FloatEvents BooleanEvents =? ActionEvents StringEvents =? SocketEvents IntegerEvents =? AdjustmentEvents

8 FloatControl FloatControl? FloatListener

9 FloatControl? ansprechendes Design intuitive Kontrollelemente

10 Aufrufende Klasse FloatKreis FloatListener EventListener FloatPanel FloatControl erstellt setValue FloatLED Event extends

11 Events Event FloatListener FloatPanel Aufrufende Klasse Event

12 package nano.awt; import java.util.*; public interface FloatListener extends EventListener{ public void FloatEventPerformed(double zahl); } FloatListener

13 Klasse FloatDesign Definiert Farben der Kontrollelemente wie z.B. Zeiger-und Kreisfarbe, sowie -grösse Über Konstruktoren verschiedene Varianten vordefiniert Über Methoden auf einzelne Einstellungen zugreifbar weiteres Vorgehen und Zukunft der Klasse noch nicht klar, u.a. auch wegen Designern

14 Vorteile Möglichkeit der individuellen Gestaltung der Kontrollelemente (Farben) nur eine einmalige Definition nötig wenn gewünscht für alle Elemente gültig

15 Technische Spezifikationen von TCP / IP

16 Was ist ein Socket ? Engl. Stecker, ist aber eher ein Kabel. Kommt von den Inet-Ports. Vollständige Adressierung besteht aus IP-Nummer und Port-Nummer Eine bidirektionale Verbindung zwischen zwei Internet-Ports.

17

18 Verbindungsaufbau Einer ist Server (Derjenige der auf die Verbindung gewartet hat) Einer ist Client (Derjenige der die Verbindung Initiiert hat) Handshaking Pakete werden ausgetauscht (vgl. UDP)

19 Virtuelle Kabel

20 Socket als Kabel LabView als schlechtes Vorbild Wir nehmen Streams anstelle von Zahlen Jede Steckdose erhält den Befehl plug(DataLine) Sie hat eine Instanzvariable MyDestination

21 Abstrakte Klasse DataLine ? Zwei Implementierungen: –TCP / IP Socket (InetAddr, Port, R/W) –Pipe (Pointer auf Pufferbereich) –(+) Schnellere Performance Eine einzige Implementierung: –TCP / IP Socket (InetAddr, Port, R/W) –(+) Universeller, The Net is the Computer

22 Stecker-Metapher Signal kommt immer aus einer Dose (weiblich) Anzeigegeräte (Oszi, Fluke, etc.) haben nur männliche Stecker Damit ist jeder Port männlich oder weiblich

23

24 Signale in Sockets Elektronisches Signal ist eine Funktion R R t U(t) Das Signal soll sich selbst beschreiben. Beschreibung im Ortsraum –Langsame Signale, (Tiefpass) Beschreibung im Fourier-Raum –Schnelle Signale, (Hochpass) II

25 Doppelstecker

26 Selbstbeschreibendes Signal TCP/IP Päckchen von konstanter Grösse (Derzeit 256Byte) In JAVA: Werte von –128 bis +127 !! Erstes Byte=-128 bedeutet Achtung: Beschreibung Zweites Byte gibt an, wieviele Pakete Beschreibung sind.

27 Wie beschreibt sich das Signal XML-Text oder was???? Beschreibung soll beliebig offen sein.

28 Dokumentation und Kooperation mit einem Classpath

29 JAVADOC Auf Nanoworld2 unter D:\development\jdk1.3\docs\tooldocs\wi n32\javadoc.html (Muss noch veröffentlicht werden) Pakete müssen einzeln angegeben werden Bilder und gewisse Tags sind möglich.

30

31 Struktur unseres Classpath nano.paketname.* Paketname sollte dem von java.lang entsprechen. –Bsp. nano.awt.*;

32 Wer darf in den Classpath ? Fertige Klassen (Das bedeutet: Jede Änderung muss mit einer Versionsänderung und dem zugehörigen Datum verbunden sein) Vollständig dokumentiert in Javadoc. Alle modifiers sind durchdacht. Alle Setter und Getter sind vorhanden.

33 Datenbanken Client Server Controller Experiment

34 Was für Klassen gibt es schon? Beachte die strikte Trennung von Funktionalität und GUI Steuerung erfolgt über Kommandos GUI generiert Kommandos (vgl. TCL/TK unter UNIX)

35 Vorhandene Pakete Package nano.awt (Alles was mit GUI zu tun hat) Package nano.net (Alles was mit Netzwerk und Streams zu tun hat) Package nano.compute (Alles was………..weiss auch noch nicht)

36 Das Paket nano.compute

37 Parser-Problem Wir brauchen eine Zuordnung String-Methode Realisiert analog awt.event (Event-Methode)

38

39

40 Simulator API –AddCommand(String, CommandExecutor) –AddInt –AddDouble –AddString –AddBoolean –SetBoolean(String, boolean), sb(), etc.

41

42 Sprachdefinition Basiswortschatz Definiert in der Klasse nano.compute.Simulator: –Set Parameter: name, value Beispiel: command=set, name=speed, value=131.5 –Get Parameter: name –Stop Parameter: keine –Start Parameter: keine

43 Nano.net

44

45 EventClient Local Port Remote IP,Port StreamClient Local Port Remote IP,Port EventServer Local Port StreamServer Local Port EventSocketListener put plug

46

47 EventClient Pool (De- & Multiplexer) EventClient StreamClient EventClient StreamClient EventClient StreamClient EventSocket- Listener EventClient StreamServer MySQL www

48 Pool_UI Pool_UI? Eigenarten der Tabellen in Java

49 Klasse Pool Verwaltung und Bereitstellung von Benutzerdaten, wie: –Anzahl der User im Pool –Name, IP-Adresse und Portnummer –User connected? –addUser()

50 Pool_UI Graphische Benutzeroberfläche der Klasse Pool

51

52

53 Pool_UIPool TableModel JTable setUser Tabelle erstellt Frägt ab

54 Tabellen Model - Viewer Konzept

55 Früher DefaultTableModelDatenJTable

56 Heute TableModel Model Viewer Daten

57 Zuständigkeit TableModel: Datenerstellung, -aufbereitung, -berechnung JTable: Darstellung der Daten

58 Vorteile des Model-Viewer Konzeptes skalierbar Einfachere Handhabung von dynamischen und editierbaren Tabellen Möglichkeit von verschiedenen Viewern Geschwindigkeit

59 How To

60 AbstractTableModel public abstract class AbstractTableModel extends Objects implements TableModel stellt default Implementierungen für die meisten Methoden des TableModel zur Verfügung kümmert sich um die Listener und Events

61 Erstellen einer Tabelle mithilfe des AbstractTableModels Implementation von folgenden Methoden notwendig: public int getRowCount(); public int getColumnCount(); public Object getValueAt(int row, int column);

62 Weitere nützliche Methoden public String getColumnName(int col) public String getColumnCount() / getRowCount public Class getColumnClass(int col) public boolean isCellEditable(int row, int col)

63 Erstellen einer 10*10 - Tabelle TableModel beispielModel = new AbstractTableModel(){ public int getRowCount() {return 10;} public int getColumnCount() {return 10;} public Object getValueAt(int row, int column) {return new Integer(row*col);} } JTable table = new JTable(beispielModel); JScrollPane scrollpane = new JScrollPane(table);

64 TableCellRenderer Renderer: Zuständig für die Darstellung der Zellen JTable besitzt Standard-Renderer Möglichkeit der Individuellen Darstellung von Zellen Nachteil: recht grosser Aufwand für Effizienz nötig

65 Verschieben der Kolonnen

66 Jede Kolonne eigene ID (default: Name der Kolonne) Vorteile: Verschieben der Kolonnen ohne sich um die Änderung der Reihenfolge kümmern zu müssen -> JTable rechnet intern mit ID und stellt es richtig dar

67 Zusammenarbeit mit dem SmartSPM Projekt Hardware-Programmierung

68

69 Stand der Dinge HW.DLL GUI.DLL MIDDLE.DLL COMM.DLL Mainframe TCP/IP

70 Measuring with Super-DAQ TM (PCI or USB) N-Channel Ultrafast AD 4096 bit, 1024 GHz M-Channel Ultrafast DA 4096 bit, 1024 GHz n-Channel Ultraslow Human Input m-Channel Ultraslow Human Output TerraMemory

71 Schichtmodell SuperDAQ HW.DLL BF1.DLLBF2.DLLBF3.DLLBF4.DLLBF5.DLL ADA Funktionalitäts- Layer Hardware- Layer Hardware (1 Layer) Verarbeitungs- Layer UI-Layer JAVA - TCL/TK – TCP/IP - HTTP JAVACFortran

72 Virtueller SuperDAQ DSP Code ADA DSP Code HW.DLL BF1.DLL HW.DLL BF2.DLL BF3.DLL BF4.DLL BF5.DLL Virtual SuperDAQ JAVA - TCL/TK – TCP/IP - HTTP JAVACFortran Funktionalitäts- Layer Hardware- Layer Hardware (2 Layers) Verarbeitungs- Layer UI-Layer


Herunterladen ppt "Events und Streams. Ein Virtueller Verstärker Stream (fast immer Daten) Event (fast nie Daten) Stream (fast immer Daten)"

Ähnliche Präsentationen


Google-Anzeigen