Very simple C++ tree data structure for use with Arduino
$30-250 USD
Completed
Posted over 7 years ago
$30-250 USD
Paid on delivery
I need a very simple tree data structure that will compile in Arduino IDE.
The tree will hold a menu structure that will contain a LIMITED maximum number of items (nodes).
I need properties and methods that will allow me to know the currently focused node and list the nodes in each branch.
Each node needs to have an assignable method that will be activated when needed.
If you are not familiar with Arduino IDE, you can take a look at the attached source code ([login to view URL]) which works well in Arduino, it just does not suit my purposes very well.
But I like it is object oriented, so I wish it would be based on a similar style of coding.
I need an object for the tree (MenuTree) and objects for the menu items (MenuNode).
MenuTree should have the following methods and properties:
RootNode - MenuNode that is a parent of all the child nodes (created by default)
FocusedNode - MenuNode holding a pointer to the currently selected node
UpdatingInProgress - set to true before adding major number of nodes
AddChildNode(MenuNode, ParentNode) - adds a node to the tree, if ParentNode is null, add RootNode instead
GetNextFocusableNode(MenuNode) - returns the next node (down the branch) that can be focused (based on CanFocus property of the MenuNode), null if this is the last node that can be focused
GetPreviousFocusableNode(MenuNode) - returns the previous node (up the branch) that can be focused (based on CanFocus property of the MenuNode), null if this is the last node that can be focused
Password - byte
PasswordEntered - boolean
PasswordTimeout - time in seconds when the password expires, default 1800 seconds
PasswordExpired - event that fires when the password expires, also sets PasswordEntered to false
MenuRedraw - event that fires when some of the properties of the MenuNode change, unless UpdatingInProgress is true
ForceRedraw - method that fires MenuRedraw
MenuNode should have the following methods and properties:
ChildCount - number of direct child nodes of this node, read-only
FirstChild - pointer to the first child node, read-only
NextSibling - pointer to the next sibling node (down the branch); returns null if the node is last node in the branch, read-only
PreviousSibling - pointer to the previous sibling node (up the branch); returns null if the node is first node in the branch, read-only
ParentNode - pointer to the parent node, read-only
MenuText - string to hold the menu text; if modified, fires MenuRedraw, unless UpdatingInProgress is true
CanFocus - boolean
PasswordProtected - boolean
AllowValueEditMode - boolean
ValueEditModeActive - boolean
Value - byte
Level - byte - stores the level number of the node, read-only
Index - byte - stores the position of the node within the branch, read-only
IsFocused - boolean, true if FocusedNode is this node
ActiveMethod - assignable method that will be activated when needed
An examples demonstrating the listing of the nodes in a branch and events firing must be provided.
Hi, i'm software engineer. I've experience with c,c++ programming and i'm very good data structure designer and coder. I have worked with arduino on a robotics project and some other projects. That included tree (AI type stuff). If interested message me for details.
Regards
Usman Shery
$55 USD in 1 day
4.9 (72 reviews)
5.3
5.3
4 freelancers are bidding on average $133 USD for this job
I would like to bid this job because I am really suitable for job description:
First: I am an software engineer who is very expertise with C/C++. In fact, I have done so many project of C/C++(Karatsuba multiplier, Nintendo design, encryption algorithm like Sax Hash, Bernstein Hash, HummingBird...Also, I participated in a Walker Recognition project(data from Camera to Human Detection(image processing-HOG feature and Adaboost) and display in VGA). Besides,,I implemented the image conpression (wavelet transform).
Also, I am very good in English (IELTS 6.0) and I have several year of researching so I can fully understand your requirement and understand fully about the papers and write the academic report.. Please contact me and let me know if you want any special requirement and do with lower price.
Thank you.