1 package org.lsst.ccs.plugin.jas3.console;
2
3 import java.io.BufferedReader;
4 import java.io.IOException;
5 import java.io.InputStreamReader;
6
7 import java.io.PrintWriter;
8 import org.freehep.jas.plugin.console.Console;
9 import org.freehep.jas.plugin.console.ConsoleOutputStream;
10 import org.lsst.ccs.HardwareException;
11 import org.lsst.ccs.subsystems.console.BaseConsole;
12
13
14
15
16
17
18
19
20
21 class CommandConsole extends BaseConsole {
22
23 private BufferedReader rdr;
24 private PrintWriter pw;
25 private final Console console;
26
27
28
29
30
31 CommandConsole(Console console) {
32 this.rdr = new BufferedReader(new InputStreamReader(console.getInputStream("console>")));
33 ConsoleOutputStream out = console.getOutputStream(null);
34 this.pw = new PrintWriter(out, true);
35 this.console = console;
36 }
37
38
39 void runConsole() throws HardwareException {
40 pw.println("Console ready, locking key = " + getMessagingFactory().getToken());
41 while (true) {
42 try {
43 String line = rdr.readLine();
44 if (line == null) {
45
46
47 break;
48 }
49 line = line.trim();
50 if ("quit".equals(line) || "exit".equals(line)) {
51
52
53 console.close();
54 } else if (!"".equals(line)) {
55 execute(line);
56 }
57 } catch (IOException e) {
58
59
60 pw.println(e);
61 }
62 }
63 shutdown();
64 }
65
66 @Override
67 protected void message(String message, boolean isError) {
68
69
70 pw.println(message);
71 }
72
73 @Override
74 protected void messageFromBus(String message) {
75 pw.println(message);
76 }
77 }