Putting it all together

Yes my obsession with full NETMF computers continues as we see what happens when you put all my NuGet packages together.

Thanks to GHI’s 4.3 firmware I can mount an SD on any GHI mainboard without having to know which one I’m running on. That makes something very special happen.

When you turn on the device it checks to see which family it is (just so it can show you CPU, speed, total RAM and free RAM) and the mounts the SD. And here’s the magic.

The very first step it to see if “\SD\autorun.pie” exists. You may remember .pie as my 2011 Pyxis 2 installer extension. Well it’s back and used to install all the drivers I currently have available and an autorun.sea. (SkewworksInstaller handles this and is available in Skewworks.NETMF.EXT).

.sea is the part of my latest set of formats. It contains a PE file as well as text information like Title, Company, Copyright, etc. The .sel contains a PE file specifically for drivers and will tell you what type of driver it is, version, name, etc.

Armed with this the system will first install the file and then run the autorun.sea that was created. The autorun is a system setup that lets you select your Mainboard and drivers (see screens).

Once the installer is finished the system will reboot and all your lovely modules load up.

There’s a lot more coming and I’m going to try and port as many drivers as I can so anyone can just grab the installer and go.

[Edit] Skewworks.NETMF.EXT will let you create .sea & .sel files on your SD card from an existing .pe so you can create your own as well. :slight_smile:

10 Likes

Is this going to become an OS?

Yes. The end goal is to be able to run almost any GHI board with a single line of code as an end user.

The .sea format also includes icons so apps will be ready to go to a desktop and creating apps is super easy. It’s just a normal NETMF application inside of a wrapper called NETMFApplication.

Huzzah! 8) Besides having added FEZ Spider to the supported Native Gadgeteer boards…

System loads up the drivers , shells OE in default domain, which then launches apps brilliantly in new domains.

The killer part of all this is all those Singletons are being automatically taken care of by the AppManager so all instances persist properly across domains without taking up extra resources.

On to app development!

I’m making a Mail app first. :slight_smile:

If you need apps, just make a list, and maybe I can help with some
They are programmed in c# right? nothing fancy right? Will it use glide?

1 Like

You can use Glide if you want. There’s a couple of ways to make apps for this.

1. Normal NETMF App
Make a normal NETMF app, that is absolutely it, not trickery involved. The system knows how to launch apps with their Main().

2. NETMFApplication
Instead of a console app, create a library. You’ll need the Skewworks Applications NuGet package. Mark your class 1) as [Serializable] and 2) as : NETMFApplication.

There is an Override method for Main(). Put your code in there and away you go. If you want to terminate your app call AppManager.Terminate(this.ThreadId);

3. Packaging
If you wish, both methods allow you to package them. Using the Skewworks EXT NuGet Package you can call EmbeddedApp.Compile to supply the existing PE, title, company, copyright, version and icon files (large and small, I normally use 48x48 and 105x105).