Thursday, April 10, 2008

Vault OS : Update #10 : Open QNX ... ?

Last night I was trying to use some simple C++ code I had running in Fastgraph to take a stab at a GUI designer, so I could design forms in Vault OS with a tool from the beginning instead of handcoding their layouts.

I decided to have a look at Photon MicroGUI (from QNX RT Momentics) to see how they were doing it and maybe determine if I could use their output format. After compiling their examples a few times, I realized by simply linking fewer supported modules it was quite easy to generate very small executables with most QNX "Neutrino" features included, even under 512K that would run in Protected Mode on the 32 bit machine. Then I fiddled around with some of their examples running RT GUI windows together and I immediately noticed that their GUI kicked the living crap out of the one I have built for my game on another project. It generated executables of roughly the same size, however, when examining the .obj files. It also had tons of sample code for drawing sensor widgets and windows of all varieties, some of it very good looking stuff, too. Antialiased fonts and complete vector graphics drawing in windows (maps, diagrams, spatial data) running at about 92 fps on a crappy old Pentium 200mhz machine.

So I had a closer look at my license. If I only work with QNX to develop noncommercial products, I could utilize the entire Momentics development suite to produce Vault OS with all the super cool frills like an embedded HTML browser, already debugged by QNX over the past five years. This does not preclude charging some money for a manual one of these days, after I have released the Vault OS for free. (Which I intended to do no matter what, anyway)

So I played around a bit more with the Photon MicroGUI and looked at some of their example applications. All of this stuff was absolutely dogging my current Vault OS shell in terms of complexity and polish. I don't know if my code would be as advanced as this stuff in two years, much less two months. The only way I even managed to imitate the real-time GUI features in my code was by using a simple graphics hack in the display. QNX, on the other hand, does what I was faking ... for real.

I think it cuts about 95% of the time off my development cycle if I use QNX. In fact, if I get the dev environment set up correctly on my older PC, I could produce my first Vault OS prototype before the end of April if everything went smoothly. I could have it completely installed in the Hive and running on terminals everywhere by this summer, before end of June.

What do you think?
UPDATE : Going through it again some more tonight, QNX Momentics development suite on Windows XP. Create entire OS in a binary and run it from Flash on any 32 bit machine. Wow. It took me about ten minutes to write what I have spent 20-30 hours working on in Vault OS already. I can still use code from things like SQLite or Metabase if I want, only with the full support of the QNX IDE and dev SDK. I wish I had investigated this option more thoroughly before I started. Full support for monochrome or 16 color displays, even console mode in Photon MicroGUI. Pretty amazing development environment, too.
P.S.-UPDATE : Goodness, this thing rocks! Output binaries for Pocket PC, ARM devices ... it's got all the bases covered. Tons of source code to do I2C, serial and parallel port sensors, TCP-IP supported as a high level messaging hub ... I am feeling lightheaded looking at all this stuff. If I started right now, I should be able to write something like QNX on my own at least before 2036 A.D. rolls around. As it stands, I think I will use QNX Neutrino as the kernel for Vault OS. It was really a no-brainer once I found out what was involved with a proper examination of their tools and dev kit.

No comments:

We support Ukraine and condemn war. Push Russian government to act against war. Be brave, vocal and show your support to Ukraine. Follow the latest news HERE