comparison xml/510connectbot.in @ 513:13a922d1fc5c

update docs
author Carl Byington <carl@five-ten-sg.com>
date Fri, 10 Feb 2023 17:16:47 -0700
parents 2eb4fa13b9ef
children 947ea334735d
comparison
equal deleted inserted replaced
512:e1dd1fd46e18 513:13a922d1fc5c
3 <partintro> 3 <partintro>
4 <title>Packages</title> 4 <title>Packages</title>
5 5
6 <para> 6 <para>
7 The various source and binary packages are available at <ulink 7 The various source and binary packages are available at <ulink
8 url="http://www.five-ten-sg.com/@PACKAGE@/packages/">http://www.five-ten-sg.com/@PACKAGE@/packages/</ulink>. 8 url="https://www.five-ten-sg.com/@PACKAGE@/packages/">https://www.five-ten-sg.com/@PACKAGE@/packages/</ulink>.
9 The most recent documentation is available at <ulink 9 The most recent documentation is available at <ulink
10 url="http://www.five-ten-sg.com/@PACKAGE@/">http://www.five-ten-sg.com/@PACKAGE@/</ulink>. 10 url="https://www.five-ten-sg.com/@PACKAGE@/">https://www.five-ten-sg.com/@PACKAGE@/</ulink>.
11 </para> 11 </para>
12 12
13 <para> 13 <para>
14 A <ulink url="http://www.selenic.com/mercurial/wiki/">Mercurial</ulink> source 14 A <ulink url="http://www.selenic.com/mercurial/wiki/">Mercurial</ulink> source
15 code repository for this project is available at <ulink 15 code repository for this project is available at <ulink
16 url="http://hg.five-ten-sg.com/@PACKAGE@/">http://hg.five-ten-sg.com/@PACKAGE@/</ulink>. 16 url="https://hg.five-ten-sg.com/@PACKAGE@/">https://hg.five-ten-sg.com/@PACKAGE@/</ulink>.
17 </para> 17 </para>
18 18
19 <para> 19 <para>
20 A companion terminal monitor project is available at <ulink 20 A companion terminal monitor project is available at <ulink
21 url="http://www.five-ten-sg.com/510ConnectbotMonitor">http://www.five-ten-sg.com/510ConnectbotMonitor</ulink> 21 url="https://www.five-ten-sg.com/510ConnectbotMonitor">https://www.five-ten-sg.com/510ConnectbotMonitor</ulink>
22 </para> 22 </para>
23 23
24 <para>
25 Bitcoin donations for this project may be sent to
26 <ulink url="bitcoin:1EkbpYhcbAwmU3L7xXPisHQdwWSyjdaY2A">bitcoin:1EkbpYhcbAwmU3L7xXPisHQdwWSyjdaY2A</ulink>
27 </para>
28 </partintro> 24 </partintro>
29 25
30 <refentry id="x@PACKAGE@.1"> 26 <refentry id="x@PACKAGE@.1">
31 <refentryinfo> 27 <refentryinfo>
32 <date>2019-10-04</date> 28 <date>2019-10-04</date>
102 all 24 function keys for 5250 emulation. A hardware button can 98 all 24 function keys for 5250 emulation. A hardware button can
103 be configured to display that function keypad. 99 be configured to display that function keypad.
104 </para></listitem> 100 </para></listitem>
105 101
106 <listitem><para> 102 <listitem><para>
107 A deployment.connections text file is read (and optionally deleted) on 103 A 510Connectbot.connections text file is read (and optionally deleted) on
108 startup. This may be used to preconfigure the global options 104 startup. This may be used to preconfigure the global options
109 and to create an initial set of host connections. This is only 105 and to create an initial set of host connections. This is only
110 useful for bulk deployments. 106 useful for bulk deployments.
111 </para></listitem> 107 </para></listitem>
112 108
160 156
161 <para> 157 <para>
162 The terminal monitor is invoked by calling an android Intent 158 The terminal monitor is invoked by calling an android Intent
163 named "com.five_ten_sg.connectbot.monitor.MonitorService". That 159 named "com.five_ten_sg.connectbot.monitor.MonitorService". That
164 ensures that the monitor process is running, and should then 160 ensures that the monitor process is running, and should then
165 be listening on TCP port 6000 for incoming connections. The terminal 161 be listening on TCP port 6001 for incoming connections. The terminal
166 emulator then connects to the terminal monitor on port 6000. 162 emulator then connects to the terminal monitor on port 6001.
167 The native android Intent and Service communication mechanisms 163 The native android Intent and Service communication mechanisms
168 are not used. 164 are not used.
169 </para> 165 </para>
170 166
171 <para> 167 <para>
186 represented as Microsoft Virtual-Key codes, defined 182 represented as Microsoft Virtual-Key codes, defined
187 <ulink url="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">here</ulink>. 183 <ulink url="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">here</ulink>.
188 </para> 184 </para>
189 185
190 <para> 186 <para>
187 The first message over the socket must be the INIT message
188 from the TE. This allows the terminal monitor to load any
189 required data.
190 </para>
191
192 <para>
193 That is followed by a pair of SCREENCHANGE/CURSORMOVE messages from
194 the TE whenever the screen contents have changed. The terminal monitor
195 may respond to the SCREENCHANGE message with a SCREENWATCH message to
196 restrict the part of the screen that is to be monitored for updates.
197 </para>
198
199 <para>
200 At any time, the terminal monitor may send GETFIELD or SETFIELD messages
201 to get or set the value of fields on the current screen. GETFIELD
202 messages from the terminal monitor must be followed by a FIELDVALUE
203 message from the TE.
204 </para>
205
206 <para>
191 INIT = 0 (TE -> Monitor). The argument is a string of uint16 207 INIT = 0 (TE -> Monitor). The argument is a string of uint16
192 characters. The meaning of these characters is defined by the 208 characters. The meaning of these characters is defined by the
193 monitor. It might be a fully qualified path name, or some other 209 monitor. It might be a fully qualified path name, or some other
194 data used by the monitor to drive the monitoring of this 210 data used by the monitor to drive the monitoring of this
195 connection. 211 connection.
201 That is followed by lines*columns uint16 character codes for 217 That is followed by lines*columns uint16 character codes for
202 the current screen contents. 218 the current screen contents.
203 This connection is now the active connection. It is the 219 This connection is now the active connection. It is the
204 topmost (or only) window visible to the user - typed keystrokes 220 topmost (or only) window visible to the user - typed keystrokes
205 will be sent to the host on the other end of this connection. 221 will be sent to the host on the other end of this connection.
206 </para> 222 The TE must reset the screen watch area to the entire screen.
223 </para>
224
225 <para>
226 Every ACTIVATEE message from the TE must be followed by a
227 CURSORMOVE message.
228 </para>
229
207 230
208 <para> 231 <para>
209 KEYSTATE = 2 (TE -> Monitor). The argument is a single uint16 232 KEYSTATE = 2 (TE -> Monitor). The argument is a single uint16
210 value, 1 for key down, 0 for key up. The TE tracks a single special 233 value, 1 for key down, 0 for key up. The TE tracks a single special
211 key for the monitor, and reports key up/down state when it changes. 234 key for the monitor, and reports key up/down state when it changes.
217 The first argument is the line number (0..23), 240 The first argument is the line number (0..23),
218 the second argument is the column number (0..79), and the third 241 the second argument is the column number (0..79), and the third
219 argument is the reason for sending this cursor update. REASON=0 is 242 argument is the reason for sending this cursor update. REASON=0 is
220 from a previous CURSORREQUEST command. REASON=1 is a cursor update 243 from a previous CURSORREQUEST command. REASON=1 is a cursor update
221 related to the previous SCREENCHANGE buffer update. REASON=2 is 244 related to the previous SCREENCHANGE buffer update. REASON=2 is
222 a cursor update caused by user keystrokes. 245 a cursor update caused by user keystrokes or cursor movement
246 triggered by SETFIELD messages from the runtime.
223 </para> 247 </para>
224 248
225 <para> 249 <para>
226 SCREENCHANGE = 4 (TE -> Monitor). The first argument is the 250 SCREENCHANGE = 4 (TE -> Monitor). The first argument is the
227 number of lines. The second argument is the number of columns. 251 number of lines. The second argument is the number of columns.
228 That is followed by lines*columns uint16 character codes for 252 That is followed by lines*columns uint16 character codes for
229 the current screen contents. 253 the current screen contents. The TE must reset the screen
230 </para> 254 watch area to the entire screen.
231 255 </para>
232 <para> 256
233 Every SCREENCHANGE message from the TE will be followed by a 257 <para>
258 Every SCREENCHANGE message from the TE must be followed by a
234 CURSORMOVE message. 259 CURSORMOVE message.
235 </para> 260 </para>
236 261
237 <para> 262 <para>
238 When the TE sends the screen contents as a result of a previous screen 263 When the TE sends the screen contents as a result of a previous screen
254 character codes from the screen buffer. The field 279 character codes from the screen buffer. The field
255 covers N columns, where N = (message length - 4). 280 covers N columns, where N = (message length - 4).
256 When sent from the monitor to the emulator, this causes 281 When sent from the monitor to the emulator, this causes
257 the emulator to send the field codes to the host (for async 282 the emulator to send the field codes to the host (for async
258 modes) or to set the specified field contents (for block modes). 283 modes) or to set the specified field contents (for block modes).
259 If the field length is zero, the TE should move the cursor to the specified line/column. 284 Note that the field length may be zero, in which case the
285 block mode field should cleared.
286 </para>
287
288 <para>
289 If either of the line or column numbers are -1 (0xffff), the field is
290 taken from the current cursor position.
260 </para> 291 </para>
261 292
262 <para> 293 <para>
263 This is also used as the reply message from the emulator to the 294 This is also used as the reply message from the emulator to the
264 monitor for a previous GETFIELD from the monitor. 295 monitor for a previous GETFIELD from the monitor.
272 This command causes the emulator to send a FIELDVALUE message 303 This command causes the emulator to send a FIELDVALUE message
273 back to the monitor. 304 back to the monitor.
274 </para> 305 </para>
275 306
276 <para> 307 <para>
308 If either of the line or column numbers are -1
309 (0xffff), the block mode field is taken from the
310 current cursor position, the specified field length
311 should be ignored, and the entire field contents are
312 sent back in the FIELDVALUE reply message.
313 </para>
314
315 <para>
277 SCREENWATCH = 7 (Monitor -> TE). 316 SCREENWATCH = 7 (Monitor -> TE).
278 The first argument is the line number (0..23) 317
279 and the second argument is the starting column number (0..79), 318 The number of arguments must be a multiple of
280 and the third argument is the field length in columns. 319 three. The arguments form a sequence of triples, where
281 This command causes the emulator to watch the specified 320 the first element is the line number (0..23), the
282 part of the screen for changes. When that part of the screen 321 second element is the starting column number (0..79),
283 changes, the emulator will send a SCREENCHANGE message back 322 and the third element is the field length in columns
284 to the monitor. The initial screen watch area is the entire 323 This command causes the emulator to watch the
285 screen. 324 specified parts of the screen for updates. When any of
325 those parts of the screen are updated by the host
326 (even if the old and new characters are the same) ,
327 the emulator will send a SCREENCHANGE message back to
328 the monitor. The initial screen watch area is the
329 entire screen. The screen watch area is reset to the
330 entire screen whenever the TE sends an ACTIVATE or
331 SCREENCHANGE message.
286 </para> 332 </para>
287 333
288 <para> 334 <para>
289 Subsequent screenwatch requests replace the current one, so the TE 335 Subsequent screenwatch requests replace the current one, so the TE
290 has only one watch area at any time. 336 has only one watch area at any time.
291 </para> 337 </para>
292 338
293 <para> 339 <para>
294 DEPRESS = 8 (Monitor -> TE). The argument is a single uint16 340 DEPRESS = 8 (Monitor -> TE). The argument is a single
295 value containing the vk_key value. This command causes the emulator 341 uint16 value containing the vk_key value. This command
296 to simulate a keypress for that key. The codes are defined 342 causes the emulator to simulate a keypress for that
297 <ulink url="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">here</ulink>. 343 key. This is used for the function keys and cursor
344 movement keys. See DEPRESSUNICODE for ascii control
345 characters. Note that the TE must convert these
346 virtual key codes into the appropriate escape sequence
347 used by the host protocol (VT320, 5250, 3270, etc).The
348 base codes are defined <ulink
349 url="https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes">here</ulink>.
298 </para> 350 </para>
299 351
300 <para> 352 <para>
301 SHOWURL = 9 (Monitor -> TE). The single argument is a sequence 353 SHOWURL = 9 (Monitor -> TE). The single argument is a sequence
302 of uint16 character codes forming a URL to be displayed. 354 of uint16 character codes forming a URL to be displayed.
355 Strings within the URL must be URL escaped, so all of the
356 characters in the argument are less than 128.
303 </para> 357 </para>
304 358
305 <para> 359 <para>
306 SWITCHSESSION = 10 (Monitor -> TE). There are no arguments. The TE 360 SWITCHSESSION = 10 (Monitor -> TE). There are no arguments. The TE
307 should display this session. 361 should display the session associated with this socket.
308 </para> 362 </para>
309 363
310 <para> 364 <para>
311 CURSORREQUEST = 11 (Monitor -> TE). There are no arguments. The TE 365 CURSORREQUEST = 11 (Monitor -> TE). There are no arguments. The TE
312 should send a CURSORMOVE update to the monitor. Cursor movement caused 366 should send a CURSORMOVE update to the monitor. Cursor movement caused
320 any current speech should be flushed. The second argument is nonzero 374 any current speech should be flushed. The second argument is nonzero
321 if this speech should be synchronous. That is followed by uint16 375 if this speech should be synchronous. That is followed by uint16
322 character codes to be spoken. Note that the language is specified 376 character codes to be spoken. Note that the language is specified
323 by the monitor, not the TE. 377 by the monitor, not the TE.
324 </para> 378 </para>
379
380 <para>
381 SETFOCUS = 13 (Monitor -> TE). The first argument is the
382 line number (-1..23) and the second argument is the column number
383 (-1..79). The TE should set the input focus to the specified field
384 position by moving the cursor.
385 </para>
386
387 <para>
388 KEYBOARD = 14 (Monitor -> TE). The argument is a single
389 uint16 value, 0 to hide the soft keyboard, 1 to show the soft keyboard.
390 </para>
391
392 <para>
393 DEPRESSUNICODE = 15 (Monitor -> TE). The argument is a
394 single uint16 value containing the unicode value. This message causes
395 the TE to send the keystroke to the host. This is used for ascii
396 control characters. Use DEPRESS for function and cursor movement
397 keys.
398 </para>
399
400 <para>
401 FOREGROUND = 16 (Monitor -> TE). There are no arguments.
402 This is sent to the TE whenever the terminal monitor may have become the
403 visible foreground application. The TE should now force itself to be
404 the visible foreground application.
405 </para>
406
325 </refsect1> 407 </refsect1>
326 408
327 <refsect1 id='todo.1'> 409 <refsect1 id='todo.1'>
328 <title>TODO</title> 410 <title>TODO</title>
329 <para> 411 <para>
330 The tn5250 ssl/tls key storage should use the same storage mechanism 412 The tn5250 tls key storage should use the same storage mechanism
331 as the base ssh key storage. 413 as the base ssh key storage.
332 </para> 414 </para>
333 </refsect1> 415 </refsect1>
334 416
335 <refsect1 id='copyright.1'> 417 <refsect1 id='copyright.1'>
336 <title>Copyright</title> 418 <title>Copyright</title>
337 <para> 419 <para>
338 Copyright (C) 2019 by 510 Software Group &lt;carl@five-ten-sg.com&gt; 420 Copyright (C) 2019-2023 by 510 Software Group &lt;carl@five-ten-sg.com&gt;
339 </para> 421 </para>
340 <para> 422 <para>
341 This program is free software; you can redistribute it and/or modify it 423 This program is free software; you can redistribute it and/or modify it
342 under the terms of the GNU General Public License as published by the 424 under the terms of the GNU General Public License as published by the
343 Free Software Foundation; either version 3, or (at your option) any 425 Free Software Foundation; either version 3, or (at your option) any
358 </refsect1> 440 </refsect1>
359 </refentry> 441 </refentry>
360 442
361 <refentry id="x@PACKAGE@.5"> 443 <refentry id="x@PACKAGE@.5">
362 <refentryinfo> 444 <refentryinfo>
363 <date>2019-10-04</date> 445 <date>2023-02-10</date>
364 <author> 446 <author>
365 <firstname>Carl</firstname> 447 <firstname>Carl</firstname>
366 <surname>Byington</surname> 448 <surname>Byington</surname>
367 <affiliation><orgname>510 Software Group</orgname></affiliation> 449 <affiliation><orgname>510 Software Group</orgname></affiliation>
368 </author> 450 </author>
369 </refentryinfo> 451 </refentryinfo>
370 452
371 <refmeta> 453 <refmeta>
372 <refentrytitle>deployment.connections</refentrytitle> 454 <refentrytitle>510Connectbot.connections</refentrytitle>
373 <manvolnum>5</manvolnum> 455 <manvolnum>5</manvolnum>
374 <refmiscinfo>@PACKAGE@ @VERSION@</refmiscinfo> 456 <refmiscinfo>@PACKAGE@ @VERSION@</refmiscinfo>
375 </refmeta> 457 </refmeta>
376 458
377 <refnamediv id='name.5'> 459 <refnamediv id='name.5'>
378 <refname>deployment.connections</refname> 460 <refname>510Connectbot.connections</refname>
379 <refpurpose>deployment file for @PACKAGE@</refpurpose> 461 <refpurpose>connections file for @PACKAGE@</refpurpose>
380 </refnamediv> 462 </refnamediv>
381 463
382 <refsect1 id='description.5'> 464 <refsect1 id='description.5'>
383 <title>Description</title> 465 <title>Description</title>
384 466
385 <para>The <command>deployment.connections</command> sample 467 <para>
386 file is below. If this file exists at the top 468 The <command>510Connectbot.connections</command>
387 level of the external storage (as returned by 469 sample file is below. If this file exists in the
388 Environment.getExternalStorageDirectory().getAbsolutePath()), 470 AccuSpeech/VoiceProjects directory or in the Downloads
389 it is read, parsed, and optionally deleted. Comments start with # 471 directory, it is read, parsed, and optionally deleted.
390 and extend to the end of the line. 472 Comments start with # and extend to the end of the line.
391 </para> 473 </para>
392 474
393 <para> 475 <para>
394 The deployment file is deleted unless it contains "delete_deployment=false" 476 The connections file is deleted unless it contains
395 in the global options section. In that case, the file remains, and 477 "delete_deployment=false" in the global options
396 it is read and parsed every time the app is launched. 478 section. In that case, the file remains, and it is read
479 and parsed every time the app is launched.
397 </para> 480 </para>
398 481
399 <literallayout class="monospaced"><![CDATA[ 482 <literallayout class="monospaced"><![CDATA[
400 # 483 #
401 # available host keys: 484 # available host keys: