comparison xml/510connectbotmonitor.in @ 1:f12df02aa228

add docs
author Carl Byington <carl@five-ten-sg.com>
date Mon, 05 May 2014 14:37:11 -0700
parents
children f6a1aabf384f
comparison
equal deleted inserted replaced
0:5564580fe160 1:f12df02aa228
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 &lt;carl@five-ten-sg.com&gt;
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>