using hal libraries at device level and embedded wizard as GUI together

asked Aug 25, 2017 in System Integration by sajjad.radeon

Hi there

I'm new to embedded wizard and in the last days I was trying to achive my porpose with your documentations. first of all as a Criticism, I want to say that your documatations are a little bit at high level and I think they aren't appropriate enough to describe a subject clearly,there is no videos or any 0to100 example or whatever... but also your GUI platform is realy nice and inventive and I realy want to learn how can I do my porpuses with these beatiful UI components. ;)

I had worked with stm micro controllers for a long time and used HAL libraries for my works, they're realy nice and sweet...

I am wondering how can I use embedded wizard for my GUI and also use hal libraries for my device function. I am using STMF746, for example I want to build an embedded wizard UI environment that has a button and then when press this button, a code with HAL libraries (That I've wrote in Keil studio for example) fire as my handler and do some stuffs like USART or SPI trasmitions...

I have read some of your documantation like Device Class and Device Driver​ but I couldnt do my job...

I'm realy waiting for your helpful answer

thanks alot... :)

1 Answer

+2 votes
answered Aug 26, 2017 by Paul Banach
Best answer


in fact we have actually no special video tutorials demonstrating how you develop e.g. a slider GUI component. Our documentation addresses all aspects important for the development of GUI application with Embedded Wizard more generally. This starts with the creation of a new empty component, filling it with content, adding touch and keyboard handler functionality, managing states in the component, adding animations, ... and so far.

In principle, the section Working with Embedded Wizard of our documentation is already structured like the tutorial. If you read the documentation and learn the concepts step by step, you will then be able to deduce from the learned stuff how to implement your particular application cases. This is an important aspect since every GUI application and every customer specific GUI component appear and behave very different.

Additionally we provide Embedded Wizard with various examples, you can easily open and study. The examples are documented inline. Besides the examples, in the Gallery folder Components you can find various prepared GUI components you can add to your project, study and adapt to your needs. These are also very well inline documented. See the section Creating components from templates.

Regarding your question how to access from the GUI application your device functions I would recommend you the section Integrating with the device. You see there examples, how GUI can execute native code and vice versa. The essential part is the native statement. With it you can add native (ANSI C) code to the GUI application. In this manner the GUI application can access and call device functions. You can do this for example in a method executed when the button is pressed. The Device Class and Device Driver is just an advance concept to create dedicated (more abstract) interfaces between the GUI and the device. Internally it is also based on the native statement. It follows the Model-View-Controller paradigm. In principle, it is not obligatory to implement the Device Class. However, in large projects it will help you to divide the GUI code and the code to communicate with the device.

Also please take a look at the example Power Supply. It contains some buttons, switches and knobs. Additonally it contains the implementation of the Device Class to communicate with the device when the user touches the buttons or rotates the knobs. Open in this example the class Application::PowerSupplyClass. In this class you see e.g. the method OnSetSwitchedOn. This method is called when the user touches the main switch in the application. When you open the method in the Code Editor you can add to it code to address your particular device functions:


See also the Inline Code project member. With it you can add device specific include files (ANSI C *.H files) to the project so these are listed in the generated code. In this manner, you can call functions or access variables declared in the header files directly from the native statement.

Well, I hope the above explication will help you to progress with Embedded Wizard. :o)

Best regards

Paul Banach

Embedded Wizard Website | Privacy Policy | Imprint