I'm writing an inventory counting application that uses a custom keypad.
The custom keypad has very large tactile keys that allows auditors to enter
data as fast as they can move their fingers.  They fastest guys enter data
faster than you would probably believe.  Each time a transaction is entered
the program updates the screen with a history of the last 8 - 10
transactions and running totals.  Most of the screen is being rewritten with
every transaction. I'm using WinDrawChars to do the updates.

The problem is the fastest auditors can get ahead of the screen updates.  As
of a few weeks ago they could get so far ahead they would lose data.  Since
then I changed the screen updates so a whole line is being written at a time
instead of portions of a line.  I reduced the number of writes to the screen
to about a third of what they were and it made a noticeable difference.
Some of the auditors can still get ahead of the screen updates but they
don't seem to lose data now.

I don't think I can do much to reduce the number of writes to the screen but
there are a few things I can do to make that part of the program more
efficient.  I have the impression that writing to the screen consumes
overwhelmingly more time than my other inefficiencies and I wonder if it's
worth it to bother with them.  Each transaction is written to a history file
which is opened and closed for each write.  I could leave it open and
eliminate the open and close on each transaction.  I'm also using a
push-down stack to keep numeric variables that represent the transactions.
I could use a circular stack and save a complete line of text for every
transaction.  Then I wouldn't have to push it down and reformat it for every
transaction. My question is compared to the time it takes to write to the
display are these kinds of improvements going to make any difference?

We're using Handera 330's at present but we're going to PDA's with faster
CPU's (probably Tungstens) in the murky future.  Are we likely to see much
improvement in screen updates?  My impression is that display technologies
aren't changing that much.

Is there any way to increase the size of the keyboard buffer?

The good news is that the auditors probably have a burst rate that's much
faster than their average rate for entering data.  While they're entering
data for a single physical location they go very fast but when they have to
change locations they slow down.

I'd appreciate hearing about any specific observations any of you have had
on these issues.



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to