-
Die Erfindung betrifft ein computervermitteltes Kommunikationssystem, als
dessen primäre Anwendung Klassenzimmer oder andere Trainings- oder
Lernumgebungen beabsichtigt sind. Insbesondere betrifft die Erfindung eine
Konfiguration von Computer-Hardware und -Software, die es zwei oder mehr
Benutzern (typischerweise einem Lehrer und einem Studenten) an verschiedenen
Stationen ermöglicht, sich etwas zu teilen, was elektronische Papierblätter
genannt wird.
-
In jüngeren Jahren ist eine Gattung von Trainings-Software aufgetaucht, die
eine gleichzeitige Zweiwege-Kommunikation simuliert. Diese Software bezieht
üblicherweise eine Bedienungsperson an einem Endgerät ein, die die
Steuerung über eine Anwendung an einer anderen Station übernimmt. Obwohl die
Steuerung über die Anwendung zwischen Bedienungspersonen an
verschiedenen Stationen hin und her geht, unterscheiden drei entscheidende
Abweichungen diese Systeme von der vorliegenden Erfindung. Zunächst benötigen
derartige bekannte Systeme stets eine grundlegende Plattformanwendung, etwa
einen Wortprozessor oder ein Spreadsheet. Die vorliegende Erfindung erfordert
keine derartige Plattformanwendung. Zweitens bezieht die vorliegende
Erfindung nicht eine Bedienungsperson ein, die die Steuerung über eine
Anwendung übernimmt. Es können zwei Benutzer die Anwendung gleichzeitig steuern.
Drittens fassen diese Anwendungen kein freihändiges Schreiben oder Zeichnen
zur Simulation des Schreibens und Zeichnens mit Papier und Stift als das
prinzipielle Mittel zur Bewirkung der gemeinschaftlichen Kommunikation ins Auge.
-
Wenngleich es einige Videounterrichtssysteme Lehrern ermöglichen, von einem
Studenten erschaffene Bilder zu übertragen, damit sie an den Stationen eines
gesamten Klassenzimmers erscheinen, und zwar auf eine einzige Art, die der
Erfindung ähnlich ist, beinhalten diese bekannten Systeme keine interaktive
Kommunikation zwischen Lehrer und Student - entweder eins zu eins oder eins
zu einer ausgewählten Gruppe.
-
Bekannte Unterrichtssysteme, wie die im U.S. Patent Nr. 3,401,469 auf Shaver
und im U.S. Patent Nr. 4,486,180 auf Riley gezeigten, sind hinsichtlich ihrer
Flexibilität und Interaktionsfähigkeiten stark beschränkt. Bei Shaver erfolgt die
Interaktion zwischen Student und einer Steuerzentrale über verschiedene
Kanäle, bei denen das Unterrichtsmaterial im voraus vorbereitet wird, dies im
Gegensatz zur vorliegenden Erfindung, bei der das Unterrichtsmaterial
unvorbereitet aufgebaut wird. Die bei Shaver offenbarte Erfindung ist nicht interaktiv,
insofern, als die vorliegende Erfindung für das dem Studenten vorgelegte
Material die Möglichkeit bietet, sich auf Basis einer Antwort des Lehrers auf die
studentische Eingabe zu ändern. Bei Riley wird keine gleichzeitige und
interaktive Kommunikation ins Auge gefaßt, weil das System für standardisierte Tests
vorgesehen ist. Die vorliegende Erfindung stellt ein Medium für gleichzeitig
geschriebene Interaktionen zwischen Lehrer und Student bereit.
-
Andere bekannte Systeme beinhalten die Verwendung im voraus festgelegter
ruhender Videoinformationen, wie etwa U.S. Patent Nr. 4,052,798 auf Tomita et
al. Die vorliegende Erfindung verteilt Informationen interaktiv durch den Lehrer,
wenn der Student arbeitet. Es besteht keine Notwendigkeit, Informationen im
voraus festzulegen, und sie sind nicht "ruhend", insofern, als das vom
Studenten gesehene Videobild stets Änderungen durch den Lehrer unterliegt.
-
Viele bekannte Systeme sind nicht auf geschriebene Textkommunikation
anwendbar, die die effektivste Art und Weise ist, Grammatik oder Mathematik
usw. zu lehren. Das U.S. Patent Nr. 3,233,346 auf Cornberg beinhaltet die
Verwendung eines Telefonsystems für den Studenten, um mit dem Lehrer zu
kommunizieren, während der Student eine Videoanzeige des Lehrers sieht. Die
bei Cornberg offenbarte Erfindung ist stark beschränkend, insofern, als sie
eines der fundamentalsten Kommunikationsmittel nicht erlaubt, das der
Schreibmodus ist, in dem Student und Unterrichtungsperson kommunizieren
können.
-
Auch gegenwärtig bekannte Software-Produkte wie "Carbon Copy", hergestellt
von Meridien Technology, einer Tochter von Microcom, Inc., erlauben keine auf
einer unvorbereiteten freihändigen Eingabe basierende Interaktion und beruhen
auf der Verwendung vorbestehender Anwendungssoftware statt des
anwendungsfreien Kontexts, den die vorliegende Erfindung vorsieht. Von allen
bekannten computerunterstützten Unterrichtssystemen sieht keines eine
interaktive freihändige Eingabe in einem anwendungsfreien Kontext vor.
-
In der EP-A-0 321 084 ist ein computerunterstütztes elektronisches
Informationsbereitstellungssystem nach dem Oberbegriff des Anspruchs 1 offenbart. Die
vorliegende Erfindung ist gegenüber dieser Offenbarung durch die
kennzeichnenden Merkmale des Anspruchs 1 abgegrenzt.
-
Die Erfindung ist in ihrer einfachsten Form ein computerunterstütztes
Unterrichtssystem für ein Klassenzimmer, das es einem Lehrer erlaubt, ein
elektronisches Blatt Papier mit einem oder mehreren Studenten in dem Klassenzimmer
zu teilen, was es sowohl Lehrer als auch Student ermöglicht, nahezu
gleichzeitig von verschiedenen Teilen des Zimmers aus auf dem "Blatt" zu schreiben.
Nach seiner Wahl und seiner Geschwindigkeit kann der Lehrer zwischen den
Studenten wechseln, wobei er deren Arbeitsraum beobachtet und
gemeinschaftlich nutzt, wie es deren Belange erfordern.
-
Das erfinderische Konzept besteht bei der bevorzugten Ausführungsform aus
dem folgenden. Jeder Schreibtisch eines Studenten ist mit einem 14"-Monitor
(d. h. "Bildschirm" oder "Anzeige") ausgestattet. Die Monitoroberfläche liegt
flach auf dem Schreibtisch, fluchtet mit der Tischoberfläche und ist mit einem
beigefügten Griffel ausgerüstet, der so wie ein Stift mit Faserspitze aussieht,
jedoch eine harte Spitze aufweist. Die Station des Lehrers ist ebenfalls mit
einem Monitor ausgestattet (und kann auch mit einer Reihe kleiner Monitore
verbunden sein). Alle Studentencomputer sind mit der Station des Lehrers
verbunden. Wenn ein Student mit dem Griffel physikalisch auf der Oberfläche
seines Monitors schreibt, erscheint das geschriebene Bild nicht nur auf der
Anzeige dieses Studenten, sondern wird gleichzeitig auch zur Station des
Lehrers übertragen. Der Lehrer kann passiv die Arbeit des Studenten beobachten
oder tatsächlich mit dem Studenten interagieren, indem er auf seiner Station
vor der Klasse schreibt, wobei sich das Bild zurück zum Studenten auf dessen
Anzeige bewegt. Der Lehrer und der Student teilen sich letztlich ein
elektronisches Blatt Papier. Beide können tatsächlich mit verschiedenen elektronischen
Papierblättern arbeiten und können "sie hin und her schieben", wie man aus
einem Notizbuch genommene lose Seiten hin und her schieben kann. Der
Lehrer kann das Bild von einem Studenten zur gesamten Klasse oder zu einer
Untergruppe der ganzen Klasse übertragen. Mit einem Scanner kann der
Lehrer Bilder von Problembögen, Übungsbögen oder auch Tests an alle Studenten
schicken, indem er sie nahezu direkt vom Papier auf die Anzeigen der
Studenten kopiert. Die Studenten können, soweit zweckmäßig; echte gedruckte
Kopien ihrer Arbeit erhalten oder ihre Arbeit von einer Unterrichtsstunde bis zur
nächsten speichern. Der den Studentenmonitor beherbergende Schreibtisch
wird eine Schiebeabdeckung aufweisen, um den Monitor zu schützen, wenn er
nicht in Gebrauch ist.
-
Wenn die Station des Lehrers mit einem einzelnen Monitor ausgestattet ist,
wird er nur durch Berühren eines Bilds (oder "Icons") auf seinem Monitor von
vorne auswählen können, welches Studenten Arbeit anzuschauen ist. Weil alle
studentischen Aktivitäten zur Station des Lehrers übertragen werden, wenn
diese Aktivitäten stattfinden, wird das Bild der Arbeit des neu ausgewählten
Studenten sofort auf der Anzeige des Lehrers erscheinen.
-
Im Mathematikunterricht beispielsweise können ein Lehrer und ein Student von
verschiedenen Orten in einem Klassenzimmer aus zusammen an demselben
Problem arbeiten. Insbesondere kann sich der Lehrer die Arbeit eines
Studenten ansehen und rasch Vorschläge oder Anmerkungen auf das Blatt des
Stu
denten schreiben. Der Student kann in ähnlicher Weise Fragen an den Lehrer
richten.
-
Der Lehrer kann es auch vorziehen, sich an alle Studenten gleichzeitig wieder
zu wenden. Wenn beispielsweise der Lehrer ein Geometrieproblem aufwirft,
das er an alle Studenten übermittelt, kann er einige Minuten warten, sie
beobachten und ihnen bei der Arbeit helfen und ihnen allen dann einige weitere
Informationen schicken, um beim nächsten Schritt des Problems zu helfen.
-
Bei Ausstattung mit einem Monitor hinreichender Auflösung und Fähigkeit zu
geteiltem Bildschirm oder bei Ausstattung mit mehr als einem Monitor kann der
Lehrer gleichzeitig die Arbeit mehrerer Studenten betrachten und mit ihnen
kommunizieren.
-
Es ist eine Aufgabe der Erfindung, es einem Studenten und einem Lehrer zu
ermöglichen, von verschiedenen Orten aus sich ein elektronisches Blatt Papier
zu teilen, wobei der Begriff "teilen" bedeutet, daß sowohl der Lehrer als auch
der Student gleichzeitig von verschiedenen Orten aus auf dem elektronischen
Blatt Papier schreiben oder zeichnen können, wobei das von einem erzeugte
Bild auf dem Bildschirm des anderen oder beider erscheint.
-
Es ist eine weitere Aufgabe der Erfindung zumindest in ihren bevorzugten
Formen, es einem Studenten und einem Lehrer zu ermöglichen, sich ein
elektronisches Blatt Papier von verschiedenen Orten aus zu teilen, wobei der Begriff
"teilen" auch bedeutet, daß sowohl der Lehrer als auch der Student gleichzeitig
von verschiedenen Orten aus auf diesem Papier tippen können, wobei der von
einem erzeugte Text auf dem Bildschirm des anderen erscheint.
-
Es ist eine weitere Aufgabe der Erfindung zumindest in ihren bevorzugten
Formen, daß ein Lehrer die geschriebene Arbeit von Studenten überwachen kann,
indem er elektronisch auswählt, welches Studenten Papier an der Station des
Lehrers aufscheint. Beispielsweise erscheint durch Aktivieren eines einem
bestimmten Studenten entsprechenden Icons (das auf dem Monitor des
Lehrers aufscheint) das momentane Bild für diesen Studenten dann auf dem
Monitor des Lehrers, und der Lehrer und der Student können gemeinsam fortfahren,
an dem Bild zu arbeiten.
-
Es ist eine weitere Aufgabe der Erfindung zumindest in ihren bevorzugten
Formen, daß der Lehrer das gleiche Bild an eine Gruppe von zwei oder mehr
Einzelpersonen übertragen kann und der Lehrer in der Lage ist, auf seinem/ihrem
Bildschirm zu schreiben, wobei das Ergebnis gleichzeitig auf allen Stationen
erscheint, die an diesem Bild teilnehmen. In der Tat kann eine gesamte Gruppe
gleichzeitig auf demselben elektronischen Blatt arbeiten.
-
Es ist noch eine weitere Aufgabe der Erfindung zumindest in ihren bevorzugten
Formen, daß Studenten diskret mit Lehrern kommunizieren können, indem sie
sich bei dem Lehrer auf eine Art und Weise melden, bei der nur der Lehrer und
der Student sehen können, daß der Student eine Frage stellen möchte. Der
Student kann Fragen für den Lehrer auf seiner Anzeige und der Anzeige des
Lehrers niederschreiben, ohne daß der Rest der Klasse in diese
Kommunikation eingeweiht wäre.
-
Das Erreichen der vorstehenden und verwandter Ziele, Vorteile und Merkmale
der Erfindung sollte für einen Fachmann nach Durchsicht der folgenden
detaillierteren Beschreibung einiger Ausführungsformen der Erfindung leichter
ersichtlich sein, bei denen:
-
Fig. 1 eine Außenperspektivansicht eines Klassenzimmersystems gemäß der
vorliegenden Erfindung ist;
-
Fig. 2 eine schematische Übersichtsdarstellung ist, die die
Hardwarekomponenten und -verbindungen der vorliegenden Erfindung zeigt;
-
Fig. 3A und 3B Flußdiagramme liefern, die die allgemeine Arbeitsweise der
vorliegenden Erfindung zeigen, wobei Fig. 3A die drei
Kommunikationssysteme (vom Stift, vom Netzwerk und zum Netzwerk) herausstellt und Fig. 3B die
Hintergrundarbeitsweise vorrangig der graphischen Benutzerschnittstelle (GUI)
darstellt;
-
Fig. 4A und 4B in Flußdiagrammform spezielle Betriebsabläufe des ersten
Kommunikationssystems (vom Stift) darstellen;
-
Fig. 5A und 5B in Flußdiagrammform den tatsächlichen Inhalt des zweiten
und dritten Kommunikationssystems (zum und vom Netzwerk) darstellen;
-
Fig. 6 in Diagrammform die prinzipielle Routine darstellt, die das erste
Kommunikationssystem mit dem zweiten und dritten Kommunikationssystem
zusammenführt;
-
Fig. 7 in Diagrammform darstellt, wie die Implementierung der vorliegenden
Erfindung Netzwerkübertragungen handhabt, wenn diese in rascher Folge
angefordert werden; und
-
Fig. 8 in Diagrammform die Quelldatei SLATE. C darstellt, die die Start-
Hauptfunktion und die Initialisierung des Erfindungssystems bis zur Übernahme
des Programms durch die graphische Benutzerschnittstelle (GUI) beinhaltet.
-
Wenngleich die Erfindung für Ausführungen in vielen verschiedenen Formen
zugänglich ist, ist eine bevorzugte Ausführungsform der Erfindung in den
Zeichnungen gezeigt und hier im Detail beschrieben. Es ist jedoch zu
verstehen, daß die vorliegende Offenbarung als beispielhafte Verdeutlichung der
Prinzipien der Erfindung anzusehen ist und den Umfang der Erfindung und/oder
der Ansprüche nicht beschränken soll.
-
Wenn man sich nun den Zeichnungen, insbesondere Fig. 1, zuwendet, so ist
dort eine Reproduktion eines Klassenzimmers dargestellt, in dem die
vorlie
gende Erfindung implementiert ist. Ein repräsentativer Schreibtisch (101) nimmt
die Software und Computer-Hardware für Lehrer oder Schüler auf Ein
Computer (100) ist mit einem Monitor (102) verbunden, dessen Anzeige (z. B.
Kathodenstrahlröhre (CRT) oder Flüssigkristallanzeige (LCD)) in Flucht mit der
Oberfläche des Schreibtisches liegt. 102 stellt die Oberfläche des Monitors dar. Eine
optionale Tastatur (103) kann außerdem mit dem Computer (100) verbunden
sein. Ein herkömmlicher Netzwerkbus (112) verbindet sämtliche einzelnen
Schreibtische (101, 106 und 151 bis 161). Ein derartiger Netzwerkbus 112 kann
durch das realisiert werden, was als serielle Kommunikation bekannt ist, wird
aber typischerweise mit Hilfe von Netzwerkprotokollen realisiert sein, die bei
höheren Geschwindigkeiten (mehr als 1,0 Megabit pro Sekunde) arbeiten, als
sie üblicherweise unter seriellen Protokollen verfügbar sind. Häufig verwendete
Standardprotokolle für solche Netzwerke werden von Novell, Inc., (z. B.
"Netware") und von International Business Machines (IBM) (z. B. "NetBIOS")
produziert. Diese herkömmlichen Netzwerke stellen für Computer die Mittel bereit,
um miteinander zu kommunizieren. Die Software-Komponente der Erfindung
kann in einem Plattenlaufwerk oder in einem "Nur-Lese-Speicher" an jeder
Station (also in dem bei 100 dargestellten Computer) oder an der zentralen
Lehrerstation (106) gespeichert werden. Bei der bevorzugten Ausführungsform
ist die Software in einem Plattenlaufwerk (nicht gezeigt) an der Lehrerstation
gespeichert. Wenn der Schüler an einer Studentenstation die Software
verwendet, wird eine Kopie hiervon über den Netzwerkbus (112) geschickt und in dem
"Direktzugriffsspeicher" (oder "RAM") des Benutzercomputers (101) gespeichert
und läuft auf diesem Computer.
-
Bei einer alternativen Ausführungsform ist es möglich, daß die
Studentenstationen (101 und 151-161) nicht wirklich Computer mit "zentralen
Verarbeitungseinheiten" beherbergen, sondern statt dessen nicht nur ihren Plattenspeicher
von der Lehrerstation (106) beziehen, sondern auch ihren RAM-Speicher und
ihre Rechenleistung vom Computer an der Lehrerstation beziehen. In diesem
Fall würde jede Studentenstation als sogenanntes "Terminal" dienen und
keinen Computer 100 enthalten. Fig. 2, die untenstehend erläutert wird, sieht
eine schematische Darstellung der Verbindungen des Netzwerkbusses (112)
vor.
-
Verbunden mit dem Computer ist außerdem ein Freestyle-Handschreibsystem
(104), um für den Benutzer die Möglichkeit zu simulieren, entweder auf dem
Monitor oder auf einer über dem Monitor ruhenden Glas- oder glasartigen
Sensorplatte (105) zu "schreiben", so wie man mit einer Feder oder einem Bleistift
auf einem Stück Papier "schreiben" würde. Die Anzeige des Monitors (102) ist
somit direkt unterhalb des Glassensors (105) und wird durch diesen hindurch
gesehen. Fig. 1 stellt eine mögliche Schreibkonfiguration dar, nämlich das
Aufscheinen des gleichen Bilds an allen Schreibtischen, wenn der Lehrer
selbiges Bild an alle Studenten übermittelt. Das Handschreibsystem kann aus einem
verkabelten oder schnurlosen Lichtstift bestehen, bei dem der Stift
Videosignale übersetzt und so mit einer Schnittstellenkarte (207 der Fig. 2) integriert ist,
daß Koordinaten der Stiftposition auf dem Bildschirm an die zentrale
Verarbeitungseinheit des Computers gesendet werden. Der Monitor selbst kann so
aufgebaut sein, daß er die Erfassung von Koordinaten erlaubt, wenn sich ein
stiftartiges Objekt über seine Oberfläche bewegt, wie es bei sogenannten
Berührbildschirmen geschieht. Das System kann schließlich außerdem aus einem
stiftartigen Objekt und einer direkt über der Monitoroberfläche angeordneten
Glasplatte oder glasartigen Platte bestehen, die mit der Hardware in solcher
Weise zusammengeschaltet sind, daß Koordinatenpositionen an den Computer
weitergegeben werden, wenn sich der Griffel über die Oberfläche der Platte
bewegt.
-
Die Implementierung der bevorzugten Ausführungsform beinhaltet jedoch
keinen Lichtstift oder einen Berührbildschirm. Statt dessen ist, wie angesprochen,
eine Sensorplatte (105) über dem Monitor (2) angebracht, und es ist die
Kombination aus Sensorplatte und Griffel statt Monitor und Lichtstift, die die Signale
erzeugt.
-
Die Aufnahme und der Computer für die Lehrerstation (106) können
physika
lisch identisch zu denen jeder einzelnen Studentenstation sein, wenngleich es
wahrscheinlich ist, daß eine Lehrerstation eine optionale Druckerhalterung
(110) aufweisen kann. Jede Studentenstation kann ebenfalls eine derartige
optionale Druckerhalterung aufweisen.
-
Die Anzeige des Lehrers kann zudem - nach Wahl des Lehrers - "Icons" (111)
aufweisen, die in der Anzeige erscheinen. Ein "Icon" ist ein kleines graphisches
Symbol, das dann, wenn es von dem Benutzer aufgerufen wird, dem Benutzer
einen Zugang zu den Informationen oder Prozessen bereitstellt, die das Symbol
repräsentiert. Bei dieser Implementierung ist jeder Student an den Stationen
101 und 151 bis 161 durch ein gesondertes Icon repräsentiert. Wenn der
Lehrer den Bildschirm dort berührt, wo ein Icon für einen Studenten aufscheint,
können der Lehrer und dieser Student eine handschriftliche
Gemeinschaftsbildschirmkommunikation beginnen. Dies bedeutet, daß beide (mit Hilfe des
Stiftsystems (104)) an seiner oder ihrer eigenen Station schreiben können und das
durch den Schreibvorgang des jeweiligen Benutzers erschaffene Bild nicht nur
an der Station dieses Benutzers erscheint, sondern auch an der Station des
anderen Benutzers.
-
Fig. 2 stellt die physikalischen Komponenten des Systems vollständiger dar.
In Fig. 2 sind drei gesonderte und identische Benutzer- oder Student/Lehrer-
Stationen dargestellt (270, 271, 272). Es wird nur eine dieser Stationen (270)
hier beschrieben, wobei zu verstehen ist, daß die anderen beiden Stationen
identisch sind (außer wie angegeben). Die zentrale Verarbeitungseinheit mit
Busschnittstelle (213) ist mit den übrigen Computersystemen (209) verbunden
(214), die einen Speicher (212) (d. h. Primärspeicher oder "RAM";
Sekundärspeicher wie etwa Plattenlaufwerk oder "Nur-Lese-Speicher" ("ROM")), eine
Peripherieschnittstelle (z. B. serielle und parallele Tore) (217), zusätzliche Chips
(wie etwa den standardmäßigen "8259"-Interrupt-Controller, der externe
Interrupts (wie sie etwa von einer seriellen Schnittstelle ausgegeben werden) für
eine zentrale Verarbeitungseinheit priorisiert) und die Netzwerkschnittstelle
(208) umfassen, die den Computer mit dem physikalischen Mittel versieht, um
mit anderen Stationen über den Netzwerkbus zu kommunizieren. Die zentrale
Verarbeitungseinheit mit Busschnittstelle (213) und die
Kommunikationsleitungen zu den übrigen Komponenten (212, 217, 210, 208 und interne
Kommunikationen 215 und 216) bilden 260, das Computersystem (100) der Fig. 1.
-
Bei der Implementierung der bevorzugten Ausführungsform kann der Computer
(zusammengesetzt aus 260 und 209) ein IBM-kompatibles System mit einem
herkömmlichen Intel 80386-Prozessor (enthalten als Teil von 213), mit einem
standardmäßigen Interrupt-Controller (enthalten in 217), einem seriellen Tor
(enthalten in 210) und einem "Invisible Network" Novell NetBIOS-kompatiblen
Netzwerksystem (mit Schnittstellenkarte, dargestellt als 208) von Invisible
Software, Inc., Foster City, CA, umfassen. Bei der bevorzugten Ausführungsform ist
die zentrale Verarbeitungseinheit an der Lehrerstation (253) durch die
Verarbeitungsleistung zumindest eines 80386-Chips mit der Fähigkeit, auf große
Direktzugriffsspeicherblöcke (größer als 640 Kilobyte) zuzugreifen, wie auch der
Fähigkeit, große RAM-Blöcke als Hochgeschwindigkeitsersatz für einen
sekundären (z. B. Platten-) Speicher zu nutzen, signifikant erweitert, wobei an den
Studentenstationen ein weniger hochentwickelter Chip (z. B. 8088) verwendet
werden kann.
-
Das Handschreibsystem ist hier als 204 gezeigt, wobei es aus dem Stift oder
Griffel (206) (104 in Fig. 1), einem über dem Monitor (203) angeordneten
Sensor (205) und dem Schnittstellensystem (207) (außerhalb der Sicht in Fig.
1, jedoch in dem Schreibtisch (101) untergebracht) besteht, das die
Stiftbewegungen auf dem Sensor in Ereigniscodes und Koordinatenpositionen zur
Übertragung (218) zurück zum peripheren Schnittstellensystem übersetzt. Bei der
Implementierung der bevorzugten Ausführungsform geschieht diese
Übertragung über eine serielle Verkabelung. Ein derartiges System (204) ist als
ScreenwriterTM-System von Microtouch Systems, Inc., 55 Jonspin Road,
Wilmington, MA 01887, USA, erhältlich. Wenn ein System wie der Screenwriter
das Eingabemedium für das bei 301, 332 und 333 der Fig. 3A dargestellte
Dreikommunikationssystem und die in Fig. 3B dargestellte graphische
Benut
zerschnittstelle ist, wird das Gemeinschaftsbildschirmschreiben der Erfindung
bewirkt. Die einzelnen Stationen sind über die Netzwerkverkabelung (273, 274)
miteinander verbunden.
-
Fig. 2 stellt zwei Studentenstationen (270 und 271) sowie eine Lehrerstation
272 dar. Die Studentenstation 271 und die Lehrerstation 272 umfassen die
gleichen Komponenten (mit Ausnahme der zuvor angesprochenen zentralen
Verarbeitungseinheit (253) an der Lehrerstation). Bezeichner 221 bis 238
entsprechen somit identisch den Bezeichnern 201 bis 218, wie es Bezeichner 241
bis 258 tun.
-
Fig. 3A zeigt die drei gleichzeitig arbeitenden Kommunikationssysteme an
einer einzelnen Benutzerstation (entweder Lehrer oder Student) bei dieser
Implementierung der Erfindung, die als Einfügungen in den drei gestrichelten
Kästen (301, 332, 333) in Fig. 3A gezeigt sind. Das erste (301) beinhaltet die
freihändige Stifteingabe von einem Benutzer. Das zweite (332) beinhaltet
Übertragungen, die von anderen Stationen über das Netzwerk zum Benutzer
geschickt werden. Das dritte (333) beinhaltet Übertragungen, die von dieser
Station über das Netzwerk zu anderen Stationen gesendet werden.
-
Die Fig. 4-7 stellen die wichtigsten Funktionen hinsichtlich der kritischen
gleichzeitigen Kommunikationssysteme dar, die eine gemeinschaftliche
Schreiboberfläche bewirken.
-
Fig. 3B zeigt das "Hintergrund"-System, das die graphische
Benutzerschnittstelle (GUI) umfaßt und dem Benutzer die benutzerseitige Eingabe oder die
Eingabe von anderen Stationen in dem Netzwerk anzeigt.
-
Die Implementierung beginnt die Ausführung mit der Initialisierung aller
Kommunikationssysteme, des GUI-Managementsystems und anderer Merkmale der
Ausführungsumgebung (312). (Das GUI-System bei dieser Implementierung
wurde von Richard Tom von TEGL Systems, Inc., Vancouver, BC, Kanada, als
graphische Werkzeugbox entwickelt.)
-
Die Software-Anwendung selbst läuft dann wie eine kontinuierliche Interaktion
von vier Systemen ab: der drei Kommunikationssysteme (vom Stift zur
Software-Anwendung (301), von der Software-Anwendung nach außen zu anderen
Stationen in dem Netzwerk (333) und zur Software-Anwendung von anderen
Stationen in dem Netzwerk (332) und dem GUI-Managementsystem (Fig. 3B).
-
Zu Beginn des Programms wird davon ausgegangen, daß der Stift weg von der
Eingabeoberfläche ist (303). Der den Stift haltende Benutzer (302) kann den
Stift von der Oberfläche entfernt halten, den Stift auf die Oberfläche aufsetzen
(305) oder den Stift über die Oberfläche in schreibender oder zeichnender
Weise bewegen (306). Von einer Aufsetz- oder einer Bewegungsposition kann
der Benutzer den Stift von der Oberfläche abheben (304). Ein Interrupt wird
immer dann ausgegeben, wenn sich der Status des Stifts ändert (353, 357 und
355 führen zu einem Interrupt 354; 352, 358 und 356 führen zu einem Interrupt
397; 359 und 361 führen zu einem Interrupt 360). Der Interruptbehandler erhält
den Interrupt und beginnt mit der Verarbeitung von fünf Informationsbytes
desselben: des Befehlsfelds und zweier Koordinaten für jede der x- und
y-Koordinaten, die den Ort des Stifts auf dem Sensor bei Auftreten des Interrupts
identifizieren. Die prinzipielle Routine zur Durchführung der Interruptbehandlung ist
int_getxy, die in den Fig. 4A und 4B dargestellt ist.
-
Das gestrichelte Rechteck 333 der Fig. 3A stellt das zweite der drei
gleichzeitigen Kommunikationssysteme dar. Wenn von der int_getxy-Routine
Koordinaten verarbeitet werden, erfolgt eine Auswertung, ob die Eingabe zu übertragen
ist, entsprechend 334 der Fig. 3A. Wenn die Daten übertragen werden sollen,
werden sie an die Sendewarteschlange zur Übertragung zu geeigneten anderen
Stationen mittels der send_que-Routine geschickt. Dieses
Kommunikationssystem beinhaltet die Übertragung eines Datenpakets, das die Koordinaten- und
Ereignisinformationen enthält. (Fig. 7 stellt die send_que-Routine dar.)
-
Das untere linke gestrichelte Rechteck (332) der Fig. 3A stellt das dritte
Kommunikationssystem dar, nämlich eingehende Übertragungen. Weil die
Übertragungsgeschwindigkeiten über ein Netzwerk (z. B. über das Ethernet)
üblicherweise schneller als die Signale von einer Eingabevorrichtung (z. B. unter
seriellen Protokollen) sind, ist es tatsächlich möglich, daß von zwei oder mehr
Individuen, die sich den gleichen Bildschirm gemeinschaftlich teilen, die
Eingabe eines "entfernten" Schreibers schneller auf dem Bildschirm erscheinen kann
als eine des "lokalen" Schreibers. Die Software-Anwendung verarbeitet
eingehende Koordinaten vom Stift oder von entfernten Orten auf
Interruptmanagement-Basis und gibt Benutzern den Anschein von Gleichzeitigkeit. (Fig. 5 stellt
den Netzwerkkommunikationsprozeß in näherer Einzelheit dar.)
-
Eine ferne Station sendet eine Netzwerkübertragung mit einem Koordinaten-
und Ereignisinformationen enthaltenden Paket (311, 365) an die
Benutzerstation. Wenn das Paket an der fokalen Station ankommt, wird ein
Netzwerkinterrupt ausgegeben (311), der das Paket in eine Empfangswarteschlange (rec_int)
setzt, wenn er bedient wird.
-
Die Daten werden aus der Warteschlange kopiert (310), und die
Koordinatenwerte werden berechnet (309), um sie so zu verwenden, als wenn sie von der
Eingabevorrichtung stammen würden. Ein seiteninterner Verbinder C (328)
führt zu einem seiteninternen Verbinder C (327) zwecks Verarbeitung durch die
GUI (Fig. 3B) somit auf dem gleichen Weg (seitenübergreifende Verbinder D
(395 in Fig. 3A und 396 in Fig. 3B)) wie die Stifteingabe (372 und 367).
Sobald entweder von einer Netzwerkübertragung oder einem Interrupt vom Stift
Koordinaten verfügbar sind, verarbeiten verschiedene GUI-Funktionen,
insbesondere einschließlich Zeichenmaus (dargestellt in Fig. 6), die Koordinaten,
um den benutzerseitigen Ansichtsbereich zu aktualisieren. Wenn somit der Stift
(entweder an der lokalen oder der entfernten Station) aufgedrückt wird (315),
muß der Ort des gedrückten Bereichs ausgewertet werden. Wenn der (lokale)
Benutzer versucht, auf ein "Dropdown"-Menü zuzugreifen, oder durch Berühren
einer "Taste" auf dem Bildschirm auf eine Option zuzugreifen versucht (316)
(beispielsweise um den Stift vom Schreibmodus auf einen Radiermodus zu
ändern), wird die Auswahl verarbeitet (320-321). Wenn der (lokale oder
entfernte) Benutzer stattdessen fortfährt, den Stift in einem Schreibbereich
aufzudrücken (317), wird eine Linie gezeichnet, um den Ort dieses Aufdrückens mit dem
letztvorhergehenden zu verbinden (318). (Diese "Linien" sind extrem kurz und
geben das Aussehen glatten, kontinuierlichen Zeichnens oder Schreibens.) Wie
das Zeichenmaus-Diagramm der Fig. 6 angibt, kann diese "Verbindender-
Punkte"-Aktivität das Wegradieren von Teilen des Bildschirms bilden, wenn
sich der Benutzer im Radiermodus befindet. Wenn das Aufdrücken des Stifts
(317) in Wirklichkeit ein "Aufsetzen" statt eines "kontinuierlichen Zeichnens" ist,
werden die Koordinaten zur späteren Verbindung gespeichert. Die Zeichen-
Routine prüft dann, um festzustellen, ob der (lokale oder entfernte) Benutzer
mit dem Schreiben weitermacht oder den Stift von der Oberfläche des
Bildschirms abgehoben hat.
-
Seitenübergreifende Verbinder A (308, 323, 325 und 350 in Fig. 3B)
repräsentieren einen Fluß der Steuerung zurück zu einem seitenübergreifenden
Verbinder A in Fig. 3A (300), und zwar zu den Routinen, die den Status des Stifts
auswerten. Dieser Steuerungsfluß tritt jedoch nur dann auf, wenn die
Stiftaktivität einen Interrupt der GUI erzeugt hat, um anzuzeigen, daß sich der Stiftstatus
oder die Stiftposition geändert hat. Seitenübergreifende Verbinder B (326, 330,
324 und 331 in Fig. 3B) repräsentieren einen ähnlichen Steuerungsfluß zu
einem seitenübergreifenden Verbinder B in Fig. 3A (329), um zu bestimmen,
ob Netzwerkübertragungen verfügbar sind, obwohl die GUI in systematischer
Weise (mit der Prüfnetzfunktion der Fig. 5) prüft, um zu bestimmen, ob
Netzwerkinterrupts irgendwelche Koordinatendaten von einem entfernten
Benutzer zurückgelassen haben, die in der Netzwerk-"Warteschlange" verfügbar
sind.
-
In den Fig. 3A und 3B bezeichnet eine Anzahl markierter Verbindungen die
Abfolge der vorstehend angesprochenen Operationen und der Auswertung des
Befehlsfelds. Diese markierten Verbindungen umfassen 351-353, 355-359,
361-364, 366-367, 370-382, 384-387, 389-394 und
397-399. Alle diese
Verbindungen repräsentieren standardmäßige Steuerungsflußwege.
-
Die Fig. 4A und 4B stellen die Funktion int_getxy dar, die von der
Stiftschnittstelle (207 in Fig. 2 und 354, 360, 397 in Fig. 3A) ausgegebene
Interrupts verarbeitet. Die Funktion (401) beginnt durch Vorbereitung des Typs von
maskierbarem Interrupt, der von der Schnittstelle ausgegeben wird (402). Das
Kommunikationsregister, das angibt, ob serielle Daten angekommen sind und
darauf warten, an einem Eingangstor aufgenommen zu werden, wird im
Hinblick auf die Verfügbarkeit eingehender Daten getestet (403). Falls nicht
(453A), wird das Übertragungsregister getestet (404). Falls es nicht leer ist,
beginnt das Verlassen der Funktion, indem diese zu den Zeilen springt (454B),
welche den Interruptmerker löschen und die Funktion beenden. Wenn das
Übertragungsregister leer ist (454A), wird ein weiterer Test bei dieser
Implementierung daraufhin benötigt, ob vor dem Ende ein XON ausgegeben werden
muß (406A). Falls nicht (456), springt die Funktion (457) zu den Endezeilen,
genauso wie sie es nach Ausgabe eines XON (406B) tut, sofern eines nötig ist
(455). Der Zweck dieser int_getxy-Funktion ist, ein positives Ergebnis des Tests
(403) nach eingehenden Daten zu verarbeiten. Wenn Daten verfügbar sind
(453B), werden sie am Eingangstor gelesen (405) und untersucht.
-
Falls das Byte in einen bestimmten Bereich fällt, ist es das erste eingehende
Byte (oder Kopf-Byte (407)) einer Folge von fünf Bytes von der
Stiftschnittstelle, die eines von drei Stiftereignissen (Hochheben, Aufsetzen oder Fortfahren
mit Zeichnen) und die Koordinatenposition des berichteten Ereignisses
angeben. Wenn das Byte ein Kopf ist (439B), wird das berichtete Ereignis
aufgezeichnet und ein Zähler für die übrigen vier Bytes initialisiert (409). Das
Kommunikationsregister zur Meldung, daß ein weiteres Datenbyte angekommen ist
und bereit zur Entgegennahme ist, wird getestet (408). Wenn das Ergebnis
positiv ist (499A), kehrt der Steuerungsfluß zurück zu dem Code, der die Daten
liest (405), was in dem Diagramm durch einen seiteninternen Verbinder A (443)
zu einem seiteninternen Verbinder A (400) gezeigt ist. Ein negatives Ergebnis
bei
408 setzt den Prozeß zur Beendigung der Funktion in Gang (4998).
-
Nach Initialisierung des Zählers werden die anschließenden vier Bytes bei 410
bis 413 ausgewertet und verarbeitet. Jedesmal, wenn eines der vier Bytes
verarbeitet wird, wird der Zähler erhöht und das Byte zur Übersetzung in
bildschirmabbildbare x- und y-Koordinaten gespeichert (414-417). Die
Stiftschnittstelle gibt bei dieser Implementierung einen Punkt in einem 1024 · 1024
Punkte-Gitter auf dem Sensor (205 in Fig. 2) an. Die Bildschirmauflösung kann 640
· 480 sein. Die ersten zwei Bytes (410 und 411) melden die horizontale
Position, die zweiten zwei Bytes (412 und 413) melden die vertikale Position. Somit
kann nach Verarbeitung des zweiten Bytes die x-Koordinate für den Bildschirm
berechnet werden (418) und nach dem vierten Byte die y-Koordinate für den
Bildschirm berechnet werden (419). Bei 419 wird außerdem ein XON
ausgegeben, um anzuzeigen, daß die erwartete volle Sendung mit fünf Bytes erhalten
wurde.
-
Sobald der Kopf und die Koordinaten aufgenommen und anfänglich verarbeitet
sind, werden sie so weiterverarbeitet, daß die GUI die Anzeige aktualisieren
kann. Dies beinhaltet das Testen des Kopf-Bytes auf die drei möglichen
Ereignisse (Abheben, Aufsetzen oder fortgesetztes Zeichnen) (420, 438 und 438B).
-
Die GUI ist eine Anpassung von "Maus"-Routinen, wobei die Mausterminologie
dieser Routinen in dem Quellcode beibehalten ist. Eine Maus ist eine mit der
Hand gehaltene Vorrichtung, die mit einem Computer verbunden ist, um einen
Benutzer mit einem flexiblen Mittel zur Veränderung des Orts des "momentan
aktiven" Bereichs eines Bildschirms zu versehen oder die Ausführung von
Befehlen zu wählen, welche durch Drücken oder "Klicken" der Tasten an der Maus
verfügbar sind. Eine "Maus-Routine" ist eine, die Aktivitäten mit der Maus, wie
etwa sie zu bewegen, eine Taste anzuklicken oder eine Taste loszulassen, in
die Aktion umsetzt, die sich als Resultat dieser Aktivität ergeben soll. Somit
entspricht ein Abheben einem Maustasten-Loslassen (421), wohingegen ein
Aufsetzen oder ein fortgesetztes Zeichnen dem Drücken einer Maustaste
ent
spricht (434 und 435). Sobald die "Loslassen"- oder "Drücken"-Merker gesetzt
sind, werden die "Loslassen"- oder "Drücken"-Variablen mit den neuen
Koordinaten aktualisiert (422, 436 und 437), bevor ausgewertet wird, ob das
Stiftereignis ein Zeichnen (423) oder ein Radieren (425) beinhaltet.
-
In jedem Fall werden die Koordinaten zur möglichen Übertragung zu anderen
Stationen in dem Netzwerk aufgezeichnet (424 und 426), an die sie mittels der
send_que-Funktion geschickt werden (432, 431, 430), die in Fig. 7 dargestellt
ist. Fig. 4B zeigt das Testen der Merker im Hinblick auf den Hinweis, ob eine
Übertragung des Kopfs und der Koordinaten an den Lehrer, an alle Stationen
oder an eine Studentenstation erfolgen soll (427-429).
-
(Die Fig. 4A und 4B, die zusammen die int_getxy-Funktion darstellen, sind
durch die beiden seitenübergreifenden Verbinder C (469 in Fig. 4A und 444 in
Fig. 4B) und durch die beiden seitenübergreifenden Verbinder D (442 in Fig.
4A und 441 in Fig. 4B) verbunden.)
-
Sobald die neuen Koordinaten in dieser Weise verarbeitet sind und das
Register für verfügbare Daten keine neuen Daten zeigt, wird die Funktion verlassen.
Wenn die GUI erkennt, daß der Interrupt vom Stift gegenüber ihrer
Hintergrundaktivität einen Merker erzeugt hat, der zeigt, daß eine "Maus"-Taste
gedrückt ist (daß also der Stift gegen die Oberfläche des Sensors über dem
Monitor gedrückt wird), ruft die GUI die "Zeichenmaus"-Funktion (dargestellt in Fig.
6) auf, und es werden die Koordinaten der Zeichnung auf den Bildschirm
gebracht. Es ist während der Zeichenmaus-Funktion, daß die in den Fig. 5A
und 5B dargestellte Prüfnetzfunktion aufgerufen wird, um zu sehen, ob
irgendwelche Netzwerkinterrupts von einer entfernten Station
Koordinatenzeichnungsdaten von dieser Station gebracht haben, damit diese ebenfalls in die
Zeichnung auf dem Bildschirm einfließen.
-
Die Linien in den Fig. 4A und 4B stellen den Steuerungsfluß von einem
Prozeß oder Test im Rahmen der Funktion zum nächsten dar. Diese Linien sind
durch
Bezeichner 439A, 439B, 446 bis 468 und 470 bis 499 bezeichnet.
-
Die Fig. 5A und 5B stellen zusammen den Steuerungsfluß für die
Prüfnetzfunktion dar. Prüfnetz ist der Kommunikationsverwalter, der die
Netzwerkkommunikationen zwischen den Stationen in Informationen übersetzt, die die GUI
nutzen kann, um den Gemeinschaftsbildschirmeffekt der Erfindung
hervorzurufen. Diese Funktion läuft im GUI-Hintergrund (Fig. 3B) und wird außerdem an
verschiedenen Stellen aufgerufen, wenn Aktualisierungswerte von
Netzwerkinterrupts erwartet werden. Insbesondere wird Prüfnetz von der Zeichenmaus-
Funktion aufgerufen, wie in Fig. 7 gezeigt.
-
Prüfnetz beginnt mit dem Lesen der Netzwerkwarteschlange (502) mittels der
readque-Funktion, um festzustellen, ob irgendwelche Übertragungen auf
Bearbeitung warten. Eine Übertragung geschieht in Inkrementen von PAKETEN,
außer wenn ein ganzer Bildschirm von graphischen Daten betroffen ist. Bei
Vorliegen in Großbuchstaben bezieht sich PAKET auf eine bestimmte Variable,
die über das Netzwerk zu übertragen ist. Ein Paket enthält ein Befehlsfeld von
einem Byte, ein Namensfeld zur Übertragung eines Studentennamen, ein
Tabelleneintragsfeld zur Identifizierung eines Studenten mittels eines Codes, ein
Ziffernfeld, wenn getippte Ziffern weitergeleitet werden (oder der Radierradius
bei Radierungen), einen Schriftartbezeichner sowie die x- und y-Koordinaten,
die den Ort des von den Bildschirmen gemeinschaftlich geteilten Ereignisses
angeben.
-
Prüfnetz ist die Konversation zwischen Stationen. Das "erste Wort" jeder
Kommunikation zwischen Stationen ist das Befehlsfeld; dieses gibt an, wie die
empfangende Station den "Rest der Konversation" interpretieren soll. Die
gegenwärtige Implementierung erlaubt auf der Quellebene diese Befehlsfelder:
ACK_CALL, ASK_HELP, ON_LIST, BEING_HELPED, NOT_ALLOW, CALL_
TEACHER, DROP_NAME, SEND_COPY, STOP_SEND, SCREEN_COPY,
KBRD_INPUT, ABS (zum Aufsetzen des Stifts an einer fernen Station), REL
(zur Signalisierung eines fortgesetzten Schreibens nach einem Aufsetzen) und
ERASER.
-
Die Abfrage (503) zur Bestimmung, ob zuvor ein Interrupt mit der Folge einer
Speicherung eines PAKETS in der Warteschlange ausgegeben wurde, erfolgt
durch Zurückgeben einer Null, wenn es keinen gab (532A) (was einfach eine
Rückkehr zur aufrufenden Funktion hervorruft), oder eines Nicht-Null- (d. h.
"Wahr" oder "Ja"-Zustand) Zeigers auf eine Kopie des PAKETS (532B), an
welcher Stelle eine Fallaussage das Befehlsfeld des PAKETS auswertet. (532A
führt zu einer in Fig. 5B gezeigten Beendigung (562)). Der Beendigungsweg in
dem Diagramm verläuft über seitenübergreifende Verbinder B (515 in Fig. 5A
und 539 in Fig. 5B). Die Steuerungsflußpfeile 533B, 534B, 535B, 542, 543B,
544B, 5458, 578, 579A, 580A, 581A, 582A, 583A und 584A der Fig. 5A und
5B zeigen alle an, daß der Test zur Identifizierung des Befehls im PAKET noch
nicht erfolgreich war. Lediglich Studentenstationen erhalten bei dieser
Implementierung den ACK_CALL-Befehl (504), der signalisiert, daß der Lehrer
bestätigt hat, daß sich der Student beim System angemeldet hat und einen
Identifizierer für diesen Studenten für eine interne Tabelle an der Lehrerstation
zurückgeschickt hat. Die Studentenstation speichert sodann den Identifizierer
(508), woraufhin die Routine endet (d. h. der Steuerungsfluß kehrt zurück zu der
Anweisung unmittelbar nach derjenigen, die die Prüfnetzfunktion aufgerufen
hat). Lediglich Lehrerstationen erhalten Hilfeanforderungsbefehle (505), auf die
eine Untersuchung folgt, ob Fragen erlaubt sind (509). Falls nicht (536A), wird
eine Mitteilung an den Studenten mit auf DISALLOW gesetztem Befehlsfeld
zurückgeschickt. Anderenfalls wird das Befehlsfeld derart gesetzt (511), daß
dem Studenten gesagt wird, daß sie/er auf der Liste für Hilfe steht, oder daß
der Student daran erinnert wird, daß ihr/ihm bereits geholfen wird (Zeile 69 von
Seite C69), und dieser Befehl wird vor der Beendigung (541) an den Studenten
zurückgeschickt (513). Somit werden diese neu gesetzten Befehlsfelder (zur
Signalisierung "keine Hilfe zugelassen", "bereits geholfen" oder "auf Liste zur
Hilfe") zum Studenten zurückübertragen (512 oder 539). Wenn die
Studentenstation eine dieser Antworten empfängt (506), wird die geeignete Nachricht
angezeigt (510) und die Funktion verlassen (536).
-
Wenn sich eine neue Station physikalisch zu der Zeit beim Netzwerk anmeldet,
an der es hochgefahren wird, wird ein Identifizierer von der Netzwerksoftware
ausgegeben. Wenn sich ein Student das erste Mal bei dieser
Softwareimplementierung anmeldet, gibt sie einen Ruf an den Lehrer wegen eines
Identifizierers aus. Dies ist der Identifizierer, den der Student speichert (508), wenn er
eine Bestätigung (504) dieses Rufs an den Lehrer erhält. Der Ruf selbst (517)
wird von der Lehrerstation empfangen, die den vom Netzwerk ausgegebenen
Studentenidentifizierer nachschlägt (520) und ihn mit dem auf ACK_CALL
gesetzten Befehlsfeld des ausgehenden PAKETS (523) an den Studenten
zurückschickt (525). Als nächstes zeigt die GUI den Namen auf dem Lehrerbildschirm
an, bevor der Bildschirm wieder auf sein Aussehen vor der Namensanzeige
gebracht wird (526). Die Steuerung kehrt dann zur aufrufenden Funktion zurück
(552).
-
Ein DROP_NAME-Befehlsfeld (518) ergibt sich, wenn sich der Student vom
System abmeldet; wenn die Lehrerstation ein PAKET mit diesem Befehlsfeld
erhält, wird der Studentenname aus der Tabellenposition herausgenommen
(521), die er einnahm, als die Lehrerstation das erste PAKET von dem
Studenten mit dem CALL_TEACHER-Befehl erhielt (517). Sobald der Name
herausgenommen ist, kehrt die Steuerung zur aufrufenden Funktion zurück (547).
-
Wenn das Befehlsfeld eine Kopie des Bildschirms anfordert 519, findet eine
große Übertragung eines Fensters (522) vom Studenten zum Lehrer statt (im
Gegensatz zur kleinen Übertragung eines PAKETS). Bei dieser
Implementierung können nur Lehrer Bildschirme anfordern; wenn die Übertragung des
Bildschirms (522) erfolgreich ist (524), wird ein Merker an der Studentenstation
eingeschaltet (527), um zu signalisieren, daß alle nachfolgenden Ereignisse
mitzuteilen sind. Dieser Merker wird von der in Fig. 6 dargestellten
Zeichenmausfunktion ausgewertet (604).
-
In Fortführung der seitenübergreifenden Verbinder C (554 in Fig. 5A und 555
in Fig. 5B) wird ein PAKET mit dem SCREEN_COPY-Wert im Befehlsfeld
geschickt (556), falls entweder ein Student oder der Lehrer eine volle Kopie
eines fernen Bildschirms erhält. Die empfangende Station muß Bildschirmplatz
verfügbar haben (563). Wenn derartiger Platz nicht verfügbar ist, wird ein leerer
Bildschirm erzeugt (577), und der Bildschirm kann empfangen werden (576),
bevor die Funktion verlassen wird.
-
Wenn der Lehrer die Kommunikation mit einem Studenten beendet, sendet die
Lehrerstation ein STOP_SEND-PAKET an den Studenten 557, das den
"Sende-an-Lehrer-Merker" vor dem Verlassen (597) ausschaltet (564).
-
Mit einer optionalen Tastatur können sich Benutzer bei dieser Implementierung
gleichzeitig gegenseitig auf ihre Bildschirme tippen. Wenn das PAKET eine
Tastatureingabe (KBRD_INPUT) angibt (558) und ein Zeichenbereich verfügbar
ist (565), wird ein temporärer Schriftartwert aus dem PAKET aufgezeichnet
(575) (was impliziert, daß zwei verschiedene Schriftarten, nämlich eine für jede
den Zeichen- oder Tippbereich gemeinschaftlich nutzende Person, gleichzeitig
verwendet werden können). Das PAKET enthält einen Ziffernwert zur
Übertragung im Tastaturmodus, der dann von der GUI angezeigt wird (574), welche
außerdem jegliche Dropdown-Menüinformationen wiederherstellt, die den
gleichen Platz wie der Tastenanschlag von der fernen Station nutzen (ebenfalls
574). (Falls nötig wird ein Zeichenbereich eingerichtet, um die Eingabe zu
empfangen (566).)
-
Von den vorstehend angesprochenen Befehlen rufen lediglich SEND_COPY,
SCREEN_COPY und KBRD_INPUT Änderungen im benutzerseitigen
Schreibbereich hervor. Die nächsten beiden Befehlsfelder ABS und REL erzeugen die
tatsächliche gemeinschaftliche Zeichnung auf einem Bildschirm. Wenn ein ABS
empfangen wird, hat der Benutzer an der sendenden Station soeben den Stift
auf den Sensor gedrückt (305 in Fig. 3A), und die absoluten Koordinaten des
Aufsetzens werden aufgezeichnet (573), so daß - sofern nicht der Stift sofort
hochgehoben wird - eine Verbindung zwischen dem Punkt an diesen absoluten
Koordinaten und dem Punkt an den Koordinaten gezogen werden kann, wo der
nächste Interrupt von der stiftseitigen seriellen Schnittstelle an der fernen
Station ausgegeben wird. Bei diesem nächsten Interrupt wird von der fernen
Station ein neues PAKET gesendet, wobei das Befehlsfeld auf REL gesetzt ist
(560); in dem PAKET ist die relative Position vom letzten Aufsetz- oder
Zeichen-Interrupt (welcher auch immer jünger ist) enthalten. Eine Linie wird vom
Punkt des letzten Koordinatenpaars zum Punkt an diesem neuen Satz von
Koordinaten gezogen (572). Der Wert der Koordinaten wird sodann zur
Verwendung bei Ankunft eines nachfolgenden PAKETS mit auf REL gesetztem
Befehlsfeld gespeichert. Die Steuerung kehrt dann zur aufrufenden Funktion
zurück (593).
-
Der letzte Kommunikationsmodus, der bei dieser Implementierung auftritt, ist
der RADIER-Modus. Wenn der Befehl angibt, daß der ferne
Gemeinschaftsnutzer einen Radierer benutzt (561), wird ein weißer "Füllbalken" (d. h. ein kleines
Rechteck aus Leerraum, das überall auf einem Bildschirm angeordnet werden
kann, um etwas "auszuweißen" oder "auszuradieren", das sich an dieser
Position befindet) von der GUI bereitgestellt, die außerdem bestimmt, ob der
Radierer, der sich möglicherweise am Rand des Zeichenbereichs befindet,
abgeschnitten werden muß (508) (und die sich so zur Wiederherstellung von
Informationen vorbereitet, die mit dem Radierer überlappen (570)). Der weiße
Balken (also der Radierer) wird sodann von der GUI über den Zeichenbereich
bewegt (571). Die Größe des weißen Balkens wird im PAKET über das
Ziffernfeld weitergegeben, das ansonsten zur Übertragung von Tastenanschlägen im
Tastaturmodus verwendet wird (574). Das Zentrum des Radierers ist durch die
vom PAKET übermittelten x- und y-Koordinaten gegeben. Nachdem die GUI
den Radierer mit einem weißen Füllbalken über den gewünschten Bereich
gesetzt hat und jegliche Menübereiche, mit denen er überlappt hat,
wiederhergestellt hat, geht die Steuerung zurück zur aufrufenden Funktion (594).
-
In den Fig. 5A und 5B geben die Linien die Abfolge der vorstehend
angesprochenen Operationen und der Auswertung des Befehlsfelds an. Diese
markierten Verbindungen umfassen alle Verbindungen von 530 bis 553 und 578 bis
597.
-
Fig. 6 stellt die Zeichenmausfunktion dar. Die Funktion (601) beginnt mit GUI-
Aufrufen, die den aktiven Zeichenbereich einrichten. Der momentane aktive
Punkt wird auf die x- und y-Koordinaten gesetzt (603), die ursprünglich in der
int_getxy-Funktion zugewiesen wurden, welche die Interrupts von der
Stiftschnittstelle verarbeitet. Somit sind die x- und y-Koordinaten, die für die
Zeichenmausroutine kritisch sind, diejenigen, die in der int_getxy-Funktion
zugewiesen wurden. Wenn eine Maus statt eines Stifts die Eingabevorrichtung ist
und wenn die Koordinaten zum Lehrer (604) oder zur gesamten Klasse (605)
geschickt werden sollen, wird ein Aufruf der Funktion send_pt mit entweder
LEHRER oder ALLE STUDENTEN als Zielparameter ausgegeben. send_pt ist
eine kurze Funktion, die die Daten zur Übertragung über das Netzwerk mittels
der send_que-Funktion vorbereitet, welche sie aufruft (Fig. 7).
-
Die Auswertung, ob der Stift innerhalb des "Rahmens" oder "Zeichenbereichs"
aufgedrückt ist, führt bei positivem Ergebnis zur Ausführung einer Schleife, die
ihre Iteration bei 656A beginnt und ihre Iteration bei 659 beendet. Die Schleife
stoppt die Ausführung, sobald der Stift nicht mehr innerhalb des Rahmens
aufgedrückt wird. Die wichtigsten Punkte in der Schleife sind die
Prüfnetzaufrufe (609 und 612, dargestellt in Fig. 5) zur Bestimmung, ob eine Mitteilung
verarbeitet werden soll, und die Linienzeichnen- (oder Radier-) Anweisungen
bei 614.
-
Eines der wichtigsten Merkmale der Erfindung beinhaltet die Realisierung
gleichzeitigen gemeinschaftlichen Zeichnens. Die Linienzeichnen-Anweisung in
dieser Schleife (614) verbindet Punkte, deren Koordinaten nach der
Unterbrechung der Anwendung durch die Stiftschnittstelle mit Stiftsignalen erzeugt
wurden. Innerhalb ein und derselben Schleife sind der Prüfnetzfunktion zwei
Möglichkeiten gegeben (609 und 612), um auf dem Bildschirm zu zeichnen,
entsprechend 572 in Fig. 5B. In einer Hochgeschwindigkeitsschleife, die
ankommende, sowohl von dem seriellen (lokalen) als auch dem Netzwerk-
(fer
nen) Interrupt erzeugte Koordinatendaten aufnimmt, können Punkte angezeigt
werden, um das gleichzeitige und gemeinschaftliche Zeichnen zu bewirken.
-
Nach dem anfänglichen Prüfnetzaufruf (609) zur Verarbeitung gleichzeitiger
ferner Aktivität wird der Modus des lokalen Benutzers entweder als
Tastatureingabe (610) oder als Zeichen- oder Radier- (611) Modus bewertet. Wenn der
Benutzer sich im Tastaturmodus befindet, wartet die Funktion, bis der Stift vom
Sensor abgehoben wird (613). Wenn der Stift aufgedrückt wird, gibt der
Benutzer den Ort auf dem Sensor an, wo die getippte Eingabe erscheinen soll.
Sobald der Stift weggenommen ist (und der "Maustasten"-Merker der
mausbasierten GUI auf Null gesetzt ist), kann der Tastenanschlag somit angezeigt werden
(615) und die Iteration der Hauptschleife dieser Funktion der Fig. 7 erneut
starten, und zwar nach einem weiteren Prüfnetzaufruf (612) zur Bestimmung,
ob über irgendwelche Fernaktivität auf dem lokalen Bildschirm berichtet werden
muß.
-
Falls der Benutzer in einem Zeichen- oder Radiermodus ist (611), wird in
ähnlicher Weise die Linie gezeichnet oder gelöscht (mit einem weißen Füllbalken)
(614). Eine Auswertung dahingehend, ob die Kommunikation mit dem Lehrer
(616) (falls dies eine Studentenstation ist) oder mit anderen Studenten (618)
(falls dies eine Lehrerstation ist) geteilt wird, führt zu jenen Koordinaten mit
Ziel, die (falls eine Maus statt eines Stifts benutzt wird) zu der vorstehend
angesprochenen send_pt-Funktion geschickt werden (617 und 619), welche sie
zur Übertragung zum geeigneten Ziel mittels der in Fig. 7 dargestellten
send_que-Funktion präpariert. Gleichgültig, ob der lokale Benutzer zu der Zeit,
wenn eine Tastatur-, Schreib- oder Radieraktivität lokal auftritt, Daten sendet
oder nicht, wird ein Prüfnetzaufruf ausgegeben (612), um zu bestimmen, ob
irgendeine entfernte Aktivität auf dem lokalen Bildschirm aktualisiert werden
muß, bevor die Iteration erneut beginnt (606).
-
Alle Identifizierer 651 bis 668 beziehen sich auf Linien, die den Steuerungsfluß
bei der Zeichenmausfunktion darstellen. Die Funktion wird verlassen (620),
wenn keine weitere lokale oder entfernte Mausaktivität innerhalb des Rahmens
oder Zeichenbereichs vorliegt. Fig. 7 stellt die send que-Funktion dar.
send_que gibt den Net_Send_Datagram-Ruf aus, der Paketinformationen in
einen Netzwerksteuerblock ("ncb") überführt, bevor der NetBIOS(ncb)-Ruf
ausgegeben wird, der den ncb physikalisch zu einer fernen Station überträgt.
-
send_que verwaltet so den Verkehr ausgehender Nachrichten zum Netzwerk.
Auf eine Auswertung dahingehend, ob die jüngste Sendung abgeschlossen
wurde (703), folgt bei positivem Ergebnis eine Auswertung, ob die
Sendewarteschlange nunmehr leer ist. Falls nicht (754A), wird das Paket, welches den
Aufruf der Funktion begleitete, zur Übertragung vorbereitet. Das Paket wird in
ein Übertragungspaket kopiert, das das zuvor angesprochene Net_Send_
Datagram erhält, wenn es aufgerufen wird, um einen Netzwerksteuerblock zur
Übertragung mittels eines NetBIOS-Rufs vorzubereiten (705). Der Net_Send_
Datagram-Aufruf aktualisiert auch das Netzwerk für die nächste Übertragung (706),
bevor die Funktion beendet wird.
-
Wenn die Auswertung der jüngsten Übertragung (703) zeigt, daß sie noch im
Gange ist, kann das momentane Paket nicht sofort ausgehen (753A), an
welchem Punkt sein Identifizierer in einer Warteschlangentabelle aufgezeichnet
wird (707), das Paket in den Kopf der Warteschlange kopiert wird (708) (was in
der Terminologie des Quellcodes hier impliziert, daß es das "letzte" sein wird,
das ausgeht) und der geeignete Warteschlangenzeiger aktualisiert wird (709).
-
Wenn die jüngste Übertragung abgeschlossen ist, die Warteschlange aber nicht
leer ist (754A), wird das neue Paket immer noch die Warteschlange betreten
müssen anstatt sofort abgeschickt zu werden. In diesem Fall werden die
gleichen Anweisungen befolgt, mit einer besonders erwähnten Ausnahme: Der
Paketidentifizierer wird in einer Warteschlangentabelle gespeichert (712) und
sodann das Paket selbst in Position kopiert (713), wie wenn das Paket in eine
Warteschlange geht, während ein anderes Paket sich noch in Übertragung
befindet (707 und 708). Weil jedoch in diesem Fall die jüngste Übertragung
abgeschlossen ist, wird das Paket am "Schwanz" der Warteschlange (also das
erste in der Reihe, das ausgehen soll) übertragen (714) und das Netzwerk zur
nächsten Sendung rückgesetzt (715). Übertragungen erfolgen somit bei
Anforderung, entweder wenn eine leere Warteschlange vorliegt (754B) oder wenn
eine nachfolgende Anforderung auftritt (714).
-
Die Zeilen in Fig. 7 stellen den Steuerungsfluß von einem Prozeß oder Test
innerhalb send_que zum nächsten dar. Diese Linien sind durch Bezeichner 751
bis 763 bezeichnet.
-
Fig. 8 stellt die Aktivität im Rahmen von SLATE.C dar, um die
Implementierung zu beginnen. Das Hauptprogramm schließt die Initialisierung ab (802),
worauf eine Bestimmung dahingehend folgt, ob die Eingabevorrichtung eine
Maus oder ein Stift ist (803). Die Implementierung kann somit umgearbeitet
werden, indem eine Maus statt eines Stifts verwendet wird. Wenn der Stift
verwendet wird (853B), wird die Maus gesperrt (821). Als nächstes wird die
Umgebung für die Anwendung durch Aktivitäten 804 bis 809 eingerichtet. Diese
Anwendung erfordert ein umfassendes Video-Paging, das im primären Speicher
implementiert sein kann. Weitere Initialisierungsaktivitäten umfassen das
Löschen des Bildschirms (805), das Holen des Arbeitsverzeichnisses (806), das
Einrichten der seriellen Quittierung zur Kommunikation mit dem Stift oder der
Maus (807), die Erzeugung des Menüs, das sowohl an der Lehrer- als auch an
den Studentenstationen erscheint, sowie die Erzeugung der Dropdown-Menüs
für die Student-Lehrer-Interaktion (809), die sowohl an der Lehrer- als auch den
Studentenstationen erscheinen. Als nächstes werden nach Auswertung des
Merkers, der angibt, ob der Benutzer ein Lehrer ist (810), Menüoptionen
definiert, die spezifisch für den Lehrer (822) oder die Studenten (811) sind. Diese
Anwendung sieht die Implementierung eines Satzes von
Hilfszeichenwerkzeugen voraus, nicht im Gegensatz zu herkömmlich erhältlichen graphischen
Computermalprogrammen, aber zusätzlich mit weiteren Merkmalen, etwa einem
Rechner, der in die Anzeige hinein aufgerufen werden kann. Das SLATE.C-
Programm erzeugt bei (812) das Menü für die üblichen Werkzeuge und legt die
verfügbaren Optionen fest. Ein seiteninterner Verbinder A (823) führt weiter,
indem der Prozeß für das Hauptmenü wiederholt wird, nämlich
lehrerspezifische (824) oder studentenspezifische Optionen abhängig vom Benutzertyp
(815) erzeugt werden. Die Titelleiste für die Menüs wird erzeugt (816), wie auch
ein Papiereimer-Icon (817). Die "Klickbereiche", die festlegen, welches Ereignis
auftritt, wenn ein gegebener Fleck auf dem Bildschirm von dem Stift berührt
wird (oder von der Maus, wenn eine Taste gedrückt wird), werden sodann
initialisiert (818). Schließlich werden die in Fig. 1 erscheinenden Icons (111), die
den Studentenschreibtischen entsprechen, an der Lehrerstation angezeigt
(825), nachdem das Programm festgestellt hat, daß der Benutzer ein Lehrer ist
(819).
-
Die Linien in Fig. 8 stellen den Steuerungsfluß von einem Prozeß oder Test im
Rahmen des SLATE.C-Moduls zum nächsten dar. Diese Linien sind durch
Bezeichner 851 bis 871 bezeichnet.
-
Nach der vorstehenden Initialisierung der GUI überträgt das Programm sodann
die Steuerung auf den GUI-Manager, genannt der "TEGL-Supervisor". Der GUI-
Manager aktualisiert den Bildschirm durch die in Fig. 3B dargestellten
Aktivitäten, wenn der Bildschirm durch die drei gleichzeitigen und Interrupt-gesteuerten
Kommunikationssysteme der Fig. 3A modifiziert wird.
-
Die vorstehende Beschreibung beschreibt lediglich die bevorzugte
Ausführungsform der Erfindung, wie sie gezeigt ist. Andere Ausführungsformen neben
der zuvor beschriebenen können ebenfalls artikuliert werden. Die Begriffe und
Ausdrücke dienen daher lediglich zur beispielhaften Beschreibung der
Erfindung und nicht zur Beschränkung der Erfindung. Es ist zu erwarten, daß Dritte
Unterschiede erkennen werden, die, wenngleich sie sich vom Vorstehenden
unterscheiden, nicht vom Umfang der hier beschriebenen und beanspruchten
Erfindung abweichen.
Erläuterung der Blocksymbole in den Figuren
-
Fig. 2:
-
201: Drucker und/oder Tastatur (optional)
-
203: Monitor
-
205: Sensor
-
206: Stift oder Griffel
-
207: Stift- oder Griffelschnittstelle
-
208: Netzwerkschnittstelle
-
210: Zusätzliche Chips einschließlich Interruptverwalter
-
212: Primäre und sekundäre Speichersysteme
-
213: Zentraler Prozessor und Busschnittstelle
-
217: Peripherieschnittstellensystem
-
221: Drucker und/oder Tastatur (optional)
-
223: Monitor
-
225: Sensor
-
226: Stift oder Griffel
-
227: Stift- oder Griffelschnittstelle
-
228: Netzwerkschnittstelle
-
230: Zusätzliche Chips einschließlich Interruptverwalter
-
231: Peripherieschnittstellensystem
-
232: Primäre und sekundäre Speichersysteme
-
233: Zentraler Prozessor und Busschnittstelle
-
241: Drucker und/oder Tastatur (optional)
-
243: Monitor
-
245: Sensor
-
246: Stift oder Griffel
-
247: Stift- oder Griffelschnittstelle
-
248: Netzwerkschnittstelle
-
250: Zusätzliche Chips einschließlich Interruptverwalter
-
252: Primäre und sekundäre Speichersysteme
-
253: Zentraler Prozessor und Busschnittstelle
-
257: Peripherieschnittstellensystem
-
Fig. 3A:
-
302: Benutzer hält Stift
-
303: Stift ist weg von der Oberfläche
-
304: Stift ist angehoben
-
305: Aufsetzen
-
306: Schreiben oder Zeichnen
-
307: (typischerweise serieller) Stiftinterrupt ausgegeben an Verwalter
-
308: Prozeßkoordinaten vom Interrupt
-
309: Prozeßkoordinaten von Übertragung
-
310: Übertragung aus Warteschlange kopiert und übersetzt
-
311: Netzwerk gibt Interrupt aus; Übertragung tritt in
Empfangswarteschlange ein
-
334: Werden die Koordinaten gesendet?
-
335: Sende an Netzwerkübertragungs-Warteschlangenmanager
-
336: Gib Netzwerkübertragungsinterrupt aus
-
337: Übertrage Nachricht an ferne Station
-
Fig. 3B:
-
312: Betriebssystem beginnt Ausführung
-
313: Richte Menüs und Icons ein, richte "Hot Spots" für Stiftberührung
oder Mausklick ein
-
314: Rufe GUI-Manager (= TEGL-Supervisor) auf
-
315: Ist Stift aufgedrückt?
-
316: Ist der Stift auf eine Dropdown-Menüoption oder eine Taste
gedrückt?
-
317: Ist Stift im zulässigen Zeichenbereich aufgedrückt?
-
318: Verbinde vorherige Koordinaten mit neuen Koordinaten (oder
markiere das Aufsetzen)
-
319: Prüfe auf Abheben oder fahre mit Interrupts fort
-
320: Öffne gewählte Pulldown-Menüoption oder Tastenoption
321:
Sind irgendwelche Optionen ausgewählt?
-
322: Rufe das mit dieser Menü- oder Tastenwahl verknüpfte Ereignis
auf
-
Fig. 4A:
-
401: getxy-Start
-
402: Setze Interruptmerker
-
403: Zeigt IIR1 verfügbare Daten?
-
404: Ist Übertragungsregister leer?
-
405: Lies das Byte vom Datentor
-
406A: Muß XON gesendet werden?
-
406B: Sende XON
-
407: Ist das Byte ein Kopf (Byte 1 von 5)?
-
408: Prüfe IIR1 auf mehr wartende Interrupts
-
409: Ordne dieses Byte dem Kopf zu und initialisiere Zähler
(comm_pend)
-
410: Ist es Byte 1 der verbleibenden vier Bytes?
-
411: Ist es Byte 2 der verbleibenden vier Bytes?
-
412: Ist es Byte 3 der verbleibenden vier Bytes?
-
413: Ist es Byte 4 der verbleibenden vier Bytes?
-
414: Erhöhe Bytezähler und Weise erste Hälfte der x-Koordinate zu
-
415: Erhöhe Bytezähler und Weise zweite Hälfte der x-Koordinate zu
-
416: Erhöhe Bytezähler und Weise erste Hälfte der y-Koordinate zu
-
417: Erhöhe Bytezähler und Weise zweite Hälfte der y-Koordinate zu
-
418: Berechne x-Koordinate mit Tabelle
-
419: Berechne y-Koordinate mit Tabelle, sende XON
-
Fig. 4B:
-
420: Ist Kopf ein Abheben?
-
421: Loslassen der Maustaste
-
422: Aktualisiere Loslaß-Koordinaten
-
423: Ist Zeichenmodus ein Stift?
-
424: Aktualisiere Zeichnungskoordinaten auf Grundlage absoluter oder
relativer Position
-
425: Ist Zeichenmodus ein Radierer?
-
426: Setze Befehlsfeld auf Radierermodus und Ziffernfeld auf
Radierergröße
-
427: Bekommt Lehrer dies?
-
428: Ist es eine globale Kopie?
-
429: Ist es für einen aktiven Studenten?
-
430: Sende Aufzeichnung mit Koordinaten an Warteschlange für
aktiven Studenten
-
431: Sende Aufzeichnung mit Koordinaten an Warteschlange für alle
-
432: Sende Aufzeichnung mit Koordinaten an Warteschlange für Lehrer
-
434: Drücken der Maustaste
-
435: Drücken der Maustaste
-
436: Aktualisiere Drückkoordinaten
-
437: Aktualisiere Drückkoordinaten
-
438 Ist Kopf ein Aufsetzen?
-
438B: Ist Kopf ein Fortfahren?
-
Fig. 5A:
-
501: Prüfe Netzwerk (Prüfnetz)
-
502: Lies Netzwerkwarteschlage, um Paket zu holen
-
503: Gibt es ein Paket?
-
504: Ist Befehlsfeld = ACK_CALL?
-
505: Bittet Feld um Hilfe?
-
506: Ist Befehl ON_LIST oder ALREADY?
-
508: Speichere das Eintragsfeld als Studentenidentifizierer
-
509: Sind Fragen zugelassen?
-
510: Zeige Nachricht an
-
511: Setze Befehlsfeld auf ON_LIST oder BEING_HELPED
-
512: Setze Befehlsfeld auf DISALLOW und sende es zurück
-
513: Sende Befehl zurück
-
517: Ruft Feld Lehrer?
-
518: Nimmt Feld Namen heraus?
-
519: Fordert Feld Bildschirmkopie an?
-
520: Finde Eintragsnummer auf Liste
-
521: Nimm Namen aus Studentenliste heraus
-
522: Sende eine Kopie des Bildschirms
-
523: Setze Befehlsfeld auf ACK_CALL
-
524: War Sendung erfolgreich?
-
525: Sende Bestätigung
-
526: GUI zeigt Name an und stellt Bildschirm wieder her
-
527: Schalte Lehrermerker ein
-
Fig. 5B:
-
556: Erhält Student oder Lehrer Bildschirmkopie?
-
557: Stopp der gemeinschaftlichen Nutzung mit Lehrer?
-
558: Gibt Feld Tastaturmodus an?
-
559: Wurde an ferner Station aufgesetzt? (ABS-Koordinaten)
-
560: Wurde an ferner Station weitergeschrieben? (REL)
-
561: Gibt Feld Radiermodus an?
-
562: Zurück
-
563: Ist Bildschirm offen zum Empfang?
-
564: Schalte Merker zum Senden von Koordinaten aus
-
565: Ist Bildschirmspeicher verfügbar?
-
566: Richte leere neue Zeichnung ein
-
567: Berechne Koordinaten
-
568: Richte Füllbalken ein und hole Koordinaten
-
569: Benötigt Radierer Abschneidung?
-
570: Bereite zur partiellen bzw. Überlappungsaktualisierung vor
-
571: Radiere Menüs aus und stelle sie wieder her
-
572: Zeichne Linie zu neuer Position/aktualisiere Koordinaten
-
573: Kopiere Koordinaten
-
574: Zeige Ziffer an und stelle wieder her (falls nötig)
-
575: Richte temporäre Schriftart für ferne Einstellung ein
-
576: Empfange den Bildschirminhalt
-
577: Richte leere neue Zeichnung ein
-
Fig. 6:
-
601: Zeichenmaus
-
602: Lege aktiven Zeichen- oder Tastaturbereich fest
-
603: Lege Startpunkt im Eingabebereich fest
-
604: Benötigt Lehrer Koordinaten für Maus?
-
605: Benötigen alle Studenten Koordinaten für Maus?
-
606: Wird Stift innerhalb des Rahmens aufgedrückt?
-
607: Sende Lehrer Absolutkoordinaten
-
608: Sende jedem Absolutkoordinaten
-
609: Rufe Prüfnetz auf, um gleichzeitige ferne Aktivität zu verarbeiten
-
610: Befindet sich Benutzer im Tastatureingabemodus?
-
611: Befindet sich Maus innerhalb Zeichen- oder Radiergrenzen?
-
612: Rufe Prüfnetz auf, um Menüoptionen zu verarbeiten, falls welche
ausgewählt wurden
-
613: Wird Stift noch aufgedrückt?
-
614: Zeichne Linie oder radiere
-
615: Zeige Ziffer an
-
616: Benötigt Lehrer Koordinaten?
-
617: Sende Koordinaten an Lehrer
-
618: Benötigen alle Studenten Koordinaten?
-
619: Sende Koordinaten an jeden
-
620: Zurück
-
Fig. 7:
-
701: send_que
-
702: Ist Benutzer ein Lehrer?
-
703: Wurde letzte Sendung abgeschlossen?
-
704: Ist Warteschlange leer?
-
705: Sende Paket ab
-
706: Setze Netzwerk für nächstes Datagramm zurück
-
707: Zeichne Paketnummer auf
-
708: Kopiere in Warteschlange
-
709: Aktualisiere Warteschlangenzeiger
-
710: Zurück
-
711: Aktualisiere p → Eintrag
-
712: Zeichne momentane Paketnummer auf
-
713: Kopiere Paket an nächste Warteschlangenposition
-
714: Sende Kopf der Warteschlange ab
-
715: Setze Netzwerk zurück
-
Fig. 8:
-
801: slate.c
-
802: Initialisiere Fehlervariablen, Graphiksystem, Maus; setze
Fehlervariablen
-
803: Sind Stift und Maus installiert?
-
804: Lege Videoseiten fest
-
805: Lösche Bildschirm zur Initialisierung der Menüoptionen
-
806: Hole momentanes Arbeitsverzeichnis
-
807: Lege Quittierung an, um Eingabe von Maus oder Stift zu erhalten
-
808: Erzeuge Menü für allgemeine Werkzeuge und definiere Optionen
-
809: Erzeuge Menü für Lehrer-Student-Interaktion
-
810: Ist Benutzer ein Lehrer?
-
811: Definiere Option für Studenten
-
812: Erzeuge Menü für allgemeine Werkzeuge und definiere Optionen
-
815: Ist Benutzer ein Lehrer?
-
816: Erzeuge und definiere Titelmenü zur Aktivierung der Menüs
-
817: Definiere und zeichne Abfalleimer-Icon
-
818: Definiere alle Klickbereiche
-
819: Ist Benutzer ein Lehrer?
-
820: Rufe Überwachungsroutine zum Ereignismanagement auf
-
821: Sperre Maus
-
822: Definiere Optionen für Lehrer
-
824: Füge zusätzliche Optionen für Lehrer hinzu
-
825: Zeige Studentenschreibtische linksseitig an