I got the protected mode DOS 32 bit version to simultaneously run an HTPP server (!), FTP Server(!), I2C, CANBUS (SJA1000 controller chip) and an RS-485 (MODBUS/ASCII) controller network at the same time plus control of the parallel port for up to 8 relays. I had to do quite a bit of testing with multiple machines (4) making requests before I was convinced this was the right way to proceed. This is running nicely on my Pentium III 133 Mhz machine in the little yellow box. I believe it could beat Apache in terms of speed, easily. Of course most DOS web servers could beat Apache, it's common. Instead of a gigabyte of operating system and interpretation layers, you're talking directly to the Ethernet card.
I had my own mini-BASIC called VOSBasic which I have ditched. I got Lua to compile and run under DOS, then LuaSQLite with SQLite compiled into the program, so my mini-BASIC became obsolete. I am now using bits and pieces from ELua (Embedded Lua) to build a full scale Lua Embedded Web Server using the platform I described as the underpinnings. It's proceeding briskly. Frankly, it craps all over Python for DOS as an industrial development environment for protected mode sitting right on top of the raw hardware.
I am trying to get to bed earlier to help preserve my health. This is what I have been able to accomplish in about four months of work, 1-2 hours a night. With the Easter holidays coming up, I expect to make substantial progress towards releasing version 1.0 in June at some point. I think this is going to be a lot different from my computer game in that at some point in June I'm just going to take whatever I've got and put it up on SourceForge, regardless of what remains unimplemented and introduce that as "version 0.1" or whatever microversion I need to classify it as.
Right now as of this moment, it's useful and configurable for any setup within reason. The web pages are a fixed set of display units written by me at present but that could give way to totally dynamic Lua web pages at some point if I can get the document model parsed correctly for Lua script embedded inside it. At that point I could yank a great deal of my hardcoded logic and replace it all with Lua scripts including custom units by the end user.
This is the way I work. I write a little, discover wider horizons of what is possible and then write some more expanding on my newfound understanding, improving as I go through hands-on research and development. Two months ago I had no idea what CANBUS was or how it works, now I've got a test network of 6 CANBUS devices running. It's a thing of beauty, originally developed for automobiles but turns out it is like it was designed by a civil defense officer for shelter sensing, automation and control.
A year ago I think I was running a crude little PowerBasic program using IPX packets to deliver tiny chunks of messages between VOS units. I look back on that and whistle at how far I've come.
Of course, with 610 days to go to the Solar Max, it's imperative I release a version of this code within the next 100 days. I know that. I will get there.
I figure the first version must have:
- JSON based distributed control of I2C, CANBUS and RS-485
- Interactive Control Displays delivered to browser as HTML
- Inventory management (w/barcoding)
- Personnel management/Medical
- Meal planner/Recipe generator
- Maintenance/Work Orders
- Hydroponics/Permaculture Management unit
- PDF Memex retrieval from searchable database
(The very last feature, the PDF retrieval, was why I spent three weeks integrating the FTP server. The station has to be capable of asynchronous FTP transfers in the background while it continues to respond to HTTP actions.)
... if I get the Lua integrated with the web page response, all the above will be doable in soft coded scripts instead of hardcoded C++.
P.S. I just realized I may need to come up with my own acronym for VOS web server content. What do you think of "VSP" for Vault Server Pages? No standard has really arrived until you have an acronym.