EmbeddedRelated.com
Forums

Ok, I have to join the windows world ...

Started by Unknown November 18, 2005
Paul Keinanen wrote:
> On 18 Nov 2005 21:11:28 -0800, "rziak" <news@ziak.com> wrote: > >> Paul Keinanen wrote: >>> In a console application, at the end of your calculations, simply call >>> the WaitForMultipleObjects with no handles but with a suitable timeout >>> parameter. While the timeout parameter is in milliseconds, the actual >>> resolution is 10 ms (or 15.625 ms for multiprocessor kernels). >> While you may be correct for normal thread priority, my experience >> shows 1ms granularity in RT thread. > > I haven't seen this documented anywhere, but it appears (at least on > NT4) that if _any_ process calls timeBeginPeriod with 1 ms resolution, > the WaitForSingle/MultipleObject and Sleep indeed works with 1 ms > granularity on all processes.
I am not sure if this is documented or not, this was only my experience.
>> Also one can achieve very low latencies in RT thread priority. I have >> implemented a software LIN slave nodes few years back for my employer >> by receiving buffer overrun (SOF) and responding back at 9600. There >> was 6 such threads running on 6 UARTS (FIFOs off) each emulating 4 >> nodes. The response latency was about 200us and when putting entire >> system under 100% stress (launching few memory and processor hungry >> applications at the same time), oscilloscope shown the latency increase >> by another 100us. > > I have done some thread wakeup tests with 100-500 MHz processors and > the jitter appears to be within a millisecond or two. > > However, did you measure the worst case latencies ? These can be quite > hard to see on an oscilloscope.
You are right, my values are just visual readings from scope. No worst case measurement.
> In my experiments, I observed some rare 10-20 ms peaks at time to time > when there was a lot of other activity on the system.
As far as I remember, there was very little jitter with no activity on the system and about 100us average with 100% system load. What thread priority did you use ? Roman
> My colleague was using a system on which I had my cycle time > monitoring running. He was quite amazed, when the following day when I > told him when he had taken a break for smoking outside, by examining > the distribution of the cycle times :-). > > Paul >
You might want to repost this to microsoft.public.vc.* newsgroups.

Also, you could get a Unix type interface on Windows. Checkout the
following link:

http://www.microsoft.com/windowsserversystem/sfu/default.mspx

--
EventStudio System Designer 2.5 - http://www.EventHelix.com/EventStudio
Sequence Diagram Based Real-time and Embedded System Design Tool

Wow, so could this package be used to write applications that compile
under Windows and Mac OSX with little changes? Does this package
include GUI related APIs or sound card APIs?

I have to write a file translation utility for both Windows and MAC
OSX. I am looking at WxWidgets but I am concerned about the whole GPL
thing since we have some proprietary code involved that cannot be made
public.

-howy

In article <1132600070.292928.108230@f14g2000cwb.googlegroups.com>, howy
<howard@zaxcom.com> writes
>Wow, so could this package be used to write applications that compile >under Windows and Mac OSX with little changes? Does this package >include GUI related APIs or sound card APIs?
What package? If you are going to use the broken google system to interface to Usenet please set it up properly. You need to quote the message you are replying to. -- \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ \/\/\/\/\ Chris Hills Staffs England /\/\/\/\/ /\/\/ chris@phaedsys.org www.phaedsys.org \/\/\ \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
howy <howard@zaxcom.com> wrote:
> Wow, so could this package be used to write applications that compile > under Windows and Mac OSX with little changes? Does this package > include GUI related APIs or sound card APIs?
Please quote properly. I assume you mean wxWidgets.
> I have to write a file translation utility for both Windows and MAC > OSX. I am looking at WxWidgets but I am concerned about the whole GPL > thing since we have some proprietary code involved that cannot be made > public.
According to their website (www.wxwidgets.org): ---------------------------------------------------------------------- wxWidgets is currently licensed under the "wxWindows Licence" pending approval of the "wxWidgets Licence" which will be identical apart from the name. The wxWindows Licence is essentially the L-GPL (Library General Public Licence), with an exception stating that derived works in binary form may be distributed on the user's own terms. This is a solution that satisfies those who wish to produce GPL'ed software using wxWidgets, and also those producing proprietary software. ---------------------------------------------------------------------- So, you can make a product/program/etc that uses wxWidgets and you do not have to release any source code. Please read the full license for more details. ttyl, --buddy
> Wow, so could this package be used to write applications that compile > under Windows and Mac OSX with little changes? Does this package > include GUI related APIs or sound card APIs? > > I have to write a file translation utility for both Windows and MAC > OSX. I am looking at WxWidgets but I am concerned about the whole GPL > thing since we have some proprietary code involved that cannot be made > public.
SFU for Windows does support most Unix APIs. I don't think it support GUI interfaces. wxWidgets is a better choice for GUI applications. -- EventStudio System Designer 2.5 - http://www.EventHelix.com/EventStudio Sequence Diagram Based Real-time and Embedded System Design Tool
> SFU for Windows does support most Unix APIs. I don't think it support > GUI interfaces. wxWidgets is a better choice for GUI applications.
I keep coming back to wxWidgets in my search for the solution to my problem, but I read on their group that it's not for the beginner C++ programmer. I am just an embedded C guy and all the rest of us here are swamped with too much to do. Do you folks have any good suggstions for where to post a request for a consultant who has experience with wxWidgets? I have tried a few of the .jobs groups already. We need someone to write a little GUI based WAV file conversion program that runs on a PC and a MAC. The coversion process will use C code that is already in another embedded product to batch convert our proprietary audio files into a standard WAV format. If anyone knows of someone who is looking for a few weeks worth of work in this area, please have him/her contact me. thanks, -howy howard@zaxcomBOOSPAM.com (remove the capital letters from this address)
howy <howard@zaxcom.com> wrote:

> We need someone to write a little GUI based WAV file conversion program > that runs on a PC and a MAC. The coversion process will use C code that > is already in another embedded product to batch convert our proprietary > audio files into a standard WAV format.
This has me puzzled. Why would you want to use a GUI for a tool explicitly created for batched work? Command-line programs are better for batches in just about every possible aspect. The worst possible disadvantage I can think of would be that some non-technical users might be scared a bit. For a shop working on embedded systems, I honestly can't see how that could be a major issue. Heck, these days even the Macintosh crowd has understand that command line windows can be useful things! Then, if you still think you need a GUI, you can always develop it as a separate "shell" program in whatever language anybody happens to know or like (C++, Java, Pascal/Delph, Python, Tcl/Tk, VisualBasic, Javascript --- anything goes). The GUI shell would then execute the simple command-line program as a background process, to do the real work. Depending on how you do the command-line program, there may even be GUI shells that can do this for you. I.e. it could reduce to something as simple as "open a file system explorer, mark the relevant files, then drag'n'drop the whole bunch onto the green 'C' on your desktop". As an additional benefit, you wouldn't have to worry so much about licensing issues with the GUI toolkit, either, as the noqn-shareable code never gets linked to any of the GUI stuff. -- Hans-Bernhard Broeker (broeker@physik.rwth-aachen.de) Even if all the snow were burnt, ashes would remain.
howy wrote:
>> SFU for Windows does support most Unix APIs. I don't think it support >> GUI interfaces. wxWidgets is a better choice for GUI applications. > > I keep coming back to wxWidgets in my search for the solution to my > problem, but I read on their group that it's not for the beginner C++ > programmer. I am just an embedded C guy and all the rest of us here > are swamped with too much to do. > > Do you folks have any good suggstions for where to post a request for a > consultant who has experience with wxWidgets? I have tried a few of > the .jobs groups already. > > We need someone to write a little GUI based WAV file conversion program > that runs on a PC and a MAC. The coversion process will use C code that > is already in another embedded product to batch convert our proprietary > audio files into a standard WAV format. > > If anyone knows of someone who is looking for a few weeks worth of work > in this area, please have him/her contact me. > > thanks, > -howy > howard@zaxcomBOOSPAM.com (remove the capital letters from this address) >
I agree with other posters that you don't want a GUI for your batch program - write it as a simple command-line C program that can compile on anything, and if you must have a GUI wrapper, make it separately. Remember that just because you want it to run on Windows as well as *nix, doesn't mean you have to follow the traditional Windows insanity of writing one huge GUI program to do everything - modularise your problem into sensible parts. If you are still looking for a cross-platform GUI toolkit that works nicely with C rather than C++, try GTK.
>Why would you want to use a GUI ... ? >Command-line programs are better for batches in >just about every possible aspect.
I agree. I already have a command line program for WinXP to do the job but customers are complaining. Half the intended users of this program are not computer savvy at all. I have considered using a GUI wrapper to call the command line program, but I am not sure how to have the GUI extract the real time status/output of the command line program in a reasonably neat way. I have been told there are ways to capture stdout from a spawned EXE program from Java, but I have yet to see if this is only a capture of the program after the program has finished. If I can find a way to capture real time status info from the cmd line program I will do it the way you suggested. Most of the time this program will be processing at least 3GB of data and in several instances will need to convert an entire hard drive's worth of audio data in a shot, so feedback is important (at least in the sense of a meaningful pacifier). -howy