\chapter{PVS-Steuerkonsole}
Die PVS-Steuerkonsole auch PVS-Manager genannt, wurde so aufgebaut, dass die wichtigsten Funktionen durch einen Mausklick erreichbar sind. Dieses Kapitel stelltdie unterschiedlichen Funktionen vor, die von der PVS-Steuerkonsole aus angeboten werden.

\section{Allgemein}
Die Abbildung \ref{fig:pvsmgra} zeigt den PVS-Manager in seinem Gesamtbild. Ganz links steht die Liste der verbundenen Clients und
rechts befinden sich die entsprechenden VNC-Frames.

\begin{figure}[h]
	\centering
		\includegraphics[width=0.80\textwidth]{bilder/pvsmgrAll.jpg}
	\caption{Das Hauptfenster der PVS-Steuerkonsole}
	\label{fig:pvsmgra}
\end{figure}

\subsection{Die Client-Liste}
\label{clientliste}
Die angezeigten Clients in dieser Liste haben mit dem Server eine erfolgreiche Verbindung aufbauen können. Mit dem entsprechenden
Tastenkürzel wie es im \ref{Taste} aufgelistet wird, kann man die Clients in unterschiedlichen  Bezeichnung anzeigen lassen. Beim Rechtsklick
auf die einzelnen Clients sind folgenden Aktionen möglich:\\
\textbf{Lock Client(s)}: Damit werden die selektierten Clients gesperrt und dabei werden der Superclient und ein möglicher auf den Superclient
projektierten Client ausgeschloßen. \\
\textbf{Unlock Client(s)}: Die gesperrten Clients werden wieder entsperrt. \\
\textbf{MsgLock Client(s)}: Idem wie beim \textit{Lock Client(s)} aber hier bekommt der Client vor der Sperrung eine Nachricht vom pvsmgr.\\
\textbf{MsgLock All Client(s)}: Ein \textit{MsgLock Client(s)} für alle Clients.\\
\textbf{Message Clients}: Nachricht an den selektierten Clients schicken.\\
\textbf{Projection}: Es wird benutzt, um den VNC-Frame eines Clients zu einem anderen zu verschicken. Die Ausführung der Projektion verlangt, dass nur
einen einzigen Client selektiert wird. Der selektierte Client ist die Quelle der Projektion. Die Ziele der Projektion werden über ein Popup-Fenster
ausgewählt. Es wird auch möglich einen Client in einem schon existierenden Projektion mit einbeziehen zu lassen. Es ist natürlich nicht möglich
ein Client gleichzeitig als Quelle und Ziel einer Projetion zu haben.\\
\textbf{Unprojektion}: Wird ausgewählt um eine existierende Projektion zu beenden. Ausgeführt auf eine Quelle (source-projection)
einer Projektion werden alle betroffenen Clients (target-projection) wieder freigegeben. Die Quelle wird dann im Anschluß auch freigegeben.\\

\subsection{Die VNC-Frames}
Die VNC-Frames werden im ConnectionWindow angezeigt. Für den jeweiligen verbundenen Client wird ein kleines Fenster mit änderbarer Größe bereitgestellt.
Die verfügbaren Aktionen per Rechtsklick auf die vorhandenen VNC-Frames sind ähnlich wie im \ref{clientliste} beschrieben wurde. Im ConnectionWindow kann man
zwei Arten von Frames unterscheiden. Die Abbildung \ref{fig:pvsdummy} zeigt einen \textit{Dummy-} und einen \textit{Nicht Dummy-Frame}.\\
\\
\textbf{Dummy-Frame}: Ein \textit{Dummy-Frame} lässt sich mit einem schwarzen Punkt rechts unten unterscheiden. Ein \textit{Dummy-Frame} ist eine Art Template 
oder besser ein Platzhalter für den eigentlichen VNC-Frame. Man kann sie erzeugen oder löschen. Die
Erzeugung erfolgt durch einen Rechtsmouseklick auf dem ConnectionWindow und das Löschen durch den Rechtsklick auf dem
betroffenen Client. Die \textit{dummy-Clients} werden meistens zur Definition von Profilen erzeugt. Sie werden also erzeugt und je nach
Wunsch angeordnet und unter dem Menü \textit{Profile manager} wird ein Dialog gestartet, in dem man das Profil nach dem Klick auf dem Knopf \textit{new}
unter den gewunschten Name speichern kann. Ausserdem unter dem Menü \textit{Load profil} kann man ein existierendes Profil laden.\\
\begin{figure}[h]
	\centering
		\includegraphics[width=0.80\textwidth]{bilder/dum.jpg}
	\caption{Dummy und Nicht Dummy Frames}
	\label{fig:pvsdummy}
\end{figure} \\
\textbf{Nicht dummy-Frame}: Nach dem ein Client mit dem pvsmgr eine Verbindung erfolgreich aufgebaut hat, wird er im ConnectionWindow als ein
richtiger VNC-Frame angezeigt. Der \textit{Nicht dummy-Frame} hat einen grünen Punkt an seine rechte Ecke. Der Manager kann also diese Frame manipulieren. 
Dem Dozent steht dafür mehrere Funktionen zur Verfügung. Wir werden aber hier
nur die wichtigsten erläutern, denn die anderen lassen sich ganz trivial auf dem Gui nachvollziehen. Also auf ein VNC-Frame kann per Rechtsmouseklick die
im \ref{clientliste} definerten Aktionen angewandt werden. Die VNC-Qualität und die Größe der Frames können geändert werden, um den CPU-Last zu minimieren.
Auf dem Bild \ref{fig:pvsdummy} kann man verbundene Clients (\textit{Nicht dummy-Frame}) und nicht verbundene Clients  (\textit{Dummy-Frame}) ansehen . Der Titel des Fensters ist der Benutzername des Clients und unter dem Frame
befindet sich die korrespondierte IP-Adresse. Der grüne Punkt ganz rechts im Gegenteil zum dummy-Frame zeigt, dass der Client gerade Online ist.\\
Für die Verbundene Clients besteht die Möglichkeit die VNC-Quality (HIGH, MEDIUM oder LOW) jeder Zeit einzustellen. Mit \textit{Set Password} kann der Manager ganz bequem
festlegen, ob die Clients zur Verbindung mit dem pvsmgr ein von System generiertes Passwort eingeben müssen oder nicht. Auf dem Toolbar werden weitere Funktionen wie:
Screeshots aufnehmen, Chat mit dem einzelnen Client starten, ferngesteuert auf den markierten Clients Prozesse starten, eine Prozessliste zu öffnen in der die Prozesse sämtlicher verbundenen Clients angezeigt werden oder alle Clients auf einem Klick zu blockieren. Das Blockieren der Clients schließt natürlich der Dozent-Rechner
aus. Der Dozent-Rechner hebt sich von einem anderer verbundenen Machine durch den Rot-Blau Zeichnen neben dem grünen Punkt hervor.
\\
Befindet sich die Maus über einem VNC-Frame, so ist über dem Bildschirminhalt eine Reihe von
Buttons zu sehen (Siehe Abbildung \ref{png:buttons}).
\begin{figure}[h]
  \centering
    \includegraphics[scale=1]{bilder/vnc-frame-buttons.png}
  \caption{Buttons}
  \label{png:buttons}
\end{figure}
Diese erlauben die Ausfürung der folgenden Funktionen:
\begin{enumerate}
 \item Anzeige maximieren
 \item Bildschirmfoto
 \item Bildschirm für den Benutzer sperren
 \item Client zum ,,Super-Client'' machen
 \item Fernsteuerung aktivieren
 \item Fernsteuerung aller Clients
\end{enumerate}
Wird der Button für die Aktivierung der Fernsteuerung gedrückt, werden alle Tastatur- und Mauseingaben,
die getätigt werden, während sich der Mauszeiger über dem Anzeigebereich des VNC-Frames befindet,
an den betreffenden Client gesendet.
So ist es möglich, die Steuerung von Tastatur und Maus eines angeschlossenen Rechners zu übernehmen.
\\
Davon sind auch Tastenkombinationen wie Alt+Tabulator betroffen. 
Um solche Kombinationen am Rechner der Steuerkonsole einzugeben, muss der Mauszeiger von der
Anzeigefläche wegbewegt werden.
\\
Weiterhin ist auch die Simulation von System-Tastenkombinationen möglich:
Hierzu muss 5 Sekunden lang die Menü-Taste 
 \includegraphics[height=1.6ex]{bilder/menu-key.png} 
gedrückt werden;
es erscheint dann ein Menü, aus dem die gewünschte Aktion ausgewählt werden kann.
{\em Vorsicht:} Die Steuerkonsole fragt vor der Ausführung einer Aktion nicht noch einmal
nach.
\\ \\
\subsection{Prozessliste anzeigen}
\label{Prozessliste}
Hier ein Überblick über die Prozessliste (Siehe Abbildung \ref{png:Prozessliste}).\\
\begin{enumerate}
 \item Anzeige der Tabs - hier wird für jeden Client ein neuer Reiter erstellt, ein Klick auf den Reiter aktiviert die Anzeige für diesen Client. Die Prozessliste wird daraufhin aktualisiert.
 \item Prozessliste - Hier werden die Prozesse des gewählten Clients angezeigt, in den Spalten stehen die ProzessID, der Name und die Commandline. Die Prozessliste wird alle 5 Sekunden aktualisiert, ausser es ist mindestens eine Zeile markiert. Es können mehrere Zeilen markiert werden, sie müssen nicht zusammenhängen.
 \item Buttons Refresh und Stop process - mit Refresh wird die Liste aktualisiert, unabhängig davon, ob Zeilen markiert wurden. Ein Klick auf Stop process beendet die markierten Prozesse nach einer erneuten Abfrage.
 \item Start Process - Ein eingegebener Prozess wird auf dem aktuellen Client gestartet.
\end{enumerate}
Mit einem Klick auf Close werden die Prozesslisten geschlossen.
\begin{figure}[h]
  \centering
    \includegraphics[scale=0.5]{bilder/processlist.png}
  \caption{Prozessliste}
  \label{png:Prozessliste}
\end{figure}
\\




Im letzten Punkt dieses Abschnitts wollen wir die vorhandenen Tastenkürzel vorstellen.
\subsection{Tastenkürzel für PVS-Server}
\label{Taste}
Einige schlaue Tastenkombinationen sollen die Ausnutzung der PVS-Konsole erleichten.
Wir werden z.B für einige Funktionen, die in der Popup-Menü zur Verfügung gestellten sind, den Aufruf durch
Tastenkombination ermöglichen.\\

Wichtig ist,  eine Rückkopplung mit den Anwendern vorzunehmen (Rückmeldung, was die Dozenten denken und welche Funktionen sie für sinnvoll erachten, was sie sich wünschen ...)\\

Hier folgt eine Liste von den bisherigen eingebauten Tastenkombinationen:\\
\textit{Alt+F}: Anzeige des Menüs unter "File" \\
\textit{Alt+C}: Anzeige des Menüs unter "Clients" \\
\textit{Alt+L}: Anzeige des Menüs unter "Logging" \\
\textit{Alt+H}: Anzeige des Menüs unter "Help" \\
\textit{Ctrl+M}: Anzeige des Profilmanager-Dialogs \\
\textit{Ctrl+Q}: Die Anwendung verlassen (Exit) \\
\textit{Ctrl+1}: Name in Client-Liste anzeigen lassen \\
\textit{Ctrl+2}: IP in Client-Liste anzeigen lassen \\
\textit{Ctrl+3}: Username in Client-Liste anzeigen lassen \\
\textit{Ctrl+L}: Log anzeigen lassen \\
\textit{Ctrl+O}: Normal Log anzeigen lassen \\
\textit{Ctrl+R}: Error Log anzeigen lassen \\
\textit{Ctrl+N}: Network Log anzeigen lassen \\
\textit{Ctrl+T}: Terminal Log anzeigen lassen \\
\textit{Ctrl+D}: Chat Log anzeigen lassen \\
\textit{Ctrl+F}: Screenshort der ausgewählten Clients machen \\
\textit{Ctrl+V}: Ausgewählter Client in voller Auflösung anzeigen lassen \\
\textit{Ctrl+A}: Alle Clients Un- bzw. Lock \\
