|
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 |