1
|
1 <reference>
|
|
2 <title>@PACKAGE@ - Version @VERSION@</title>
|
|
3 <partintro>
|
|
4 <title>Packages</title>
|
|
5
|
|
6 <para>The various source and binary packages are available at <ulink
|
|
7 url="http://www.five-ten-sg.com/@PACKAGE@/packages/">http://www.five-ten-sg.com/@PACKAGE@/packages/</ulink>.
|
|
8 The most recent documentation is available at <ulink
|
|
9 url="http://www.five-ten-sg.com/@PACKAGE@/">http://www.five-ten-sg.com/@PACKAGE@/</ulink>.
|
|
10 </para>
|
|
11
|
|
12 <para>A <ulink
|
|
13 url="http://www.selenic.com/mercurial/wiki/">Mercurial</ulink> source
|
|
14 code repository for this project is available at <ulink
|
|
15 url="http://hg.five-ten-sg.com/@PACKAGE@/">http://hg.five-ten-sg.com/@PACKAGE@/</ulink>.
|
|
16 </para>
|
|
17
|
|
18 </partintro>
|
|
19
|
|
20 <refentry id="x@PACKAGE@.1">
|
|
21 <refentryinfo>
|
|
22 <date>2014-04-18</date>
|
|
23 <author>
|
|
24 <firstname>Carl</firstname>
|
|
25 <surname>Byington</surname>
|
|
26 <affiliation><orgname>510 Software Group</orgname></affiliation>
|
|
27 </author>
|
|
28 </refentryinfo>
|
|
29
|
|
30 <refmeta>
|
|
31 <refentrytitle>@PACKAGE@</refentrytitle>
|
|
32 <manvolnum>1</manvolnum>
|
|
33 <refmiscinfo>@PACKAGE@ @VERSION@</refmiscinfo>
|
|
34 </refmeta>
|
|
35
|
|
36 <refnamediv id='name.1'>
|
|
37 <refname>@PACKAGE@</refname>
|
|
38 <refpurpose>a monitoring package for the android terminal emulator</refpurpose>
|
|
39 </refnamediv>
|
|
40
|
|
41 <refsect1 id='build.1'>
|
|
42 <title>Build method</title>
|
|
43 <para>
|
|
44 This is an android project with no native code, so
|
|
45 "android update project -p . -t android-16; ant debug"
|
|
46 should build cleanly.
|
|
47 </para>
|
|
48 </refsect1>
|
|
49
|
|
50 <refsect1 id='introduction.1'>
|
|
51 <title>Introduction</title>
|
|
52 <para>
|
|
53 This is a stub monitoring application for the related
|
|
54 510 Connectbot android terminal emulator package.
|
|
55 </para>
|
|
56 </refsect1>
|
|
57
|
|
58 <refsect1 id='monitor.1'>
|
|
59 <title>Terminal Monitor</title>
|
|
60 <para>
|
|
61 For every terminal session (local, telnet, ssh or other), the
|
|
62 terminal emulator also makes a connection to a terminal monitor
|
|
63 process, which can see keystrokes and screen contents, and can
|
|
64 inject characters to send to the host.
|
|
65 </para>
|
|
66
|
|
67 <para>
|
|
68 The terminal monitor is invoked by calling an android Intent
|
|
69 named "com.five_ten_sg.connectbot.monitor.MonitorService". That
|
|
70 ensures that the monitor process is running, and should then
|
|
71 be listening on TCP port 6000 for incoming connections. The terminal
|
|
72 emulator then connects to the terminal monitor on port 6000.
|
|
73 The native android Intent and Service communication mechanisms
|
|
74 are not used.
|
|
75 </para>
|
|
76
|
|
77 <para>
|
|
78 The messages exchanged between the terminal emulator and the
|
|
79 terminal monitor are arrays of uint16 values in network byte
|
|
80 order. Each message starts with a uint16 message byte length,
|
|
81 followed by that many bytes of data. Note that the message length
|
|
82 will always be even. The next uint16 contains the message
|
|
83 command value, and the remaining uint16 values are the arguments
|
|
84 if any for that command.
|
|
85 </para>
|
|
86
|
|
87 <para>
|
|
88 Any arguments that are keystrokes or characters are represented
|
|
89 as 16 bit unicode. Note that the first 256 such characters are
|
|
90 identical to the ISO-8859-1 latin character set.
|
|
91 </para>
|
|
92
|
|
93 <para>
|
|
94 INIT = 0 (TE -> Monitor). The argument is a string of uint16
|
|
95 characters. The meaning of these characters is defined by the
|
|
96 monitor. It might be a fully qualified path name, or some other
|
|
97 data used by the monitor to drive the monitoring of this
|
|
98 connection.
|
|
99 </para>
|
|
100
|
|
101 <para>
|
|
102 ACTIVATE = 1 (TE -> Monitor). The first argument is the
|
|
103 number of lines. The second argument is the number of columns.
|
|
104 That is followed by lines*columns uint16 character codes.
|
|
105 This connection is now the active connection. It is the
|
|
106 topmost (or only) window visible to the user - typed keystrokes
|
|
107 will be sent to the host on the other end of this connection.
|
|
108 </para>
|
|
109
|
|
110 <para>
|
|
111 HOSTDATA = 2 (TE -> Monitor). The argument is a single uint16
|
|
112 value containing the 8 bit character that was sent to the host.
|
|
113 </para>
|
|
114
|
|
115 <para>
|
|
116 CURSORMOVE = 3 (TE -> Monitor).
|
|
117 The first argument is the line number (0..23)
|
|
118 and the second argument is the column number (0..79).
|
|
119 </para>
|
|
120
|
|
121 <para>
|
|
122 SCREENCHANGE = 4 (TE -> Monitor). The first argument is the
|
|
123 number of lines. The second argument is the number of columns.
|
|
124 That is followed by lines*columns uint16 character codes.
|
|
125 </para>
|
|
126
|
|
127 <para>
|
|
128 FIELDVALUE = 5 (TE -> Monitor).
|
|
129 SETFIELD = 5 (Monitor -> TE).
|
|
130 The first argument is the line number (0..23)
|
|
131 and the second argument is the column number (0..79).
|
|
132 That is followed by the field value, a sequence of uint16
|
|
133 character codes from the screen buffer. The field
|
|
134 covers N columns, where N = (message length - 4) / 2.
|
|
135 When sent from the monitor to the emulator, this causes
|
|
136 the emulator to send the field codes to the host. This is
|
|
137 also used as the reply message from the emulator to the
|
|
138 monitor for a previous GETFIELD from the monitor.
|
|
139 </para>
|
|
140
|
|
141 <para>
|
|
142 GETFIELD = 6 (Monitor -> TE).
|
|
143 The first argument is the line number (0..23)
|
|
144 and the second argument is the starting column number (0..79),
|
|
145 and the third argument is the field length in columns.
|
|
146 This command causes the emulator to send a FIELDVALUE message
|
|
147 back to the monitor.
|
|
148 </para>
|
|
149
|
|
150 <para>
|
|
151 SCREENWATCH = 7 (Monitor -> TE).
|
|
152 The first argument is the line number (0..23)
|
|
153 and the second argument is the starting column number (0..79),
|
|
154 and the third argument is the field length in columns.
|
|
155 This command causes the emulator to watch the specified
|
|
156 part of the screen for changes. When that part of the screen
|
|
157 changes, the emulator will send a SCREENCHANGE message back
|
|
158 to the monitor.
|
|
159 </para>
|
|
160 </refsect1>
|
|
161
|
|
162 <refsect1 id='todo.1'>
|
|
163 <title>TODO</title>
|
|
164 <para>
|
|
165 Nothing.
|
|
166 </para>
|
|
167 </refsect1>
|
|
168
|
|
169 <refsect1 id='copyright.1'>
|
|
170 <title>Copyright</title>
|
|
171 <para>
|
|
172 Copyright (C) 2014 by 510 Software Group <carl@five-ten-sg.com>
|
|
173 </para>
|
|
174 <para>
|
|
175 This program is free software; you can redistribute it and/or modify it
|
|
176 under the terms of the GNU General Public License as published by the
|
|
177 Free Software Foundation; either version 3, or (at your option) any
|
|
178 later version.
|
|
179 </para>
|
|
180 <para>
|
|
181 You should have received a copy of the GNU General Public License along
|
|
182 with this program; see the file COPYING. If not, please write to the
|
|
183 Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
184 </para>
|
|
185 </refsect1>
|
|
186
|
|
187 <refsect1 id='version.1'>
|
|
188 <title>Version</title>
|
|
189 <para>
|
|
190 @VERSION@
|
|
191 </para>
|
|
192 </refsect1>
|
|
193 </refentry>
|
|
194
|
|
195 </reference>
|