** 13/07/08 Fusion Control Centre Software Updates MAJOR Part I **
Thought I would make a post when a big change in the software happens. July is going to be a big month probably. :) I have been quiet around here for a while due to many reasons, some of which you should see pop up soon on the forums, and also mostly because of the huge software programming I have been doing. The framework for many many more improvements are already in the code, I am ironing out details and it will be released in another major update later this month hopefully.
Anyways, here are details for the first part to the big update.
Fusion Control Centre Uber MDX
- Speech Recognition - Control anything the program can do, by voice. It has a standard vote control for anything said, so anything that could be done by a button, or in the logic section can be done by speaking. It works similarly to Version 2's but waaay better, uses less resources, and more accurate. There are 4 main sections to the speech control.
- System Name - This is what you call the system, and can be left blank (for nothing) if you want. For instance, if you want to be able to say "What temperature is it?" and "Computer, what temperature is it?" then you put the system names as "Computer" and "" (blank). If you dont make the blank one, it helps reduce false positives when you are talking on the phone, or to a passenger as it needs an introduction word of sorts. Insipration from Star Trek. :D
- System Definitions - This is where you define what you want to call your inputs and outputs and the common actions. Specifically: Generic Digital Output name ("relay", "output", "switch"...), Generic Analogue Input name ("sensor", "input"...), Digital Output turning on ("turn on", "initialize", "activate"...) Digital Output turning off ("turn off", "stand down", "deactivate", "shut off"...), and Analogue Input queries ("what is the value of", "status of analogue", "requesting value of"...). There are no limits to the number of instances you can define.
- Custom Definitions - This is where you can give a custom name to a Variable or Digital Output. So if you have a sensor reading in temperature into a Variable, instead of saying "What's the value of sensor 1" you can say, "what is the outside temperature" and such. For Digital Outputs, define a port to be "AC" and now instead of "Turn on output 5" it is "Turn on AC".
- Custom Queries - This is the holy grail of customness. For the actual query, you can define beginning, middle, and ending sections. For responses, each one has a beginning and an ending with the value requesting going inbetween. The program will parse them all together into multiple sentences, so it gives the most freedom possible. So again for outside temperature, you with a simple 2 option beginning and middle and 1 option ending, you get "what's the outside temperature", "what is the outside temperature", "what's the current outside temperature", and "what is the current outisde temperature". All things that will give the same response and of course you can add as many options as you want. Also with the system name, you get all those options with every system name before it as well such as "Computer, what is the current outside temperature" and so on. For the responses, it picks one at random and says it back to you which can all be user defined.
The new speech uses the .NET 3.5 Framework, and as such now makes FCC require 3.5 to be installed hence the boost in the installer package size. If you are just updating, you will need to install .NET 3.5. (Vista systems should be ok, but if it doesnt work this is probably why). Also there is a speech debugger window added to the list of windows now that will show you all possible commands it will recognize, as well as what it thinks it heard, what it knows it heard and has acted upon, as well as what it heard, and rejected because it wasnt clear enough or just plain wrong. Sort of interesting and a good tool to use for getting everything set up. There is no voice training required as it uses Microsoft's built in. Also Text-To-Speech (TTS) used in the responses is also Microsoft standard. The TTS engine and voices can be changed in your control panel and Fusion Control Centre will use the selected voice. I am using Loquendos' "Elizabeth" voice which I find to be the most natural and pleasant sounding. Much better than what comes with XP and Vista, that is for sure (Take a testdrive here: http://tts.loquendo.com/ttsdemo/defa...oice=Elizabeth). But these things come at a price... $$$
- Scaling Image Problem Fixed - With GDI+ Drawing back in November 2007, it would draw images off kilter sometimes. I have gone back in and fixed this for all scaled images. Small Improvement, but a good one.
- GDI+ Basic Drawing Mode - There is now a basic drawing mode. This is another major thing. As of November 2007, Fusion Control Centre has not been using GDI+ as it is slow. It is very easy to program, and pretty universal since it uses the .NET framework which is needed to run the program in the first place, but terribly slow and inefficient. It is also limited in its abilities when doing lots of drawing. But after switching over the DirectX, there have been problems as well. Mostly because you need DirectX as a dependency. DirectX doesnt work over Remote Desktop. DirectX doesnt work under MacOS emulation. DirectX does not like Linux when running it in emulation. DirectX does not like loosing the display (turn off the computer, shut the laptop screen, unplug the VGA cord that sort of thing). All these are potential times for DirectX to go haywire. I am no DX programmer, but it works as I did it 99% of the time. But GDI+ works 100% of the time with the cost of speed and computer cycles. So I have re-added GDI+ support back into the program. You will notice that for small skins where there isnt much there, the GDI+ mode (Basic Graphics mode is what I am calling it) takes up less memory footprint and is faster. But once you get into some more complex displays, and transparency... transparency is the major issue here as Basic Mode has to do a lot of behind the scenes work to get it to look good unlike DX, anyways, once it becomes more advanced, GDI+ will take up more memory and more CPU cycles, and you can see the redrawing not as smoothly, or the components will sort of block onto the screen instead of just being there when changing pages and such. This is no good, and the whole reason I decided to use DirectX. But I realize that many people are using it for different applications so I recoded it back in. Something you will notice is that text in Basic Mode will slow it down a LOT. Because text is an image. Every character is drawing an image. That is a lot of processing power needed for displaying text. So to enable this new basic mode full time, add a command line switch of "-basicgui". So with the shortcut to the program, add it after the path. The program tries to automatically switch over to basic mode if it fails to initialize the graphics device with DirectX. So if starting the program over RemoteDesktop, it should catch itself, and switch over to basic mode. I do not reccommend systems capable of running the program in DirectX to use basic mode, as it will not be the same experience and will eat more CPU and be less responsive.
- Hide the Splash Screen - This one has been in there for a while, but I havent really ever told anyone about it. I realize for skinning there are times when you dont want to see the splash screen. Yes it is ugly too, I am not a graphics designer. Help is always accepted. :) Anyways, to disable the splash screen, again you use a command line switch of "-nosplash". That will hide the splash screen.
- ACPI Event Hooks - Since the timer function has been taken out of firmware, it is now up to the software to shut off the Fusion Brain. On Suspend, Hibernate, or Shutdown all of the output ports are shut off. When you resume from standby/hibernate the outputs will go back to what they were before. When the program restarts (from a cold boot) it still reads in the default settings from the skin file, so no change there.
- Advance Graphics Resume from Standby - The default DirectX had a bit of a problem on systems where it would resume blank. Well this is because the system never told the video card to redraw that part of the screen. Some did some didnt. With the addition of the ACPI events, I now force a redraw. So the screen might refresh itself 2 times on systems it worked for before, but at least it will redraw and you can see everything. It wasnt frozen, just not drawn. A way to force a redraw on some other systems was to change the size, but that is not needed anymore.
- Proper Client Area Drawing Size - I was basing the click regions and draw regions off of a borderless area. I didnt think many people would force a border. Well with the addition of borders, and the changes that some of us do to Windows itself making the title bar text huge and such, this little error could blow up to be huge. This is fixed. It now bases its size off of the client area, or in other words the area inside the border, so it doesnt matter how big the border is. It will scale the skin to that size, so it wont overlap.
Fusion Control Centre MDX Configurator
- Speech Recognition - Now the Configurator can fully take advantage of the speech recognition and you can read in, save out, and edit speech areas. Also under properties, you can enable or disable the entire thing.
- Debugging - Now the Configurator can enable the various debugging modes. You can create Virtual Brains, Speech Debugging Windows, If/Then debugging windows, and Variable Readout Windows. Perfect for when you are building a skin and you need to do some fine tuning, also for if you dont have a Fusion Brain and you are experimenting with a skin.
- Closing it - This has been in there since its beginning, but some people have requested how to close it. Right click the system tray icon, then hold down the "Control" key and click "Check for Updates". As long as CTRL is held down, it will ask if you want to close or not. But with it closed, you wont get updates, and without getting updates you will have to download the full installer package to install over which is a few hundred Mb as it is for a blank canvas. And we will not offer support unless you have the newest version of the software as we dont have time to track down a problem only to discover it has already been fixed or was a compatibility problem with older version of software A and a newer version of software B, we are busy people here... So keep your updates
- Shutdown - Before the Updater tried to stay alive by preventing shutdown. Well this is great until you try to actually turn off your computer or go to standby, and it prevents it. Well no more. It will no longer hold itself open. I was frusterated at somebody when I put that in there to force updates and prevent stupid questions, and didnt think it through. So it is not a problem anymore and hasnt been for a few months, but some people might be holding on to an old version.
- Updater Updates - Even an updater program needs a little TLC sometimes. So now the Updater will tell you to update when there is a new version. It cannot auto-update itself, so you will have to go to the www.FusionControlCentre.com website's software section and download a new updater.
So that is July 2008 Major Update I and there is another coming soon I promise. ;)