plugins/consoles/docs/consoles.pod
changeset 0 7f656887cf89
child 34 284c68d7a3ac
equal deleted inserted replaced
-1:000000000000 0:7f656887cf89
       
     1 # consoles.pod
       
     2 #
       
     3 # Copyright (c) 2008-2010 Accenture. All rights reserved.
       
     4 # This component and the accompanying materials are made available
       
     5 # under the terms of the "Eclipse Public License v1.0"
       
     6 # which accompanies this distribution, and is available
       
     7 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 #
       
     9 # Initial Contributors:
       
    10 # Accenture - Initial contribution
       
    11 #
       
    12 
       
    13 __END__
       
    14 
       
    15 =head1 Console Implementations
       
    16 
       
    17 =head2 Overview
       
    18 
       
    19 Since its inception, Symbian OS has supported a simple console API; C<CConsoleBase>. The tool-kit provides various implementations of this interface, each suited to different circumstances. This document is intended to provide an overview of the console implementations that are available, and their main pros and cons.
       
    20 
       
    21 =head2 Consoles Provided By Symbian OS
       
    22 
       
    23 =head3 econs.dll
       
    24 
       
    25 The console implementation for the text window server. Provided by Symbian OS.
       
    26 
       
    27 Pros:
       
    28 
       
    29 =over 5
       
    30 
       
    31 =item *
       
    32 
       
    33 Has few dependencies.
       
    34 
       
    35 =item *
       
    36 
       
    37 Supported on the WINSCW emulator.
       
    38 
       
    39 =item *
       
    40 
       
    41 Supports multiple concurrent C<CConsoleBase> clients. Each get a separate window. Different windows can be brought into the foreground by dragging using a pointer.
       
    42 
       
    43 =item *
       
    44 
       
    45 Light-weight - boots quickly and is reasonably fast in use.
       
    46 
       
    47 =item *
       
    48 
       
    49 Can be run remotely via a serial connection using a VT100 screen driver implementation.
       
    50 
       
    51 =item *
       
    52 
       
    53 Reasonably bug free.
       
    54 
       
    55 =back
       
    56 
       
    57 Cons:
       
    58 
       
    59 =over 5
       
    60 
       
    61 =item *
       
    62 
       
    63 Does not support scrolling. Once text has disappeared from the top of the console it can not be retrieved.
       
    64 
       
    65 =item *
       
    66 
       
    67 Requires hardware with a full keyboard.
       
    68 
       
    69 =item *
       
    70 
       
    71 Does not support color or attributes.
       
    72 
       
    73 =back
       
    74 
       
    75 Typically, this console is used for minimal base-port ROMs and the early stages of product bring up. However, because it boots quickly under the emulator, it is also the console of choice for emulator based debugging of console applications.
       
    76 
       
    77 =head3 econseik.dll
       
    78 
       
    79 A console implementation for the graphical window server.
       
    80 
       
    81 Pros:
       
    82 
       
    83 =over 5
       
    84 
       
    85 =item *
       
    86 
       
    87 None.
       
    88 
       
    89 =back
       
    90 
       
    91 Cons:
       
    92 
       
    93 =over 5
       
    94 
       
    95 =item *
       
    96 
       
    97 Buggy. Slow to redraw.
       
    98 
       
    99 =item *
       
   100 
       
   101 Tends to select a font that is small and hard to read.
       
   102 
       
   103 =item *
       
   104 
       
   105 Does not play nicely with UI frameworks because its window obscures the entire screen. On some UI platforms this makes it impossible to navigate away from.
       
   106 
       
   107 =item *
       
   108 
       
   109 Does not support scrolling. Once text has disappeared from the top of the console it cannot be retrieved.
       
   110 
       
   111 =item *
       
   112 
       
   113 Requires hardware with a full keyboard.
       
   114 
       
   115 =item *
       
   116 
       
   117 Does not support color or attributes.
       
   118 
       
   119 =back
       
   120 
       
   121 This console doesn't have much to recommend it. The fshell makes it obsolete with Guicons.
       
   122 
       
   123 =head2 Consoles Provided By FShell
       
   124 
       
   125 =head3 Guicons
       
   126 
       
   127 A console implementation for the graphical window server. Currently only supported on S60, but has minimal UI framework dependencies making it easy to port.
       
   128 
       
   129 Pros:
       
   130 
       
   131 =over 5
       
   132 
       
   133 =item *
       
   134 
       
   135 Does not require a full keyboard - can use whatever text entry capabilities the handset its running on supports.
       
   136 
       
   137 =item *
       
   138 
       
   139 Provides its own fixed width fonts that are easy to read.
       
   140 
       
   141 =item *
       
   142 
       
   143 Supports multiple console clients via tabbed windows.
       
   144 
       
   145 =item *
       
   146 
       
   147 Supports scrolling.
       
   148 
       
   149 =item *
       
   150 
       
   151 Supports color and attributes.
       
   152 
       
   153 =back
       
   154 
       
   155 Cons:
       
   156 
       
   157 =over 5
       
   158 
       
   159 =item *
       
   160 
       
   161 Can only be used locally, and so hardware with limited text input capabilities can be painful to use.
       
   162 
       
   163 =back
       
   164 
       
   165 This is the console of choice for running on a handset with a full graphical ROM, if remote connectivity is not available.
       
   166 
       
   167 =head3 L<vt100cons.dll|vt100cons>
       
   168 
       
   169 A console implementation that will communicate with a VT100 compatible terminal (or terminal emulator such as HyperTerminal) via a serial connection. There are variants that work over TCP connnections (F<vt100tcpcons.dll>), Bluetooth (F<vt100btcons.dll>) and USB (F<vt100usbcons.dll>).
       
   170 
       
   171 Pros:
       
   172 
       
   173 =over 5
       
   174 
       
   175 =item *
       
   176 
       
   177 Overcomes limitations of the host hardware by using the keyboard and screen of a remote machine.
       
   178 
       
   179 =item *
       
   180 
       
   181 Supports file transfers between the host hardware and the remote machine via L<fshell's|fshell> L<ymodem|ymodem> and L<xmodem|xmodem> commands.
       
   182 
       
   183 =item *
       
   184 
       
   185 Supports color and attributes.
       
   186 
       
   187 =item *
       
   188 
       
   189 The TCP variant supports both passive (i.e. incoming) and active (i.e. outgoing) connections. This, (perhaps used in conjunction with SSH tunnels) can provide an extremely flexible means of establishing a link.
       
   190 
       
   191 =back
       
   192 
       
   193 Cons:
       
   194 
       
   195 =over 5
       
   196 
       
   197 =item *
       
   198 
       
   199 Can only host a single console client per serial channel. However, since L<fshell|fshell> allows multiple commands to share a single console, this doesn't tend to be a major limitation.
       
   200 
       
   201 =back
       
   202 
       
   203 This is the remote console of choice when running on target (i.e. non-emulated) hardware.
       
   204 
       
   205 =head3 L<rcons.dll|rcons>
       
   206 
       
   207 A console implementation that connects via TCP to a Win32 executable (called L<rcons.exe|rcons.exe>) that hosts console windows remotely.
       
   208 
       
   209 Pros:
       
   210 
       
   211 =over 5
       
   212 
       
   213 =item *
       
   214 
       
   215 Supports multiple concurrent C<CConsoleBase> clients. Each get a separate native Windows window.
       
   216 
       
   217 =item *
       
   218 
       
   219 Supports scrolling.
       
   220 
       
   221 =back
       
   222 
       
   223 Cons:
       
   224 
       
   225 =over 5
       
   226 
       
   227 =item *
       
   228 
       
   229 Only supports active (i.e. outgoing) TCP connections to the host PC. This can cause problems if the host PC is protected by a firewall.
       
   230 
       
   231 =item *
       
   232 
       
   233 Does not support color or attributes.
       
   234 
       
   235 =item *
       
   236 
       
   237 Does not support file transfers.
       
   238 
       
   239 =back
       
   240 
       
   241 This console has been largely superceded by L<vt100cons|vt100cons> (or one of its variants) for target use. However, it is still useful on the emulator because a) it is easy to get up an running, and b) new windows automatically appear (rather than needing to explicitly connect a terminal emulator).
       
   242 
       
   243 =head3 win32cons.dll
       
   244 
       
   245 A specialized console for running the WINSCW emulator directly in a DOS box. A batch file F<\epoc32\tools\fshell.bat> is provided for convenience.
       
   246 
       
   247 Pros:
       
   248 
       
   249 =over 5
       
   250 
       
   251 =item *
       
   252 
       
   253 Interfaces with the Windows command prompt (F<cmd.exe>).
       
   254 
       
   255 =back
       
   256 
       
   257 Cons:
       
   258 
       
   259 =over 5
       
   260 
       
   261 =item *
       
   262 
       
   263 Only supported on the emulator.
       
   264 
       
   265 =back
       
   266 
       
   267 The console of choice for running L<fshell|fshell> commands as part of a build process because errors and warnings are reported directly to whatever is controlling the build (normally F<make>).
       
   268 
       
   269 =head3 nullcons.dll
       
   270 
       
   271 A console that provides no input and throws away all output. The console of choice for running L<fshell|fshell> commands headlessly.
       
   272 
       
   273 =head3 iocons.dll
       
   274 
       
   275 A console implementation that exposes L<fshell's|fshell> console sharing functionality via the C<CConsoleBase> API. Used internally to support legacy Symbian console applications.
       
   276 
       
   277 =head3 defcons.dll
       
   278 
       
   279 A dummy console implementation that L<fshell|fshell> (or, more specifically F<iosrv>) uses internally to find a suitable default console implementation. You should never explicitly instanciate this console yourself.
       
   280 
       
   281 =head1 See Also
       
   282 
       
   283 L<fshell|fshell>
       
   284 
       
   285 L<rcons|rcons>
       
   286 
       
   287 L<vt100cons|vt100cons>
       
   288 
       
   289 =head1 Copyright
       
   290 
       
   291 Copyright (c) 2008-2010 Accenture. All rights reserved.
       
   292 
       
   293 =cut