the link for download?
Connect 6
Anyways, I got the first image placing working for static images. Now that the code is set, it should be quick work to get the other image types (button, rotate image, multi-image) integrated.
After that opening and it will be done!
But this will have to wait for another day, as I am going to bed!
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
Nothing new to download since the last update a few days ago (still the download link in the first post).
The method is getting the graphics to work, then output code from the graphics, then release an update.
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
First Image: New Graphic Toolbar Layout
Second Image: When you add a page to the graphics area, the editing buttons become enabled. In order from left to right: Add, Edit, Delete, Previous Page, Current Page Label, Next Page
Third Image: Graphic Editor with a background image and 2 static images. Then the cursor crosshairs. The rulers up top are pixel exact rulers. The label on the top right is the current cursor location. The rightmost image changes showing the current click state. There are 3 click states. Nothing (Red Circle), Prelock (Unlocked Lock Icon), and Lock (Locked Icon). In Nothing, as it says, nothing happens. You can move around the cursor and this is the nothing selected state. Prelock is when you click once either left or right button. The module you clicked stays textured if on full render detail, and the others become low rendered red to show what it thinks is selected. If this is correct, click 1 more time and it goes to locked. If you left click, it locks, and now it follows your cursor to move it around until you click again. If you right click, the status changes to "nothing" and brings up an editing window for that module depending on what it is.
Fourth Image: Pre-lock Example
Fifth Image: Moved 2nd static image by left clicking on pre-lock status, and then changed to low-detail rendering from the dropdown menu
![]()
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
Staring at lines of code (now with line counts in the 6 digit range) is making me go insane...
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
Well I am adding support for opening files. I am around the 500th line of a 6000 line algorthm for reading in the XML... Only 400ish compile errors to go!![]()
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
Connect 5
Ok, I got most of it working!
You can open and save everything but root if/then logic and what I havent even coded in yet (Fonts, Labels, Multi-Images, and Rotate-Images).
Everything else is functional as far as I can tell. I see the light at the end now!
I will try to get those multi-images and rotate-images in there.
So the list to do is:
complete "then do" functions
start-finish Fonts, Labels, Multi-Images, and Rotate-Images
finish help file
and that is it.
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
download link updated.
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
Just dl'd it and started fooling around. Here are my findings, bugs, general comments, etc. (in no particular order)
Add an Analogue Input dialog box: When adding an analog input, for the Port and History fields, it doesn't accept input from the numeric keypad, only the number keys above the qwerty part of the keyboard work. Similar issue for the Digital Output dialog box.
Add an Analogue Input dialog box: When tab keying off the Name field, it takes a couple tabs to get to the Connected to field. Your tab order needs to be checked. Similar issue for Add a Digital Output dialog box.
Main: There's no button for adding a Digital Input. Are Digital Input supported yet?
Main: When exiting, it should prompt you to save only if the buffer was changed, not all the time.
Main: If the prog is going to start with something in the editor, it may as well automatically load the FusionConfiguration.xml file.
General: For the id names, please retain uppercase and lowercase characters. It looks like you have converted everything to lowercase.
Graphical Input/Display Button: I can only enter 4 characters in the Name field, yet when the control loads the first time, you have a longer name there.
General: When loading/browsing for an image, you bring up a Load Image dialog box, which you have to click the load button again to get to the system Load Image box. Can that intermediary step be eliminated?
Graphical Input/Display Button: When I try to load a Primary Image, I get an error: Invalid Image (Image is not a supported file type). I am trying to load a small (100x100) png file.
Can you explain the timers (Input, Output, GUI, Logic)? What are they used for? Give example values.
I like the Auto Average feature. Can you please give some examples of what the History value should be set for? Is 10 enough? 100? Why would you want to use a higher number rather than a lower number?
When opening a file, I got an XML Parse Error (There was an error parsing the string contents of the file to understandable XMK. System.Xml.XmlException: Data at the root level is invalid. Line 94, position 36.) It would be very helpful if the XML editor section could have line numbers to help find the error. Also, highlighting it in yellow would be great. (Ooops, I realized it didn't even open the file.) Looking at the file in an editor shows that "n>" was added to the last line of the file. I didn't do that, so something in the program must have added that at some point.
Overall, I think this is an improvement over version 2. Keep up the good work!
Hmm... I am programming on a laptop so no numpad, but it just checks to make sure the input is a number not for the keys themselves which is odd. I will have to look into that.
Yeah I havent cleaned up the tabs, but it will be.
Digital inputs will have to be manually added and changed. In our next version of the brain, we are discontinuing the use of the digital inputs and allowing more analogue inputs. All analogue inputs can be used as digital inputs, but not visa versa.
Will do.
Problem is this program can be read from anywhere, and so it it looks for a certain file, that file could be anywhere. When it is done it will be released alongside the main program so it will only be a simple 1 click up and 1 click down in folders to get to the main program where you can edit that file.
Yup, I will see what I can do, but as soon as the file is read in, it is lower case, as well as when it saves. And when it goes to the main program it like windows ignores case and converts everything to lower. So an ID of "test" and "tESt" are the same to the program and I want to make sure it is more idiot-proof.
Interesting that is definately a bug. I will track that down. Probably just have the max-field set inadvertently.
In keeping with the fool-proof concept, I have tried to greatly generalize and abstract the code. Therefore if there is an error, I can find it and fix it in 1 spot, and not need to go through duplicate code to find more errors. So that 1 Load Image form is shared throughout the program. I can make it open that window and then automatically open the dialog box to select a file, but you will still have the load image form there once you open the image file. This is by design.
What is the file extension? Is it *.png or *.PNG or ? Can you open other files and just not this one, or do all images fail for you?
The example values are what the main program and the configurator start out at. Also anything below 30mS it will warn you of high CPU usage.
Input Timer: Analogue (and for those with digital inputs, them too) are read into the program and stored in memory.
Output Timer: Digital outputs are evaluated and the command is sent to FB.
GUI Timer: Refresh rate for the graphics part of the program.
Logic Timer: The interval that the variables are updated in.
An if/then can be evaluated on any of these timers. You can think of them as alarms that go off every xx milliseconds and do something. What they do is what is above at the minimum. Sky is the limit for the maximum. The "fire_on" tag in the if/then code tells the program when to evaluate that block. So you could have logic evaluated on the GUI timer if you want. Also logging data can be done on any timer.
The number is the time in milliseconds before the event is fired again. So if the GUI is set to 100mS, then every 100mS, the screen will redraw. If it is set to 20mS then every 20mS the screen will redraw.
Good question. The history value is the maximum data points to keep in memory of the sensor. If autoaverage is on, it will average these history points to get a pseudo value that is what the program will think is the inputs current value. Also if the history is set to 1000 and it is the first time the program starts, there are obviously not 1000 points in memory already, so it only averages only what is there. So instead of (x + y + z + a + b)/1000 it is (x + y + z + a + b)/5 and when data point "c" comes along it will average by 6 and so on.
The amount of averaging depends on the applications. For instance a temperature sensor. Usually on the outside, and it would be very odd for the temperature to go down by 100 degrees in the matter of a few seconds, so you set the average value high. This will ideally take the random noise and average it into oblivion. So instead of bouncing around, it will be constant. This is what other products do (even OEM) but give no control over. Here you can control how steady/opposed to change you want to make it.
In contrast, a sensor like the ultrasonic or IR distance sensor you dont want to average too much or by the time the average of 1000 points matches with what it is reading, your bumper is through the garage wall.
Sort of have to use good judgement on what values. I will post recommended for each sensor we carry later. Also to convert the number of history points to a "time" value, you have to use the input timer value. So if the timer is set to 100mS, then a history of 10 will average over 1 second. But if the timer is set to 1000ms (1s), then the same history of 10 will now average over 10 seconds.
I will be adding a weighted average feature too, but that is for later.![]()
I have seen this before for some reason. I have only seen it on vista though. Are you using XP or Vista? basically it opens and writes to the file, but the file didnt clear itself completely before it wrote. So there is some garbage inbetween. Never happens on a fresh file though. Therefore, I am thinking I will actually write to a temporary hidden new file first, then delete the destination save file if it exists, and copy over the temp file. That way it is always new.
Thanks for the comments, and I appreciate it. Keep them coming! And of course if you have other questions or opinions let me know. After all I am programming this for you guys.![]()
Fusion Brain Version 6 Released!
1.9in x 2.9in -- 47mm x 73mm
30 Digital Outputs -- Directly drive a relay
15 Analogue Inputs -- Read sensors like temperature, light, distance, acceleration, and more
Buy now in the MP3Car.com Store
Bookmarks