Friday 30 October 2009

Windows Embedded CE: Build Considerations

Hi folks,

When building your Windows Embedded CE OS image you might have noticed, that a lot of components are built even though they are not part of your image neither do you need them later on. This behavior takes up precious time, and space on your hard drive.

Having realized this behavior, it of course raises a couple of questions; How come those components that I don’t need are being built? And more importantly, is there a way to avoid building those components?

As you might have guessed, YES! You can avoid building the unnecessary components and it is quite easy, too! Simply set the environment variable SKIPBUILD in each applicable SOURCES file (e.g. set SKIPBUILD=1).

Make sure you use the respective SYSGEN variable set by selecting the appropriate catalog item in connection with the SKIPBUILD environment variable:

!if "$(SYSGEN_MY_VAR)" != "1"
SKIPBUILD=1
!endif


Et voilá, problem solved!

Have fun!

PS:
As stated in the comment section, there might, however arise one problem when using the SKIPBUILD environment variable:

Your sources file will still get pre-processed which could only cause a problem when you have two (or more) sources files generating a dll/exe/lib with the same name:

Your fist sources file (without SKIPBUILD condition) will generate the dll/exe/lib. But the second sources file (with SKIPBUILD condition), due to being pre-processed deletes your just build dll/exe/lib and due to the SKIPBUILD condition does not regenerate the dll/exe/lib.

Thanks for the useful input!
Read more! Post this to a friend!

Wednesday 28 October 2009

Windows CE & Mobile Transcript October 2009

Hi folks,
Just in case you missed the Live chat yesterday you can find the transcript of yesterday's chat here.

KarelD_MSFT (Expert)[2009-10-27 11:58]: Karel Danihelka - Developer in Partner Response Team.

davbo_msft (Moderator)[2009-10-27 11:59]: Our chat today covers the topic of Windows Embedded CE & Windows Mobile!

1. This chat will last for one hour. During this hour, our Experts will respond to as many questions as they can. Please understand that there may be some questions we cannot respond to due to lack of information or because the information is not yet public.

2. We encourage you to submit questions for our Experts. To do so, type your questions in the send box, select the "ask the Experts" box and click SEND. Questions sent directly to the Guest Chat room will not be answered by the Experts, but we encourage other community members to assist.

3. We ask that you stay on topic for the duration of the chat. This helps the Guests and Experts follow the conversation more easily. We invite you to ask off topic questions after this chat is over, but not during.

4. Please abide by the Chat Code of Conduct.

davbo_msft (Moderator)[2009-10-27 11:59]: We are pleased to welcome our Experts for today's chat. I will have them introduce themselves now.

davbo_msft (Moderator)[2009-10-27 11:59]: We are pleased to welcome our Experts for today's chat. I will have them introduce themselves now.

Sing Wee[MS] (Expert)[2009-10-27 12:0]: Hi, I'm Sing Wee, part of the CoreOS/BSP Test Team.

rajran[MS] (Expert)[2009-10-27 12:1]: Hi , I am Rajeev Rangappa, PM in CoreOS team.

RajeevDubey[MS] (Expert)[2009-10-27 12:3]: Hi, I am Rajeev Dubey, Bluetooth Program Manager.

MariNe_MSFT (Expert)[2009-10-27 12:3]: My name is Mariana Nenova - SDET in the Shell team.

MikeThom [MS] (Expert)[2009-10-27 12:3]: Hi I am Mike Thomson, Group Manager from Windows Embedded CE

Sue Loh [MS] (Moderator)[2009-10-27 12:3]: Hi, I'm Sue Loh, a developer on the Windows Mobile tools team (with past experience on the kernel and file system). I hope we can answer some of your questions today!

FBLANQ_MSFT (Expert)[2009-10-27 12:3]: Hi, I'm Francisco Blanquicet, part of the CoreOS/BSP team.

mskim_MS (Expert)[2009-10-27 12:4]:

Q: Regarding Silverlight Runtime in R3 and Expression Blend 2 - Expression Blend 2 appears to be unable to cope with the CacheMode="BitmapCache" tag that's needed for off-screen rendering in the silverlight runtime. Am I doing something wrong?

A: Andrew, CacheMode is from Silverlight3, we added this feature into Cashemere for a better performance but Expression Blend2 doesn't know about this SL3 property.

GLanger_MS (Expert)[2009-10-27 12:5]: Hi, I'm Glen Langer, lead PM for Core and BSPs.

kurtken_msft (Expert)[2009-10-27 12:6]:

Q: Can you point me to any documentation on the "threaded" SMS-message view in tmail.exe; I am having trouble adding my custom context-menu extension to it

A: Are your referring to the Windows Mobile SMS application? This chat is for Windows CE.

MS_Dinglu (Expert)[2009-10-27 12:7]: Hi, I am Dingding Lu, I am in CoreOS/BSP test team

mskim_MS (Expert)[2009-10-27 12:7]:

Q: So if I use Blend 3 will this help or just cause more problems?

A: You can't use Expression 3 with Cashmere, please use Blend2. You will need to add CacheMode only for the device XAML not in Blend2 XAML.

kurtken_msft (Expert)[2009-10-27 12:8]:

Q: Regarding mdd/pdd flash driver. There is some blocks that the MDD allocates for managing the data. Is it save to backup and recover those blocks? Where can we get info about them?

A: Can you give more information on what it is you are trying to do? The MDD's management of blocks is opaque because if it ever changes the only updates will be internal. is there a reason you need to access the internal structures?

Sue Loh [MS] (Moderator)[2009-10-27 12:8]:

Q: Hi! We are developing an app for a new handset running WM6.5 and are having problems when starting up first time. We are built into image and start up at boot since we have set correct reg keys in HKLM\Init. But one test case fails, namely to get reg notif

A: Can you explain a bit better what you mean by your test case fails to get reg notif? Who is supposed to change the registry key, when? Who is waiting on it, when?

kurtken_msft (Expert)[2009-10-27 12:9]:

Q: Hi! We are developing an app for a new handset running WM6.5 and are having problems when starting up first time. We are built into image and start up at boot since we have set correct reg keys in HKLM\Init. But one test case fails, namely to get reg notif

A: Hi Simon. This chat is for windows CE, and does not cover windows Mobile. The best thing for you to do is contact your WM representative that licenses WM to you to get support.

MikeThom [MS] (Expert)[2009-10-27 12:9]:

Q: Does Wince6.0 R3 include iPOD support?

A: No. There is no integrated support in Windows Embedded CE. There is an automative kit that does supply support for head-units.

KarelD_MSFT (Expert)[2009-10-27 12:9]:

Q: Regarding mdd/pdd flash driver. There is some blocks that the MDD allocates for managing the data. Is it save to backup and recover those blocks? Where can we get info about them?

A: It depends what do you want to achieve, but in most cases answer will be no. I would recommend to backup flash volume on logical level, not physical one. So file can be restored on different flash (with different bad blocks etc).

kurtken_msft (Expert)[2009-10-27 12:9]:

Q: Does Wince6.0 R3 include iPOD support?

A: When you say "support" do you mean being able to connect an IPod to a Windows CE 6.0 device that has USB host support?

kurtken_msft (Expert)[2009-10-27 12:9]:

Q: Yes, I am referring to Windows Mobile SMS application. I thought this chat includes Windows Mobile topics. Sorry, if that is not the case.

A: No. please contact your support channels for windows mobile through your WM licensing representative.

mskim_MS (Expert)[2009-10-27 12:10]: Tom, please use the "Ask Expert" command so we can answer your question.

Sue Loh [MS] (Moderator)[2009-10-27 12:11]: Q: We listen for changes to HKLM\System\State\Phone , "Missed Call Count" however at this first start up we never get such notifications. Rebooting will make it work as expected. Any ideas why it does not work the first time?
A: You're saying the entire first boot, you never get notifications. Right? Not that you miss the very first notification of the very first boot, and everything else works after that. Assuming I got it right -- well you need a registry key in order to wait. Are you sure the key exists at first?

Sue Loh [MS] (Moderator)[2009-10-27 12:11]:

Q: We listen for changes to HKLM\System\State\Phone "Missed Call Count", however at this first start up we never get such notifs. Rebooting will make it work as expected.

A: You're saying the entire first boot, you never get notifications. Right? Not that you miss the very first notification of the very first boot, and everything else works after that. Assuming I got it right -- well you need a registry key in order to wait. Are you sure the key exists at first?

KarelD_MSFT (Expert)[2009-10-27 12:13]:

Q: Does Wince6.0 R3 include iPOD support?

A: iPod expose itself as normal block device and as such it is supported. If you are looking for stream interface there is support in Microsoft Windows CE for Automotive, but you can add support yourself if you are able to get agreement from Apple and authentication chip.

davbo_msft (Moderator)[2009-10-27 12:13]:

Q: Actually, the title of this was presented as "Windows Embedded CE AND Windows Mobile", so that is not the case then?


MikeThom [MS] (Expert):

Q: [17] http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?dg=microsoft.public.windowsce.platbuilder&tid=d5fa66de-0167-4a1f-932f-273fba9b29e8&cat=&lang=&cr=&sloc=&p=1

A: I will have someone from the QFE team look into this.

Sue Loh [MS] (Moderator): Sorry hoongyuin, we're only experts in Windows CE, not desktop Windows.

MikeThom [MS] (Expert):

Q: [16] Morning, I have a question regarding the Sept QFE '09 which causes ActiveSync issues I posted but got no answer? I am seeing more people posting on similar issue and on CE6.0 as well do you have any more info on this issue?

A: I will have someone from the QFE team look into this.

RajeevDubey[MS] (Expert):

Q: [18] Hello, I have a CSR bluetooth module to manage under WinCE and I would like to use the HCI_CustomCode to send some proprietary commands. Please could you tell me how to fill pcall for HCI_CustomCode (I did not found in msdn documentation)

A: Hi Butterfly, Please email me your request and I will get back to you after reviewing it with our dev team. Please provide an example of what you are trying to accomplish so we can address your concern properly.

KarelD_MSFT (Expert):

Q: [19] I´m already referring to the logical blocks. I want to know how to I get back to a "last well known" state backup of the filesystem (I´m using TExFAT). I am having filesystem corruptions due to hard power loss cycles.

A: Correct procedure in such situation is dismount all file systems from block device, erase, create partitions and write sectors from backup.

mskim_MS (Expert)[12:26]:

Q: [20] XAML Runtime Open GL Render Plugin: As shipped this supports OPENGL ES 2.0. My hardware has ES 1.1 support. Does the render plugin *NEED* any ES 2.0 features or should it be possible to convert the plugin for ES 1.1?

A: Andrew, this XAML renderer plug-in uses OpenGL ES 2.0 features. Since the plug-in is provided as public code, you can take a look at it.

RajeevDubey[MS] (Expert)[12:27]:

Q: [22] Thank you RajeevDubey but at which address, can I email ?

A: rajeevdu@microsoft.com

mskim_MS (Expert)[12:27]:

Q: [20] XAML Runtime Open GL Render Plugin: As shipped this supports OPENGL ES 2.0. My hardware has ES 1.1 support. Does the render plugin *NEED* any ES 2.0 features or should it be possible to convert the plugin for ES 1.1?

A: One of the ES 2.0 feature EXR uses is the Shader.

Sue Loh [MS] (Moderator)[12:32]:

Q: [24] Nothing in reg tree missing except actual value name="Missed call count" as defined in snapi.h. HKCU\System\State\Phone key is present

A: Hmm, if your code is successfully opening the key and holding a notification handle on it, and that notification handle isn't getting notified when the value is created, then that sounds like a bug. The only thing you could do about it is get in touch with our support. If it really is a bug then the support cost is supposed to be free, I believe (but you might want to double check). I would double check that your code is successfully opening these handles, just in case HKLM\System\State\Phone is getting created AFTER your code runs.

RajeevDubey[MS] (Expert)[12:35]:

Q: [25] Thank you, I email you my request about HCI_CustomCode.

A: I have not received your mail yet. Will confirm once I get it.

kurtken_msft (Expert)[12:36]:

Q: [26] I saw a question last month about if FMD_WriteSector() fails on NAND, and I was unclear about one point. After compation, does the FAL mark the block as bad, or try to erase it and reuse it? Same behavior for Flash MDD?

A: when a writesector fails, no attempt to write to the block will occur after that. As far as I know, this includes an erase attempt. The block may be read from, but will not be written to. if compaction moves the sectors out of the block that is now 'bad', then that block will not be used again even for reads.

Sing Wee[MS] (Expert)[12:39]:

Q: [32, 34] Is there a suitable version of conmanclient2 for ce 6 with two VS2005 running at the same time (One with PB and another one in app dev mode)? I get many edm.exe messages in PB when doing with the version from standard sdk 5 of conmanclient2?
(I´m debugging an application that tests the driver)

A: Is your application native or managed?

davbo_msft (Moderator)[12:40]:

Q: [21] Using Windows Media Player Settings.setMode, what is the proper way to call it without it returning a E_INVALIDARG? When I call it with BSTR mode = L"shuffle" (mode, FALSE) or (mode, TRUE), they both return an error and indicates 0x80070057 => E_INVALIDAR

A: WMP OCX 7.0 http://msdn.microsoft.com/en-us/library/bb821536.aspx. I don't see setMode exposed on the interface. For Shuffle you'd need to implement that outside of the OCX.

mskim_MS (Expert)[12:40]:

Q: [35] EXR OGLES2.0: What processor did you use to test the XAML OGL Render plugin? It would be good for us to test the EXR with Open GL without having to recode for OGL ES 1.1.

A: We have tested the OGL plug-in with TI OMAP 3530 and nVidea Tegra APX 2600 but also knows that it works with many other platforms.

davbo_msft (Moderator)[12:41]:

Q: [23] G. I am calling it via aninstance of IWMPSettings->setMode(mode, bValue);

A: OCX 7 IWMPSettings Interface http://msdn.microsoft.com/en-us/library/bb821471.aspx - setMode not a supported method.

Sue Loh [MS] (Moderator)[12:42]:

Q: [9] We listen for changes to HKLM\System\State\Phone "Missed Call Count", however at this first start up we never get such notifs. Rebooting will make it work as expected.

A: Yeah, I'd expect HKLM\System\State and its sub-keys to be created sometime during the first boot. Unfortunately there's no way to auto-attach an application debugger during device boot. I would probably try writing a simple log, like you say. You could also revise your code to fall back to waiting on HKLM\System if the "State" and "Phone" keys don't exist. Or to try creating the keys instead of just opening them.

Sue Loh [MS] (Moderator)[12:42]:

Q: [30] So there is a possibility that those reg keys are in fact not created yet? Is there any good way to attach/debug such situations? (other than file logging)

A: [re-posting to correct message on the conversation] Yeah, I'd expect HKLM\System\State and its sub-keys to be created sometime during the first boot. Unfortunately there's no way to auto-attach an application debugger during device boot. I would probably try writing a simple log, like you say. You could also revise your code to fall back to waiting on HKLM\System if the "State" and "Phone" keys don't exist. Or to try creating the keys instead of just opening them.

mskim_MS (Expert)[12:42]:

Q: [37] EXR: Are there advantages using the OGL renderer rather that the DirectDraw renderer? Or do they give equivalent functionality and performance?

A: It all depends on the platform implementation however there's no advantage on any technology for this plug-in.

Sing Wee[MS] (Expert)[12:45]:

Q: [38] native

A: Hi Marcelovk, I'm not an expert in this area, but I have a tutorial from a previous public presentation that showed this should indeed work. Could you private message me your email address, and I'll email the tutorial to you.

RajeevDubey[MS] (Expert)[12:45]:

Q: [40] Did you receive my e-mail?

A: Yes, just got it.

davbo_msft (Moderator)[12:49]:

Q: [44] In Wince 6.0 is there a speech recognition engine?

A: Microsoft Auto includes a speech engine - http://www.microsoft.com/auto

mskim_MS (Expert)[12:51]:

Q: [44] In Wince 6.0 is there a speech recognition engine?

A: SAPI 5.2 is included in CE 6. You can find more information from here http://download.microsoft.com/download/a/0/9/a09e587c-4ff9-4a58-a854-56fe50b862b2/release%20notes.htm

Sue Loh [MS] (Moderator)[12:54]:

Q: [31, 33] On our device we have 2GB NAND flash and we have four partitions (Binary with ULDR, NK, OS, Storage). The Storage partition (USERSTORE, initially empty) should allocate the the whole NAND flash after the OS partition
What are the right configuration entries in memory.cfg.xml to get a Storage partition of 2GB (minus other partitions)?

A: I would try something like:

<ULDR ID="ULDR" STORAGE_ID="FLASH"/>
<RAMIMAGE ID="NK" STORAGE_ID="FLASH" COMPRESS="0" FIXUP_ADDRESS="0x80000000" ROMFLAGS="2" FSRAMPERCENT="0x00000000" FREE_SPACE_BUFFER="0x40000" />
<IMGFS ID="OS" STORAGE_ID="FLASH" FREE_SPACE_BUFFER="0x3200000" />
<USERSTORE STORAGE_ID="FLASH" ID="Storage" PART_TYPE="0x02" />

I have also sent feedback to our documentation team that there needs to be more guidance here.

davbo_msft (Moderator)[12:55]:

Q: [44] In Wince 6.0 is there a speech recognition engine?

A: Found another MSDN link on the SAPI 5.0 http://msdn.microsoft.com/en-us/library/aa914072.aspx

Sing Wee[MS] (Expert)[12:57]:

Q: [50] hi i have just bought a new laptop with vista however im trying to setup a wireless network ive enterd my wep key etc. . but when i click connect a grey box pops up asking me to enter my credintals ( user name, password and logon domain) can you help me ?

A: Sorry, this particular chat is for Windows CE only.

davbo_msft (Moderator)[12:57]: Hello everyone, we are just about out of time.

Thank you for joining us for our Windows Embedded CE 6.0 chat today!

<
http://www.Microsoft.com/Embedded>

A special thank you to the product group members for coming out.

The transcript of today's chat will be posted online as soon as possible, to <
http://msdn.microsoft.com/en-us/chats>. We'll see you again for another chat next month. Please check <http://msdn.microsoft.com/en-us/chats> for the list of upcoming chats.

If you still have unanswered questions, let me suggest that you post them on one of our newsgroups on
<
http://msdn.microsoft.com/en-us/windowsembedded/ce/default.aspx>

-Windows
Embedded CE 6.0 R3 Now Available! <http://msdn.microsoft.com/windowsembedded/ce/dd630616.aspx>;

davbo_msft (Moderator)[12:58]: Any unanswered questions I will work to get answers and post with the transcript.

Sing Wee[MS] (Expert)[12:59]:

Q: [38] native

A: (From private message conversation, in case others are interested): Since this is native, is there any reason you need to use two instances of VS2005? Why not include the application as a subproject of the OS design?

mskim_MS (Expert)[13:01]: Andrew, please send email to mskim@microsoft.com for your VFP question on EXR, I will let you know.

davbo_msft (Moderator)[13:01]:

Q: [53] NOOO!, the transcript takes years to be available!!

A: I've worked w/ the Chat posting team and they should get posted faster now.

Sing Wee[MS] (Expert)[13:02]:

Q: [41] Looking at the SDBus I saw that you never put in HighSpeed Mode the SD card?Is it supported by the stack the high speed mode for the SD card compliant with the spec ver 1.10 and higher?

A: According to some documents I've seen, CE6.0 RTM should support SD v1.1, CE6.0 R2 should support SD v2.0 (ADMA). On the MMC-side, we're supporting 3.x.

KarelD_MSFT (Expert)[13:03]:

Q: [26] I saw a question last month about if FMD_WriteSector() fails on NAND, and I was unclear about one point. After compation, does the FAL mark the block as bad, or try to erase it and reuse it? Same behavior for Flash MDD?

A: If we are talking about flash abstraction library which shipped with Windows CE 6.0 R2 (flashcommon.lib and other) you don't need to. The Flash MDD will do it.

Sue Loh [MS] (Moderator)[13:05]:

Q: [28] How can I disable the memory pooling for a specific driver in Windows CE 6.0?

A: By "pooling" I presume you mean paging of the driver code. You have a couple of ways to do it: set the "M" flag on the driver in your .bib file, if the driver is in ROM. Make sure NOT to set bit 2 (DEVFLAGS_LOADLIBRARY) of the "flags" registry value, under the driver registry settings. Or call LoadDriver on it instead of LoadLibrary, if you're loading it programmatically. This blog post is on the OPPOSITE topic, but still has tips you can follow if you do the opposite of what it's saying. http://blogs.msdn.com/ce_base/archive/2008/02/28/making-sections-of-windows-ce-device-driver-code-non-pageable.aspx

Sue Loh [MS] (Moderator)[13:05]:

Q: [43] In Wince 6.0 is there a way to disable the memory pooling for the Storage Card?If yes how is it possible?

A: By "pooling" I presume you mean paging of the driver code. You have a couple of ways to do it: set the "M" flag on the driver in your .bib file, if the driver is in ROM. Make sure NOT to set bit 2 (DEVFLAGS_LOADLIBRARY) of the "flags" registry value, under the driver registry settings. Or call LoadDriver on it instead of LoadLibrary, if you're loading it programmatically. This blog post is on the OPPOSITE topic, but still has tips you can follow if you do the opposite of what it's saying. http://blogs.msdn.com/ce_base/archive/2008/02/28/making-sections-of-windows-ce-device-driver-code-non-pageable.aspx


MikeThom [MS] (Expert)[13:15]:

Q: [46] EXR: Our ARM 11 platform has VFP which we have enabled through the OEM Floating Point CRT support (SYSGEN_OEM_FPCRT). Will this mean that the embedded XAML runtime will utilise the hardware floating point coprocessor? Or is it entirely integer based?

A: It will make use of the VFP enabled CRT.

Sing Wee[MS] (Expert)[13:26]:

Q: [56] Yes SD 1.1 and 2.0 are supported but not in high speed mode. Look at the SDBus implementation and let me know..

A: I just found the answer. Unfortunately, it appears we don't support High Speed in CE6.0 and its variants.


So long and thanks for all the fish!
Read more! Post this to a friend!

Wednesday 21 October 2009

Upcoming Seminars

If you missed the last Seminars around Windows Embedded CE 6.0 R3 then I've got good news for you:

Save the dates to sit back, put your feet up and to listen to Dave and Dion:

and
To find out what else has been going on around Windows Embedded have a look at the complete Webinar Series introducing all the new Releases: Wave7

So long and thanks for all the fish!
Read more! Post this to a friend!

CMD: Current date/time for file suffix (and others)

The following lines give me the current date + time as string that I use as extension for file/directory names

@SET LDATETIME=%DATE%_%TIME%
@SET LDATETIME=%LDATETIME::=-%
@SET LDATETIME=%LDATETIME:,=-%
@SET LDATETIME=%LDATETIME:.=-%
@echo LDATETIME=%LDATETIME%

The output will look like this

LDATETIME=21-10-2009_12-37-35-83

Maybe these are the lines you have been longing for.....

Cheers,
Jürgen
Read more! Post this to a friend!

Tuesday 20 October 2009

Windows Embedded CE and Windows Mobile Live Chat

Hello guys,

there is a new chance to talk with Microsoft guys about Windows Embedded CE and Windows Mobile.
Title: Windows Embedded CE and Windows Mobile Live Chat
Date: Oct 27th, 2009 17:00 - 18:00 Central Europe Time

Don’t miss this opportunity to talk with interesting guys! All you have to do is to follow this link and join the live chat! :)

You can find the transcript from last months chat here and older transcripts here.

Have fun!


Read more! Post this to a friend!

Friday 16 October 2009

Check nesting IF-ELSE-ENDIF in Config Files

Sometimes tracing down the build problems caused by wrong configuration files (platform.bib/.reg/...) is hard due to lot's of IF-ELSE-ENDIF statements (see an older post: "Strange build error message").

Last time I was bugged by a totally messed up configuration file and therefore I wrote (better say 'hacked') a little perl script that just lists the nesting level of each IF, ELSE, ENDIF statement.

Here's the full code - enjoy. There is room for improvements and hints/comments are welcome (I'm definitely not a perl guru :-)

@goto ;#DOS

##
# Visualize nesting level of IF/ELSE/ENDIF pairs
# Dr. Jürgen Welzenbach, 2009
#

# - Constants -------------------------
my $tag_Begin = "IF";
my $tag_Mid = "ELSE";
my $tag_End = "ENDIF";

## - Preamble -------------------------------------------------------
use strict;
use Cwd;
use File::Basename;

my $nestingWidth = 5;


## - Main -----------------------------------------------------------
&filter_files( @ARGV );

## - Functions ------------------------------------------------------
sub filter_file
{
my $fname = shift;
my($filename, $directories, $suffix) = fileparse($fname, qr/\.[^.]*/);
my $nestCount = 0;
my $lineNo = 1;

print "Checking $fname\n";
my $fname_ok = open( FILE, "<", $fname ); if ( $fname_ok ) { my $line; print("Line Level Text:\n"); while ( $line = )
{
my $printIt = 0;
$line = " " . $line;
## Ok, here's room for improovement; but I'm no perl specialist and for
## a quick hack it's ok - for the moment :-)
if ( $line =~ /\W$tag_Begin/ )
{
$line =~ s/^\s+//;
my $sp = sprintf("%4d [%2d]: %*s%s", $lineNo, $nestCount, ($nestCount*$nestingWidth), " ", $line);
print $sp;
$nestCount = $nestCount + 1;
}
elsif ( $line =~ /\W$tag_Mid/ )
{
$line =~ s/^\s+//;
my $sp = sprintf("%4d [%2d]: %*s%s", $lineNo, $nestCount, (($nestCount-1)*$nestingWidth), " ", $line);
print $sp;
}
elsif ( $line =~ /\W$tag_End/ )
{
$line =~ s/^\s+//;
$nestCount = $nestCount - 1;
my $sp = sprintf("%4d [%2d]: %*s%s", $lineNo, $nestCount, ($nestCount*$nestingWidth), " ", $line);
print $sp;
}

$lineNo = $lineNo + 1;
}
close( FILE );
warn $@ if $@;

}
else
{
if( !$fname_ok )
{
print "Error opening '$fname '\n";
}
else
{
close( FILE );
}
}
}

sub filter_files
{
my @args = @_;

while ( $#args >= 0 )
{
filter_file( $args[ 0 ] );
shift @args;
}
}


__END__

:;#DOS

@perl -S %0 %*



Read more! Post this to a friend!

Thursday 15 October 2009

Introducing Windows Embedded CE 6.0 R3

If you have been reading Jochens posts about Windows CE 6.0 R3 with interest then I'm sure you will not want to miss todays Webinar: "Introducing Windows Embedded CE 6.0 R3".

David Wurster, Senior Product Manager, will introduce and explain all the new features R3 incorporates and answer any questions you may have.


So what are you waiting for? Register here.

So long and thanks for all the fish!
Read more! Post this to a friend!

Tuesday 13 October 2009

Windows Embedded CE 6.0 R3 - Device Stage Support

Windows Embedded CE 6.0 R3 is to support Microsofts Windows 7 Device Stage Technology through a QFE, available by the end of this year.

This will allow CE Devices to leaverage the new Windows 7 functionality and to smoothly fit into your device management.

So long and thanks for all the fish!
Read more! Post this to a friend!

.NET Micro Framework Beta Refresh

It has been quite quiet around the .NET Micro Framework recently and I guess everybody is waiting for the release of Version 4.0. From the .NET Micro Framework blog you can tell that the team is quite busy as they have just released the 2nd Beta refresh which can be downloaded at https://connect.microsoft.com/netmf/

But, what is everybody else doing? Just twiddling their thumbs? I can assure you some are really busy at the moment.

AUG Elektronik - home of the AMI Board - for example, have been busy making their SDK available as a Beta for their customers to try out the new features. Have a look at the news here.

I'm really looking forward to all the devices available when .NET MF 4.0 is released in ... oops don't want to tell too much.

So long and thanks for all the fish!
Read more! Post this to a friend!

Saturday 10 October 2009

Windows Embedded CE 6.0 R3: Third Party Applications

Hi folks,

Today I am going to talk about the last update in Windows Embedded CE 6.0 R3 namely some third party applications.

The MS Office viewers are back! The Westtek File Viewers had been part of Windows CE 5.0 but disappeared in Windows Embedded CE 6.0. They support viewing the following file types on your Windows Embedded CE 6.0 R3 device:
  • MS Word 97, 2003, or 2007

  • MS Excel 97, 2003, or 2007

  • MS PowerPoint 97, 2003, or 2007

  • PDF versions 1.3 through 1.7

The next of the new 3rd party applications to be included into Windows Embedded CE 6.0 R3 is the instant messaging client Tencent Mobile QQ (version 1.0) which is very popular in China.

Both the Westtek File Viewers and the Tencent Mobile QQ are separate installation files. They are available for download from the Microsoft Windows Embedded CE Downloads webpage. Upon installation, the respective catalog items are added to your Windows Embedded CE 6.0 R3 catalog:


Notice: even though the Tencent Mobile QQ shows a red X, it will be included in your image, Tencent states that they are currently working on this issue. As of now, the only supported CPU type for the Tencent Mobile QQ is ARM. By the way, if you do want to use the Tencent Mobile QQ, you better have support for Chinese included in your OSDesign; oh and being able to read Chinese also helps a lot:


As already stated in my post about the new Internet Explorer Embedded, Windows Embedded CE 6.0 R3 now offers support for Adobe Flash Lite 3.0 which is an ActiveX control for Internet Explorer Embedded that supports playback of animations or videos that are compatible with Adobe Flash Player. Adobe Flash Lite 3.0 comes with the Windows Embedded CE 6.0 R3 installation and therefore does not need to be installed separately.


Have fun!
Read more! Post this to a friend!

Thursday 8 October 2009

Windows Embedded CE 6.0 R3: Silverlight for Windows Embedded sample Application

Hi folks,

In this post, I am going to talk about the new Silverlight for Windows Embedded sample application called XamlPerf. In addition of being a sample UI, it also displays some performance information on your screen as well as in the debug output window. The UI, however is not functional, yet. That task is up to us – currently if you click anywhere, XamlPerf will exit. The sample UI comes with different animations which are defined in different XAML files. These animations are Bounce, Bubbles, and Carousel:




Bubbles and Carousel both load with a default screen resolution of 800x480.

In order to include XamlPerf to your OSDesign you need to add the SYSGEN_SAMPLEXAMLPERF sysgen variable. You will find that this sysgen variable is NOT part of your catalog; but that you have to set is manually. To do so, simply add it as an environment variable from the Project->Properties dialog from within the PlatformBuilder UI. Upon rebuilding your system you will get shortcuts for the Bounce, Bubble, and Carousel XamlPerf on your devices desktop.

You can now either start XamlPerf by:
  • Double clicking on one of the shortcuts or

  • Via the command line with the following command: XamlPerf \windows\xamlperf\[XAMLFile].xaml where XALMFile is Bounce.xaml, Bubbles.xaml or Carousel.xaml


The source code for the XamlPerf sample application is available under _PUBLICROOT\Common\Oak\Demos\XamlPerf whereas the XAML files can be found under: _PUBLICROOT\Common\Oak\Files\XamlPerf. On your device the XAML files reside under \WINDOWS\XamlPerf\.

Have fun!
Read more! Post this to a friend!

Wednesday 7 October 2009

Windows Embedded Excellence Awards EMEA 2009

Just wanted to let you know the winners of the Windows Embedded Excellence Awards EMEA 2009 - as announced tonight at a Partner / Distributor Dinner in Edinburgh Castle:

Beckhoff - Enterprise Partner of the Year
EB - Consumer Partner of the Year - For outstanding efforts in driving Windows Embedded Designs
Direct Insight - Independent Hardware Vendor of the Year
Intervall Zero - Independent Software Vendor of the Year
Adeneo - System Integrator of the Year
MPC Data - Training Partner of the Year

Congratulations to all Winners!

So long and thanks for all the fish!
Read more! Post this to a friend!

Tuesday 6 October 2009

Windows Embedded CE 6.0 R3: Connection Manager

Hi folks,

Today I would like to talk about the new Connection Manager that comes with Windows Embedded CE 6.0 R3. As you have most probably already read, it has proven its abilities under Windows Mobile and it is responsible for managing access to data connections and handling interactions between voice and data connections.

To include the Connection Manager into your OSDesign you need to add the SYSGEN_CONNMGR variable from the catalog.


The great benefit of the Connection Manager is that it separates the details of network-connection settings from application code. The Connection Manager is therefore the central module which automates both the establishment and the management of network connections and thereby simplifies the connectivity. So when developing an application you only need to know which network (connection name and network name) to connect to. All the details involved to establish and manage that specific connection are performed by the Connection Manager. You can simply use the Connection Manager API to integrate the Connection Manager functionality into your application.

Let’s have a closer look into which services the Connection Manager offers you to use from your application:
  • Connection Request: upon establishing the requested connection, the Connection Manager notifies all applications that the connection is active

  • Connection Management: the Connection Manager keeps track of requested and open connections. It also closes unused connections and disconnects idle connections automatically. In addition the Connection Manager closes low-priority connections (e.g. data) to open high-priority ones (e.g. voice)

  • Automatic Connections: the Connection Manager can also supply your application with automatic connections

  • Error Handling: The Connection Manager reports errors back to the application which requested the particular connection

Have fun!
Read more! Post this to a friend!

Monday 5 October 2009

Windows Embedded CE 6.0 R3: IESAMPLE_EXR

Hi folks,

as promised I will now talk about the new sample Internet Explorer which uses Silverlight for Windows Embedded. In addition to the features of the regular IESAMPLE it also has a tiling engine which supports Touch Gestures (if supported by your OSDesign), better graphical performance with hardware acceleration, as well as scrolling and zooming.


If Touch Gestures are supported in your OSDesign, the tiling engine in IESAMPLE_EXR manages a flick or pan gestures to scroll the page and a double-tap to zoom the page. You can find the source code that handles Touch Gestures under _PUBLICROOT\IE\OAK\IESAMPLE_EXR\CORE\TileWindow.cpp. Look for code that begins with WM_GESTURE:

By default, a web page will load to fit your screen width. You can find the source code that handles zooming under _PUBLICROOT\IE\OAK\IESAMPLE_EXR\UI\ZoomController.cpp.

The following two screen shots show the IESAMPLE_EXR application in non-full-screen-mode and in full-screen-mode. The application loads in non-full-screen-mode so you can type in the URL you wish to navigate to. Upon single tap, IESAMPLE_EXR changes to full-screen-mode.



Did you notice the two/three buttons on the right hand side? The upper two buttons are for zooming in and zooming out while the third button allows you to exit the full-screen-mode. As you can see there are also some navigation and settings buttons at the bottom of the window in non-full-screen-mode.

You can use Silverlight for Windows Embedded to customize both functionality and UI of IESAMPLE_EXR.

As you can see the IESAMPLE_EXR application can be used as sample for two of the exciting, new features in Windows Embedded CE 6.0 R3:
  • Silverlight for Windows Embedded and

  • Touch Gestures

Have fun!
Read more! Post this to a friend!

Saturday 3 October 2009

Windows Embedded CE 6.0 R3: Internet Explorer Embedded

Hi folks,

in this post I want to talk about the new Internet Explorer Embedded that comes with Windows Embedded CE 6.0 R3. The browser still supports all features of the previous version of Internet Explorer 6 for Windows Embedded CE 6.0 R2 plus these new features:

Internet Explorer Embedded can render documents that contain:
  • HTML

  • Dynamic HTML

  • CSS

Additionally you can add support via catalog items for:
  • XML

  • JScript 5.6

  • Microsoft Visual Basic® Scripting Edition

  • Microsoft VB Script® 5.6



To build a custom browser shell and UI designed specifically for your target device or to add browser controls to your application you have the following options:
  • Use the Internet Explorer control via COM interfaces

  • Use the IESAMPLE or IESAMPLE_EXR container applications as a starting point. The IESAPLE_EXR supports Silverlight for Windows Embedded which is based on both C++ and Microsoft Silverlight 2 XAML. I will talk about the IESAMPLE_EXR sample browser in a separate post.

Have fun!
Read more! Post this to a friend!

Friday 2 October 2009

Windows Embedded CE 6.0 R3 (“Cashmere”): Touch Gestures

Hi folks,

As previously posted Windows Embedded CE 6.0 R3 now supports Touch Gestures; single-touch gestures to be precise.

You need to include the following catalog item to your OSDesign to include Touch Gestures:


Now let’s have a closer look at which gestures are actually supported:
  • Flick: press, move then lift your finger to initiate scrolling that continues for a short time after the screen contact ends. The gesture recognizer sends a single GID_SCROLL

  • Pan: press, then drag your finger; this represents a mouse move event. The gesture recognizer sends at least one GID_PAN followed by a GID_END after lifting the finger.

  • Tap: corresponds to a left mouse click

  • Double-Tap: corresponds to a left mouse double-click

  • Hold: press and don’t lift your finger; this represents a right mouse click

But how does your system know that you just performed a Touch Gesture? Upon a touch event the touch driver passes an array of touch points through the gesture engine to each registered gesture recognizer. When a recognizer identifies a gesture, it adds the corresponding gesture event into the same message queue that receives the touch events.

However, to allow the window procedure to process a gesture and if desired cancel actions normally executed upon a finger-up touch event, the gesture engine always delivers gesture events before any final finger-up event.

The Touch Gesture support also comes with a central physics engine enabling you to create animation which can be consistent across your system. Therefore the central physics engine calculates well-defined animation points in response to touch gestures. The physics engine API handles:
  • One- and two-dimensional scrolling

  • Boundary animations which can be of type Rubber Band, Bounce or None

  • Animation stopping points to avoid truncated controls

In addition, you can also use the window auto gesture API set in any standard scrollable Win32 window that is created with the WS_HSCROLL or WS_VSCROLL styles to enable automatic handling for pan and flick gestures with the help of the central physics engine.

Now, I bet, you would like to know if there is some sort of demo that you can simply use. Well there is: you can use the new sample Internet Explorer (IESAMPLE_EXR) which in addition to supporting Touch Gestures also uses the new Silverlight for Windows Embedded.


Have fun!
Read more! Post this to a friend!

Excellence Awards 2009 - US

And the winners of the 2009 Embedded Partner Excellence Awards in the US are:

Intrinsyc - for their efforts in the PND area
BSquare - for the most innovative project; the Coke Dispenser
Phytec - as best Independent Hardware Vendor
Adeneo - best Training Partner and System Integrator

Congratulations!

The 2009 Embedded Partner Excellence Awards for EMEA are being awarded next week during the Channel Summit in Edinburgh.

So stay tuned to find out who the winners are and of course for any other news from that event.

So long and thanks for all the fish!
Read more! Post this to a friend!

Thursday 1 October 2009

Windows Embedded CE 6.0 R3 now available for download!

Hi folks,

Windows Embedded CE 6.0 R3 aka “Cashmere” is now available for download from the Microsoft webpage! As stated in one of my previous posts, Windows Embedded CE 6.0 R3 is an update to Windows Embedded CE 6.0 R2 so before you install it on your system you need to have the following components on your computer:


Also available for download are the following tools and 3rd party applications which are newly supported in Windows Embedded CE 6.0 R3:

Have fun!
Read more! Post this to a friend!