Mercurial > 510ConnectbotMonitor
annotate xml/510connectbotmonitor.in @ 31:0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Sun, 28 Apr 2019 14:45:56 -0700 |
parents | 3975d341e3dd |
children |
rev | line source |
---|---|
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> | |
31
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
22 <date>2019-04-28</date> |
1 | 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 | |
31
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
45 "make docs; make builder style=release" should build cleanly. |
1 | 46 </para> |
47 </refsect1> | |
48 | |
49 <refsect1 id='introduction.1'> | |
50 <title>Introduction</title> | |
51 <para> | |
52 This is a stub monitoring application for the related | |
53 510 Connectbot android terminal emulator package. | |
54 </para> | |
55 </refsect1> | |
56 | |
57 <refsect1 id='monitor.1'> | |
58 <title>Terminal Monitor</title> | |
59 <para> | |
2 | 60 For every terminal session (local, telnet, ssh or tn5250), the |
1 | 61 terminal emulator also makes a connection to a terminal monitor |
2 | 62 process, which can see cursor movement and screen contents, and can |
1 | 63 inject characters to send to the host. |
64 </para> | |
65 | |
66 <para> | |
67 The terminal monitor is invoked by calling an android Intent | |
68 named "com.five_ten_sg.connectbot.monitor.MonitorService". That | |
69 ensures that the monitor process is running, and should then | |
70 be listening on TCP port 6000 for incoming connections. The terminal | |
71 emulator then connects to the terminal monitor on port 6000. | |
72 The native android Intent and Service communication mechanisms | |
73 are not used. | |
74 </para> | |
75 | |
76 <para> | |
77 The messages exchanged between the terminal emulator and the | |
78 terminal monitor are arrays of uint16 values in network byte | |
31
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
79 order. Each message starts with a uint16 message length, |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
80 followed by that many uint16 values. |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
81 The next uint16 contains the message |
1 | 82 command value, and the remaining uint16 values are the arguments |
83 if any for that command. | |
84 </para> | |
85 | |
86 <para> | |
87 Any arguments that are keystrokes or characters are represented | |
88 as 16 bit unicode. Note that the first 256 such characters are | |
89 identical to the ISO-8859-1 latin character set. | |
90 </para> | |
91 | |
92 <para> | |
93 INIT = 0 (TE -> Monitor). The argument is a string of uint16 | |
94 characters. The meaning of these characters is defined by the | |
95 monitor. It might be a fully qualified path name, or some other | |
96 data used by the monitor to drive the monitoring of this | |
97 connection. | |
98 </para> | |
99 | |
100 <para> | |
101 ACTIVATE = 1 (TE -> Monitor). The first argument is the | |
102 number of lines. The second argument is the number of columns. | |
25
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
103 That is followed by lines*columns uint16 character codes for |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
104 the current screen contents. |
1 | 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> | |
2 | 111 KEYSTATE = 2 (TE -> Monitor). The argument is a single uint16 |
112 value, 1 for key down, 0 for key up. The TE tracks a single special | |
113 key for the monitor, and reports key up/down state when it changes. | |
25
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
114 The actual key should be configurable. |
1 | 115 </para> |
116 | |
117 <para> | |
118 CURSORMOVE = 3 (TE -> Monitor). | |
23
2586a4f5c8c3
add mechanism to allow getfield from other threads
Carl Byington <carl@five-ten-sg.com>
parents:
18
diff
changeset
|
119 The first argument is the line number (0..23), |
2586a4f5c8c3
add mechanism to allow getfield from other threads
Carl Byington <carl@five-ten-sg.com>
parents:
18
diff
changeset
|
120 the second argument is the column number (0..79), and the third |
2586a4f5c8c3
add mechanism to allow getfield from other threads
Carl Byington <carl@five-ten-sg.com>
parents:
18
diff
changeset
|
121 argument is the reason for sending this cursor update. REASON=0 is |
2586a4f5c8c3
add mechanism to allow getfield from other threads
Carl Byington <carl@five-ten-sg.com>
parents:
18
diff
changeset
|
122 from a previous CURSORREQUEST command. REASON=1 is a cursor update |
2586a4f5c8c3
add mechanism to allow getfield from other threads
Carl Byington <carl@five-ten-sg.com>
parents:
18
diff
changeset
|
123 related to the previous SCREENCHANGE buffer update. REASON=2 is |
2586a4f5c8c3
add mechanism to allow getfield from other threads
Carl Byington <carl@five-ten-sg.com>
parents:
18
diff
changeset
|
124 a cursor update caused by user keystrokes. |
1 | 125 </para> |
126 | |
127 <para> | |
128 SCREENCHANGE = 4 (TE -> Monitor). The first argument is the | |
129 number of lines. The second argument is the number of columns. | |
25
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
130 That is followed by lines*columns uint16 character codes for |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
131 the current screen contents. |
1 | 132 </para> |
133 | |
134 <para> | |
135 FIELDVALUE = 5 (TE -> Monitor). | |
136 SETFIELD = 5 (Monitor -> TE). | |
137 The first argument is the line number (0..23) | |
138 and the second argument is the column number (0..79). | |
139 That is followed by the field value, a sequence of uint16 | |
140 character codes from the screen buffer. The field | |
31
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
141 covers N columns, where N = (message length - 4). |
1 | 142 When sent from the monitor to the emulator, this causes |
18
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
143 the emulator to send the field codes to the host (for async |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
144 modes) or to set the specified field contents (for block modes). |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
145 This is also used as the reply message from the emulator to the |
1 | 146 monitor for a previous GETFIELD from the monitor. |
147 </para> | |
148 | |
149 <para> | |
150 GETFIELD = 6 (Monitor -> TE). | |
151 The first argument is the line number (0..23) | |
152 and the second argument is the starting column number (0..79), | |
153 and the third argument is the field length in columns. | |
154 This command causes the emulator to send a FIELDVALUE message | |
155 back to the monitor. | |
156 </para> | |
157 | |
158 <para> | |
159 SCREENWATCH = 7 (Monitor -> TE). | |
160 The first argument is the line number (0..23) | |
161 and the second argument is the starting column number (0..79), | |
162 and the third argument is the field length in columns. | |
163 This command causes the emulator to watch the specified | |
164 part of the screen for changes. When that part of the screen | |
165 changes, the emulator will send a SCREENCHANGE message back | |
25
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
166 to the monitor. The initial screen watch area is the entire |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
167 screen. |
1 | 168 </para> |
2 | 169 |
170 <para> | |
13 | 171 DEPRESS = 8 (Monitor -> TE). The argument is a single uint16 |
172 value containing the vk_key value. This command causes the emulator | |
173 to simulate a keypress for that key. The codes are defined | |
174 <ulink url="http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731">here</ulink>. | |
175 </para> | |
176 | |
177 <para> | |
178 SHOWURL = 9 (Monitor -> TE). The single argument is a sequence | |
179 of uint16 character codes forming a URL to be displayed. | |
2 | 180 </para> |
16
a481d8fb5571
add switch session command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
13
diff
changeset
|
181 |
a481d8fb5571
add switch session command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
13
diff
changeset
|
182 <para> |
a481d8fb5571
add switch session command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
13
diff
changeset
|
183 SWITCHSESSION = 10 (Monitor -> TE). There are no arguments. The TE |
a481d8fb5571
add switch session command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
13
diff
changeset
|
184 should display this session. |
a481d8fb5571
add switch session command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
13
diff
changeset
|
185 </para> |
18
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
186 |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
187 <para> |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
188 CURSORREQUEST = 11 (Monitor -> TE). There are no arguments. The TE |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
189 should send a CURSORMOVE update to the monitor. Cursor movement caused |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
190 by SETFIELD or DEPRESS commands does not trigger CURSORMOVE updates |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
191 in block mode (tn5250) sessions. Those commands do trigger CURSORMOVE |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
192 updates in async mode (telnet, ssh) sessions. |
a94ca5a89fe8
add cursor request command to the TE
Carl Byington <carl@five-ten-sg.com>
parents:
16
diff
changeset
|
193 </para> |
31
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
194 |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
195 <para> |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
196 SAYSTRING = 12 (TE -> Monitor). The first argument is nonzero if |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
197 any current speech should be flushed. The second argument is nonzero |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
198 if this speech should be synchronous. That is followed by uint16 |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
199 character codes to be spoken. |
0bc0b4798d9e
fix saystring(12) command for proper unicode and document it
Carl Byington <carl@five-ten-sg.com>
parents:
25
diff
changeset
|
200 </para> |
1 | 201 </refsect1> |
202 | |
25
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
203 <refsect1 id='synchronization.1'> |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
204 <title>Synchronization issues</title> |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
205 <para> |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
206 The terminal emulator should delay sending CURSORMOVE and SCREENCHANGE |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
207 messages until the socket has been quiet for 10 milliseconds or until |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
208 the 5250 block mode terminal keyboard has been unlocked by the host. |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
209 The monitor might send SETFIELD or DEPRESS messages in response to |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
210 those CURSORMOVE or SCREENCHANGE messages. If the 5250 block mode |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
211 keyboard is locked, the terminal emulator should buffer those keystrokes |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
212 and send them when the keyboard unlocks. |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
213 </para> |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
214 </refsect1> |
3975d341e3dd
document synchronization issues
Carl Byington <carl@five-ten-sg.com>
parents:
23
diff
changeset
|
215 |
1 | 216 <refsect1 id='todo.1'> |
217 <title>TODO</title> | |
218 <para> | |
219 Nothing. | |
220 </para> | |
221 </refsect1> | |
222 | |
223 <refsect1 id='copyright.1'> | |
224 <title>Copyright</title> | |
225 <para> | |
226 Copyright (C) 2014 by 510 Software Group <carl@five-ten-sg.com> | |
227 </para> | |
228 <para> | |
229 This program is free software; you can redistribute it and/or modify it | |
230 under the terms of the GNU General Public License as published by the | |
231 Free Software Foundation; either version 3, or (at your option) any | |
232 later version. | |
233 </para> | |
234 <para> | |
235 You should have received a copy of the GNU General Public License along | |
236 with this program; see the file COPYING. If not, please write to the | |
237 Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
238 </para> | |
239 </refsect1> | |
240 | |
241 <refsect1 id='version.1'> | |
242 <title>Version</title> | |
243 <para> | |
244 @VERSION@ | |
245 </para> | |
246 </refsect1> | |
247 </refentry> | |
248 | |
249 </reference> |