Hi Chris,
Thanks for your help. Yes, Apex also uses ARM processor. The crucial thing
we need would be libraries for tying the iostream to that of how KeySoft
would handle it. For instance, a pseudo library for the KS IO class using
braille stream might be:
Class brlio: public iostream
{
// Whatever we need to lookup braille tables.
Public:
Brlout(); // The default guy for having braille output.
Brlin(); // The default format for getting braille characters.
};
// In code, a basic "Hello World" under theoretical KeySoft interface (in
C++) would be:
#include "brlio.h"
#include "keysoft.lib"
Using namespace std;
Int main()
{
Brlout << "Hello, world!" << endl;
Return (0);}
// A function to get braille input from the user and have the thing
displayed (again in C++) would be:
Void my_name()
{
Brlout << "Hi, what is your name?" << endl;
String name; // My name.
Brlin >> name;
Brlout << "Oh, your name is " << name << "!" << endl;
}
In actual KeySoft interface:
KeySoft prompts, "Hi, what is your name?"
I type "Joseph"
KeySoft says, "Oh, your name is Joseph!"
At least this is how I envision KeySoft interface would be like if the SDK
library is here. All we need at this point would be just that - an iostream
type ones for braille input and output, getting speech output and hooking
KeySoft document types and using WinCE function calls for helping out with
our tasks. But there is a design limit: The target CPU family must match the
one that SDK supports, and there are a variety of OS's being used on
different generations of BrailleNote. Also, each of the BN family uses
different CPU architecture - classic uses MIPS R4000 at 100 MHz, PK uses
Strong ARM at around 400 MHz, mPower uses Intel PXA270 at 416 MHz and Apex
uses Freescale i.MX31 at 528 MHz - in other words, all of these except
Classic has base target of ARM CPU core. As for OS being used: Classic prior
to KS6.1 uses Windows CE 2.12, Classic after 6.1, PK and mPower uses Windows
CE.NET 4.2 (basis for Windows Mobile 2003) and Apex uses Windows Embedded CE
6.0 (basis for Windows Phone 7). This means that everyone except Apex has 32
process limit with each of them allocated 32 MB of virtual memory (again,
this is the reason why there are more freezing under mPower), whereas Apex
allows up to 32,768 processes and up to 2 GB of VM per process (not
implemented fully yet, I presume). What does this translate to external
programs? Classic, mPower and PK would experience slowness when a large
third-party app is running, whereas Apex would not (in theory) and it allows
one to run hundreds of these apps - the only real limit is 256 MB of
physical RAM, with 192 MB allocated for actual RAM and 64 MB being RAM Disk
(according to my calculations, Alex and others, please correct me if I'm
wrong).
I know, this topic is somewhat too technical for beginners to understand.
For beginners, just know that there are "researchers" on this list and that
these "experts" are the ones answering most of the questions (not the
company, at least in public); but I really hope there would be useful
surprises in the future from HW. Hope this helps.
Cheers,
Joseph P.S. Alex, I have just figured out how to sort a linked list of
integers in ascending order.
From: [email protected] [mailto:[email protected]] On Behalf Of
Chris
Sent: Tuesday, August 24, 2010 8:01 PM
To: Joseph Lee
Cc: bn
Subject: Re: [Braillenote] KeySoft Checkbook: Need developers for helping us
write the code...
Joseph and others,
I'm willing to help on this project. My name is Chris and my day job is
programming and server administration. I don't use a BrailleNote but I'm
familiar with the current programming challenges of targeting that device. I
previously was working on an IM client for running on an mPower but then the
update came around and there was no longer any need. I have all Embedded
Visual C++ 4.0 installed with the compiler required for ARM processors such
as the one in the BN mPower.
- Chris
On Tue, Aug 24, 2010 at 1:27 PM, Joseph Lee <[email protected]>
wrote:
Hi guys,
At least Alex laid the foundation for this project by creating a new C++
project under and IDE. At the moement we are in the design stage to design
the actual check routines (objects and functions) with hopes that perhaps we
could divide the project into groups and focus on one aspect of the project
at a time. I plan to produce the input and output routines (and perhaps help
messages) to emulate that of KeySoft interface - mostly writing output
messages, with Alex saying he'll work on creating check class and other
functions. As always, we need skilled developers to get this project moving
forward (I asked Dan to help us out with coding things).
At least that's the update as of now. Thanks.
Cheers,
Joseph
___
Replies to this message will go directly to the sender.
If your reply would be useful to the list, please send a
copy to the list as well.
To leave the BrailleNote list, send a blank message to
[email protected]
To view the list archives or change your preferences, visit
http://list.humanware.com/mailman/listinfo/braillenote
___
Replies to this message will go directly to the sender.
If your reply would be useful to the list, please send a
copy to the list as well.
To leave the BrailleNote list, send a blank message to
[email protected]
To view the list archives or change your preferences, visit
http://list.humanware.com/mailman/listinfo/braillenote