Skip to main content

PhoneME Advanced (Dual Stack) on Windows Mobile - A Few Issues

3 replies [Last post]
mara_fenske
Offline
Joined: 2008-08-01
Points: 0

I love the PhoneME implementation on Windows Mobile. I am using it in place of the JBed program due to JBed's licensing.

I am running into two issues on the implementation that are causing me problems, with the first being a showstopper for my programs:

1 - When a device goes into suspend, the JVM stops calculating the time correctly. For instance, if the phone goes into suspend for power saving reasons at 10:05a, and is suspsended for 15 minutes, when it comes out of suspend, the JVM will begin calculating time based upon the time before suspend. So, until I restart the app, the phone will be 15 minutes off when requesting time. From there, it only gets worse after more and more power suspends. I was able to find this due to the time being literally hours and days off, and correcting itself only upon program restart.

2 - The Windows Mobile 5 build of the Advanced Dual Stack works on Windows Mobile 6 devices, but with devices that have full VGA screens, the build will utilize the higher resolution instead of falling back to the lower resolution. This has an adverse affect of making the text, etc, so small that only a 10 year old with perfect vision could read it. I'm wondering if there is a way to tell PhoneME what resolution to run under?

3 (informational) - I was able to partly solve issue #2 by using the Windows Mobile 2003 compile. In fact, the only way I was able to run Windows Mobile 6.1 devices was to use the 2003 compile. The 2003 compile also does not utilize the new resolutions, so that's good.

Thanks for any help on this stuff, even though I know the Windows Mobile port isn't officially supported.

Mara

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Davy Preuveneers

Hi Mara,

On Friday 01 August 2008 22:57:27 phonemeadvanced@mobileandembedded.org wrote:
> I love the PhoneME implementation on Windows Mobile. I am using it in
> place of the JBed program due to JBed's licensing.
>
> I am running into two issues on the implementation that are causing me
> problems, with the first being a showstopper for my programs:
>
> 1 - When a device goes into suspend, the JVM stops calculating the time
> correctly. For instance, if the phone goes into suspend for power saving
> reasons at 10:05a, and is suspsended for 15 minutes, when it comes out of
> suspend, the JVM will begin calculating time based upon the time before
> suspend. So, until I restart the app, the phone will be 15 minutes off
> when requesting time. From there, it only gets worse after more and more
> power suspends. I was able to find this due to the time being literally
> hours and days off, and correcting itself only upon program restart.

I can confirm the issue. I just tested it with a CDC build and a simple
while-loop that prints "new Date()" instances. Tracing back how Date is
implemented leads to CVMtimeMillis in win32/javavm/runtime/time_md.c. The
method makes use of GetTickCount() to calculate the number of milliseconds.
Not good, because GetTickCount does not increase in suspend mode. I do not
know why GetTickCount() was used in the original code (performance reasons?),
but luckily the fix is straightforward.

I have made a patch for this (in attach) and will try to put new builds online
by tomorrow (recompiling for all platforms takes a while ...).

> 2 - The Windows Mobile 5 build of the Advanced Dual Stack works on Windows
> Mobile 6 devices, but with devices that have full VGA screens, the build
> will utilize the higher resolution instead of falling back to the lower
> resolution. This has an adverse affect of making the text, etc, so small
> that only a 10 year old with perfect vision could read it. I'm wondering
> if there is a way to tell PhoneME what resolution to run under?

That's a tricky one. If I understand you correctly you have a 640x480 device
and only a quarter of the screen is used? Or is the screen fully used, but
the fonts too small? On e.g. Windows CE 5.0 emulator (not Windows Mobile
5.0!) with the same resolution, you may want this behavior because the screen
of such a Windows CE device is usually bigger than the one of your handheld.

> 3 (informational) - I was able to partly solve issue #2 by using the
> Windows Mobile 2003 compile. In fact, the only way I was able to run
> Windows Mobile 6.1 devices was to use the 2003 compile. The 2003 compile
> also does not utilize the new resolutions, so that's good.

Mmm, I compile the same source code with eVC4 and VS2005, but perhaps the
header files or libraries of these compilers have something to do with it.
You are not the first one to tell me that the eVC4 build works better on
their device.

> Thanks for any help on this stuff, even though I know the Windows Mobile
> port isn't officially supported.

And your feedback is much appreciated!

Davy

[Time.rev12878.diff]
---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net

davyp
Offline
Joined: 2007-01-03
Points: 0

[Repost: My previous email to the pMEA list doesn't appear on the forum]

(1) I can confirm the issue. I just tested it with a CDC build and a simple
while-loop that prints "new Date()" instances. Tracing back how Date is
implemented leads to CVMtimeMillis in win32/javavm/runtime/time_md.c.
The method makes use of GetTickCount() to calculate the number of
milliseconds. Not good, because GetTickCount does not increase in
suspend mode. I do not know why GetTickCount() was used in the original
code (performance reasons?), but luckily the fix is straightforward.
I have made a patch for this and put new builds online.

(2) This is a tricky one. If I understand you correctly you have a 640x480
device and only a quarter of the screen is used? Or is the screen fully
used, but the fonts too small? On e.g. Windows CE 5.0 emulator (not
Windows Mobile 5.0!) with the same resolution, you may want this behavior
because the screen of such a Windows CE device is usually bigger than
the one of your handheld.

(3) I compile the same source code with eVC4 and VS2005, but perhaps
the header files or libraries of these compilers have something to do with it.
You are not the first one to tell me that the eVC4 build works better on
their device.

And your feedback is much appreciated!

Davy

Hinkmond Wong

Davy P wrote:

> 2 - The Windows Mobile 5 build of the Advanced Dual Stack works on
> Windows Mobile 6 devices, but with devices that have full VGA screens,
> the build will utilize the higher resolution instead of falling back
> to the lower resolution. This has an adverse affect of making the
> text, etc, so small that only a 10 year old with perfect vision could
> read it. I'm wondering if there is a way to tell PhoneME what
> resolution to run under?
> (3) I compile the same source code with eVC4 and VS2005, but perhaps
> the header files or libraries of these compilers have something to do with it.
> You are not the first one to tell me that the eVC4 build works better on
> their device.
>

Mara, does changing the Windows Mobile System font size affect how the
fonts are rendered with phoneME Advanced?

Change the system font size

* On the Home screen, click Start > Settings > Accessibility.
* Select System font size to set the size of the font that is
displayed on the screen.
* Click Done.

Hinkmond

---------------------------------------------------------------------
To unsubscribe, e-mail: advanced-unsubscribe@phoneme.dev.java.net
For additional commands, e-mail: advanced-help@phoneme.dev.java.net