Windows Embedded Student Challenge (April 13, 2005)

Posted: April 20, 2005

Please note: Portions of this transcript have been edited for clarity

Introduction

James Z (Moderator):
We are pleased to welcome our Experts for today’s chat. I will have them introduce themselves now.

Chip_MS (Expert):
Hello Folks! Welcome! I am Chip Schnarel, Director of Program Management for Windows CE.

Sue Loh [MS] (Expert):
Hi, I'm Sue Loh, a developer on the Windows CE team at Microsoft. I work on system performance, performance tools, and various things related to the kernel and file system. I hope we can answer some of your questions today.

ivanjo_ms (Moderator):
Hi I'm Ivan Joseph, Product Manager looking after our academic programs and contest organizer. Welcome!

John Spaith [MS] (Expert):
Hi, I'm John Spaith, dev for CE networking & services.

dangrif_MSFT (Expert):
Hello, I'm Dan Griffin. I work on the Windows CE Base OS team developing BSPs.

Russ Keldorph [MS] (Expert):
Hi, I'm Russ, dev lead for the native C++ compilers and runtimes for ARM, MIPS, and SH-4.

Sumit [MS] (Expert):
Hi, I am a dev on the BSP (Board support packages) team.

chetl_MSFT (Expert):
Hi, my name is Chet Laughlin, I am a dev in test on the Intl CE Test Team. I work on International and Globalization tests and tools.

James Z (Moderator):
Let’s begin the chat. We welcome you to begin submitting your questions for our Experts.

Start of Chat

mikehall_ms (Moderator):
Q: Is there support for automation interface in Windows CE 5.0 PowerPoint viewer?
A: No, the viewer is a stand-alone application.

ivanjo_ms (Moderator):
We've lined up a full team of experts today so keep your questions coming thick and fast

mikehall_ms (Moderator):
Q: How does I can include an managed C# application in my windows CE image? I want my application inside the image so when I boot the NK.bin my .NET application is there
A: oh, this is fairly easy - follow the instructions here - https://blogs.msdn.com/mikehall/archive/2005/03/31/404377.aspx

John Spaith [MS] (Expert):
Q: Hi, I am trying to develop an asp website to run on windows CE, but it fails with the function createObject. I was using the createObject to load an xml file, is there another way to do this?
A: Are you trying to do createObject() directly on the XML file? That won't work -- WinCE doesn't have file system object in in scripting language. You can use MSXML to perform this operation. You wouldn't want to use Server.CreateObject (which is an IIS thing) but instead the scripting language's new object mechanism. For JScript it would be something like "var xmlDom = new ActiveXObject("Microsoft.XMLDOM")". After that you'd use the XMLDom to actually parse and read out the file, something like xmlDom.load("foo.xml")). Not all CE images have MSXML included (it's a componentization option) so make sure you have that option.

David_Liao_MS (Expert):
Q: I have submitted my step-by-step guide that I have done to resolve my serial port issue but haven't heard anything back. This is the major component that is needed for our project. What should we do?
A: Did you connect COM1 to Terminal program to find out the output?

ivanjo_ms (Moderator):
Q: If the project is incomplete when the Final Description is submitted, will points be deducted? If so, will points be deducted even if the project can very feasibly be completed before the finals?
A: We recognize that the project may require work before the finals. We think many teams could be in that position. You should therefore in your report present the plan for the future with specific time lines so that the judges are persuaded that it will be completed on time.

David_Liao_MS (Expert):
Q: i can write the parallel port on ebox.but i can not read the data pins. any experts could help me with that ? i was told that the port is bi-direction.But it seems like one way direction
A: Do you write your won parallel port driver? In order to read, you have to follow the protocol.

Sue Loh [MS] (Expert):
Q: Basically, it could take past 30 minutes for the desktop to show
A: (Pasting in part of the question: Once we build out our NK.bin file, the image seems to take a long time to load once we overwrite the NK.bin file on the eBox. Any ideas?)

Hmm, that is very extreme. Are you loading a lot of files from the release directory perhaps? If you exclude files from your image but they are still part of your project, they will still get loaded. Even that shouldn't take 30 min. though. Does an image with or without debugger make a difference? Actually, what I would recommend is to try running CeLog to record all the activity that is going on. I'll give you some instructions for that, but first I need to know if you have a KITL enabled image?

David_Liao_MS (Expert):
Q: yes.i write the driver ourselves. i follow the protocol of EPP.
A: You can take CE public example to find it out how to do it. It can read product information from the printer.

John Spaith [MS] (Expert):
Q: How to create IMoniker with specifically DisplayName in EVC, MkParseDisplayName doesnot work
A: Could you give me more information about the error code & data you're giving? If you compile similiar code on WinXP, does it work or fail there? WinCE COM was a pretty much straight port of the NT4 SP5 era vintage. There are some differences of course but for pure parsing functions like MkParseDisplayName I would'nt expect there to be any. The nice thing about this is that you can check out both XP & CE newsgroups/web pages potentially to see if this is a common error.

David_Liao_MS (Expert):
Q: i can write the parallel port on ebox.but i can not read the data pins. any experts could help me with that ?
A: I answer this in other thread.

Sue Loh [MS] (Expert):
Q: Sue, how do I know if KITL is enabled on the image?
A: It is part of your project build settings. A quick way to know, do you get debug messages in Platform Builder while your image is running? Actually another way to tell would be to look at the ce.bib file in your release directory. If you're running a KITL enabled image, then you'll have kernkitlprof.exe listed in that file.

Sumit [MS] (Expert):
Q: i can write the parallel port on ebox.but i can not read the data pins. any experts could help me with that ? i was told that the port is bi-direction.But it seems like one way direction
A: (viewsky asked the experts: yes.i write the driver ourselves. i follow the protocol of EPP.)

Sumit [MS] (Expert):
Q: yes.i write the driver ourselves. i follow the protocol of EPP.
A: Did you change the parallel port protocol to EPP in host bios?

David_Liao_MS (Expert):
Q: Why we can run a serial port test program in another develop board,and can send & receive,but it cann't send & receive in ebox :(
A: May be hardware does not configure correct. Is it X86 based hardware?

ivanjo_ms (Moderator):
Q: I'm wondering if any teams have been able to acquire a donated short term license for the product...and if so, who at Scansoft was the contact person?
A: From the mails I have received from the teams that have contacted Scansoft directly, they are charging about 50 Euros - I'll ask them to give it free but am not sure if they will agree. Let's see what they say

ivanjo_ms (Moderator):
Q: ivanjo: are you aware of any other companies providing a product similar to Scansoft's engine that I could attempt to contact? I havent found scansoft to be very receptive. Thanks!
A: OK so one of the teams has contacted a company called Sakrament apparently based in Russia - it is they who are charging 50 Euros, not Scansoft. I'll provide their contact info on my blog as well as contact them directly to see if they can reduce price further. if they don't however, it seems like the product could be available foor 50 Euros so you should be prepared to pay that.

ivanjo_ms (Moderator):
Q: Ivan we have mailed you 2 mails, one from scansoft and the other from Svox. Dod you get the two?
A: I have got mails from Scansoft and Sakrament - don't know about svox. Would you mind resending - thanks!

Sue Loh [MS] (Expert):
Q: Sue, how do I know if KITL is enabled on the image?
A: Oops I mean kernkitl.exe, not kernkitlprof.exe

ivanjo_ms (Moderator):
Q: Can we submit a video file in final report about how to use our system??
A: No - your report has to be in the format specified. 20 pages of text plus diagrams. Nothing else. No videos. Sorry.

Sue Loh [MS] (Expert):
Q: Do You have any recomendation on how to build an application which is trying to control a powerpoint presentation, right now we have the options: to find a method for controlling powerpoint viewer, or to write our own pointerpoint viewer.
A: Hi velizar, I'm not sure exactly if this is the BEST way to do it, but a way to control the presentation would be to send windows messages to the window. You could probably find the window and send a keyboard message to it pretty easily.

David_Liao_MS (Expert):
Q: the serial port is taken for debug,so if our BSP is IOCP_Vertex86,I modidy the file at the direction Wince500\platform\IOCP_Vertex86\src\bootloader\eboot\debug.c as mike said,and modify the platform.reg .but I still can read & write the data through com1?
A: No. The problem is bootloader also setup global parameter to let Kernel to use serial port as debug serial. You have to disable it as will. I believe the code setup it up is loadcepc whic is dos-based program.

John Spaith [MS] (Expert):
Q: Hi, I am trying to develop an asp website to run on windows CE, but it fails with the function createObject. I was using the createObject to load an xml file, is there another way to do this?
A: Oh... so the problem is that you can't even compile it? In this case the problem is that you haven't included the DCOM component in your image. COM is componentized to a great extent for WinCE, so it's possible images that have a 20KB flavor of COM (basically CoCreateInstance & a few core ones). It's also possible to have the almost full DCOM that you could have on the desktop. You need the DCOM option in order to get the function you're looking for. Select DCOM from your catalog and then rebuild your platform. After that this function will show up in the new objbase.h that is generated. Note that DCOM is about 500KB of RAM or so, so if this is the only function you need from it and if your device is low on RAM you may need to consider how badly you need this function after all.

David_Liao_MS (Expert):
Q: the serial port is taken for debug,so if our BSP is IOCP_Vertex86,I modidy the file at the direction Wince500\platform\IOCP_Vertex86\src\bootloader\eboot\debug.c as mike said.but I still cann't read & write the data through com1,why?
A: No. The problem is bootloader also setup global parameter to let Kernel to use serial port as debug serial. You have to disable it as will. I believe the code setup it up is loadcepc whic is dos-based program.

David_Liao_MS (Expert):
Q: I have followed the instructions on Mike's blog to open the serial port, but when I finished building an application in evc++, activesync cann't find my device. Is it mean that the serial port is still held by the debugger or else??
A: It is too difficult to debugging serial port by using activesync. You probably want to write a simple APP to test serial driver before running activesync. We have CETK which has a lot of serial test you also can use.

Sue Loh [MS] (Expert):
Q: when i connect my device after creating it and selecting it from the settings tab( adjacent to download in connectviyt options), it hangs up on the window saying attempting to connect to the debugger and nothin happens...Help
A: So let me make sure I understand you right. You are using Platform Builder, and you are clicking "connect" but failing to connect. Are you using ebox? Is the image already on the device (ie. you don't need to download before you connect)? When you reboot the hardware manually, do you see the device name pop up in the connection settings?

David Kanz [MS] (Expert):
Q: It seems that ICaptureGraphBuilder doesnot supported on CE, How to achieve Video Capture on DirectShow
A: ICaptureGraphBuilder is not yet supported in CE. Here is an excerpt from MSDN:

Sue Loh [MS] (Expert):
Q: Sue, how do I know if KITL is enabled on the image?
A: If KITL is enabled, then try setting "Enable Event Tracking During Boot (IMGCELOGENABLE=1)" in your platform build settings. After your device starts booting, open up Remote Kernel Tracker from the tools menu and connect to the device. It should start getting data, and you should be able to tell if the device is mostly idle (all time in thread "0x00000000") or if someone is chewing up CPU time. With boot times of like 30 minutes I'd expect more of the former than the latter.

David Kanz [MS] (Expert):
Q: It seems that ICaptureGraphBuilder doesnot supported on CE, How to achieve Video Capture on DirectShow
A: ICaptureGraphBuilder MSDN for CE excerpt: Although the DirectShow implementation on Windows CE is primarily designed to support media playback, it is also possible to create audio and video capture applications.
Because Windows CE does not support the ICaptureGraphBuilder interface, you must manually configure the common elements of a DirectShow application and then adapt them for media capture. A media capture application requires a source filter to receive the raw audio or video data and then pass it into an encoder. The output from the encoder must then pass its data to a file writer. The file writer acts as the media renderer in this arrangement.
Windows CE does not ship with any source filters for media capture or with any file writers. It does include a limited set of media encoders for specific audio formats such as GSM 6.10 or G.711.
See Also

David_Liao_MS (Expert):
Q: david:I have modify the autoexec.bat ,i replace the loadcepc to loadcepc /c:2,why doesn't work?
A: I can't tell. Can you just disable serial code by motify OEMInitDebugSerial in platform\common\src\x86\common\other and set IoPortBase to 0 anyway.

David_Liao_MS (Expert):
Q: What is the catalog item to add to my Windows CE image to be able to use my USB Key with the EBox-II. Windows CE ask for a driver name when i insert my USB key with the image I build, but I can use my USB Key with the default nk.bin image .
A: Probably it is not declare itself as USB Mass Storage Device. I don't know it is compatiable with Mass Storage Class Driver or not. If yes, you need use PID & VID to load Mass Storage Driver.

David_Liao_MS (Expert):
Q: David_Liao_MS:I have modify the autoexec.bat ,i replace the loadcepc to loadcepc /c:2,why doesn't it work?
A: I can't tell. Can you just disable serial code by motify OEMInitDebugSerial in platform\common\src\x86\common\other and set IoPortBase to 0 anyway.

John Spaith [MS] (Expert):
Q: On XP my Code works well, but on CE the function MkParseDisplayName doesnot include in objbase.h, so it doesnot work, then How can I Create IMoniker with specifical DisplayName
A: Basically you need to include the DCOM component in your image. MkParseDisplayName is a DCOM only function - standard configs of the OS that include smaller COM componentizations don't include this function. Once you add DCOM to your image, you can rebuild the platform and then this function will show up in objbase.h. DCOM adds a few hundred KB to your image, so if you're tight on ROM be aware of this - especially if this is the only function you'd need from DCOM.

Sue Loh [MS] (Expert):
Q: Sue, how do I know if KITL is enabled on the image?
A: If KITL is not enabled, then you have to set both "Enable Event Tracking During Boot (IMGCELOGENABLE=1)" and "Flush Events to Releas Directory (IMGAUTOFLUSH=1)" in your platform build settings. And you have to set these registry value in the device registry:

[HKEY_LOCAL_MACHINE\System\Celog]
"FileName"="celog.clg"
"ZoneCE"=dword:62
to keep it from *actually* flushing to the release directory, since such a thing doesn't exist without KITL. This will automatically flush the data to a file in the root of the device. However the problem with this approach is that this tool is going to be logging for a very long time, and fill up your file system. That's why I suggested the "zone" setting, to turn off a lot of data logging. After the device has booted, you can get this file off the device. Open it up inside Remote Kernel Tracker (instead of connecting to the device, just open the .clg file) and you can see your data.

David_Liao_MS (Expert):
Q: David_Liao_MS:yes,i modified the OEMInitDebugSerial and the platform.reg
A: So, Does it work? If not, it is not related to KITL. It is something else.

ivanjo_ms (Moderator):
Q: How important is a neat/compact OS Design? For example, if we use .net to create our applications (which requires display drivers on the OS I think), and we don’t need a screen on our device. Will marks be deducted for things like this?
A: Not sure if I understand correctly what you mean by neat design but the bottomline is that your project should work if you are selected to come here for the finals. In your report therefore you should be able to convince the judges that what you are doing is firstly feasible and secondly well architected and executed. So the 'neater' the design, the better

Sue Loh [MS] (Expert):
Q: What is the catalog item to add to my Windows CE image to be able to see the Ebox-II hard-drive. With the default image I see the Ebox-II hard-drive but not with the image I builded
A: Probably you need the ATAPI block driver and the FATFS file system.

Sue Loh [MS] (Expert):
Q: Sue, if the image size is 8MB how much time shud it take...More so over, agreed it takes time but it dusnt even gets started( hey it cant take time to evn start dloading)
A: It shouldn't take very long at all, not more than a couple of minutes. And in your case, if you're having trouble connecting, the problem is not that it is too busy booting. There's something else going wrong -- I'll reply to your other message.

ivanjo_ms (Moderator):
Q: Are we required to submit our code with our report?
A: That is not a requirement. The choice is yours. Keep in mind that you have only 20 pages so use that optimally.

James Z (Moderator):
We have just about 5 minutes to go. The experts will have time for just a few last questions.

David_Liao_MS (Expert):
Q: David_Liao_MS what is PID & VID? (to load Mass Storage Driver)
A: It is information which OEM put into the product, If you have debug build of OHCI or UHCI, enable the debug zone on descriptor, it will tell you.

Sue Loh [MS] (Expert):
Q: Yes i am using PB and all you said is ansolutrly right Sue. The ebox only has the preloaded image and i fail to connect to it. YEs the device name pops up in connection settings....i can also stt kernkitl.exe in ce.bib
A: Hmm. If the name pops up in the connection box then I'm not sure what the problem would be. Let me make sure I am clear what I'm talking about. In Target -> Connectivity Options the "settings" button next to the "download" drop-down won't have your device name in the 'active devices' box until you reboot the device. When you reboot your device manually the name should show up inside the "active devices" list. If it does, and you still can't connect, write to HELPP since we're running out of time now. If it doesn't show up there then maybe there's a connectivity problem (ethernet cable or something).

David Kanz [MS] (Expert):
Q: excerpt from MSDN: "manually configure the common elements of a DirectShow application and then adapt them for media capture" How to achieve it? thanks
A: The excerpt assumes you are writing the encoded media to a file. I think it basically means you have to implement your own capture interface from the camera or audio driver and send it to an encoder yourself and write the endoded media samples to a file.

ivanjo_ms (Moderator):
Q: ivan pls check ur mail for the other companies' reply i told you about for TTS engine, the mail was written in a way to get a reply coz we were fed up of mailing ssoft....
A: Thanks! I'll try to get some answers from them as well

ivanjo_ms (Moderator):
OK Bye guys - this was great - thanks for participating and all the very best!!

James Z (Moderator):
The moderated chat session is now over. Thanks for coming.

Top of Page Top of Page