### Download and Install Application Source: https://doc.embedded-wizard.de/getting-started-am62-opengl-wayland?v=15.00 Use 'make install' to copy the compiled application binary to the target system and start it. Ensure the target IP address is correctly set in 'target_ip.txt'. ```bash make install ``` -------------------------------- ### Install and Run Application on Target Source: https://doc.embedded-wizard.de/getting-started-variscite-imx93-software-drm?v=15.00 Copy the application binary to the target and start it. Ensure the Wayland/Weston service is stopped for DRM applications. ```bash systemctl stop weston.service make install ``` -------------------------------- ### Execute SDK Installation Script Source: https://doc.embedded-wizard.de/getting-started-stm32mp1-opengl-drm?v=15.00 This command executes the SDK installation script to install the toolchain. Ensure the path to the script is correct. ```bash $HOME/STM32MPU_workspace/tmp/stm32mp1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/sdk/st-image-weston-openstlinux-weston-stm32mp1-x86_64-toolchain-4.0.1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15.sh ``` -------------------------------- ### Start Application Manually Source: https://doc.embedded-wizard.de/getting-started-am62-opengl-wayland?v=15.00 After copying the binary, log in to the target system via SSH and start the application manually. Ensure you are in the correct directory. ```bash cd /usr/local/ ./EmbeddedWizard-Linux-OpenGL-Wayland ``` -------------------------------- ### Start Application Manually on Target Source: https://doc.embedded-wizard.de/getting-started-stm32mp1-opengl-drm?v=15.00 Navigates to the application directory on the target and starts the application. ```bash cd /usr/local/ ./EmbeddedWizard-Linux-OpenGL-DRM ``` -------------------------------- ### Install Ubuntu Packages Source: https://doc.embedded-wizard.de/getting-started-ubuntu-x86-opengl-wayland?v=15.00 Installs necessary development packages for OpenGL and Wayland support on Ubuntu. ```bash sudo apt install build-essential libgles2-mesa-dev libwayland-dev wayland-protocols ``` -------------------------------- ### Start Master Demo Binary on Target Source: https://doc.embedded-wizard.de/getting-started-stm32mp1-software-drm?v=15.00 Starts the Embedded Wizard Master Demo binary on the STM32MP1 target via SSH. ```bash cd /usr/local/ ./EmbeddedWizard-Linux-DRM ``` -------------------------------- ### Start GCC Build Environment for Bootloader Source: https://doc.embedded-wizard.de/getting-started-rza1h-displayit?v=15.00 This script starts a Windows command line for building GUI applications. Ensure the J-Link utility path is correctly set. ```batch call "StartGccBuildEnvironment_Bootloader.bat" ``` -------------------------------- ### Example Usage of EwInvokeCopy Source: https://doc.embedded-wizard.de/ansic-rte-ewinvokecopy?v=15.00 This example demonstrates how to use EwInvokeCopy to update a property from a foreign thread. It shows the necessary setup for scheduling an invocation. ```c // Example of updating a property from a foreign thread: // Define a structure to hold the data to be passed typedef struct { int propertyId; void* propertyValue; } TUpdatePropertyData; // Define the function to be invoked by Embedded Wizard void MyUpdatePropertyProc( const TUpdatePropertyData* aData ) { // Access and update the property using aData->propertyId and aData->propertyValue // ... } // In a foreign thread or ISR: void ForeignThreadOrISR() { // Prepare the data to be sent int newValue = 123; TUpdatePropertyData updateData; updateData.propertyId = 42; // Example property ID updateData.propertyValue = &newValue; // Schedule the invocation using EwInvokeCopy EwInvokeCopy( (XInvokeProc)MyUpdatePropertyProc, &updateData, sizeof( TUpdatePropertyData ) ); } ``` -------------------------------- ### Compile and Link Example Application Source: https://doc.embedded-wizard.de/getting-started-am62-opengl-wayland?v=15.00 Navigate to the application project directory and use 'make' to compile and link the Embedded Wizard UI sample application. ```bash make ``` -------------------------------- ### Setup Linux Host and Yocto Project Source: https://doc.embedded-wizard.de/getting-started-imx8-opengl-drm?v=15.00 Steps to set up a Linux host and the Yocto project for building the system image and SDK. ```bash Setup a Linux host. Setup the Yocto project. Build the Yocto project and the SDK for a dedicated i.MX 8 reference platform. Program the created system image to the SD card used on the target system. The system image can be found below /tmp/deploy/images. Export the created SDK. The SDK installer fsl-imx-*toolchain*.sh can be found below tmp/deploy/sdk. ``` -------------------------------- ### StartEngine Command Implementation (No Parameters) Source: https://doc.embedded-wizard.de/device-class-command?v=15.00 A simple Command implementation for starting an engine, demonstrating a command without any parameters. ```C++ public: void StartEngine(); ``` -------------------------------- ### Get Transition State Methods Source: https://doc.embedded-wizard.de/mosaic_widgetset_horizontalslider?v=15.00 Provides information about animations during state transitions, including the start state, end state, and progress. Useful for animating decorations. ```javascript method point GetThumbMaxPosition(); ``` ```javascript method point GetThumbMinPosition(); ``` ```javascript method point GetThumbPosition(); ``` -------------------------------- ### Source Cross-Compiler Environment Source: https://doc.embedded-wizard.de/getting-started-am62-opengl-wayland?v=15.00 Source the cross-compiler environment before building the application. Replace with your SDK installation path and select the appropriate environment setup script. ```bash . /environment-setup-... ``` -------------------------------- ### Start Application on Target Source: https://doc.embedded-wizard.de/getting-started-imx91-software-drm?v=15.00 Log in to the target system via SSH and execute the application binary from the /usr/local directory. ```bash cd /usr/local/ ./EmbeddedWizard-Linux-Software-DRM ``` -------------------------------- ### Starting the Application via SSH Source: https://doc.embedded-wizard.de/getting-started-phytec-imx8-opengl-wayland?v=15.00 After copying the binary, open an SSH connection to the target, navigate to the binary's location, and execute it. Log in as root without a password. ```bash cd /usr/bin/ ./EmbeddedWizard-Linux-OpenGL-Wayland ``` -------------------------------- ### GStreamer Pipeline Example Source: https://doc.embedded-wizard.de/extern-video?v=15.00 This GStreamer pipeline is a starting point for video decoding on Linux with OpenGL. It uses uridecodebin for demuxing/decoding, glupload for GPU texture upload, and fakesink with a handoff callback. ```text "uridecodebin name=source ! glupload ! fakesink sync=1 name=sink" ``` -------------------------------- ### Get URL Property Example Source: https://doc.embedded-wizard.de/applet-interface?v=15.00 Retrieves the current URL from a WebBrowser instance by invoking an external function. Assumes the function returns the URL as an Embedded Wizard string. ```Embedded Wizard Script // Get the handle representing the instance of the external application. var handle theHandle = GetHandle(); var string url; $if !$prototyper native ( theHandle, url ) { /* Relay the invocation to the external application. Note: 'theHandle' refers the concrete instance of the WebBrowser. We assume, the invoked function returns the URL stored within an Embedded Wizard string. */ url = WebBrowser_GetURL((WebBrowser_Object*)theHandle ); } $endif return url; ``` -------------------------------- ### Suppressing Input During Animation Source: https://doc.embedded-wizard.de/move-point-effect?v=15.00 Invoke BeginAnimation when an animation starts to suppress user input. Call EndAnimation when the animation is complete to restore input handling. This example shows the basic usage pattern. ```javascript // Just in the moment you start an animation .... SomeEffect.Enabled = true; // ... suppress the event handling rootthis.BeginAnimation(); [...] // Later, when the animation is done you restore the event handling again rootthis.EndAnimation(); ``` -------------------------------- ### Example $version Macro Output Source: https://doc.embedded-wizard.de/version-macro?v=15.00 Demonstrates possible values for the $version macro, showing the major and update version format. ```text 9.30 12.00 12.05 12.17 ``` -------------------------------- ### Handling Button Press and Release Events Source: https://doc.embedded-wizard.de/push-button-widget?v=15.00 Implement OnPress to start a timer and OnRelease to stop it, allowing an operation to repeat as long as the button is pressed. This example requires handling both OnPress and OnRelease events. ```JavaScript function OnPress() { // Start interval Timer } function OnRelease() { // Stop interval Timer } ``` -------------------------------- ### Get Push Button Transition Start State Source: https://doc.embedded-wizard.de/mosaic_widgetset_pushbutton?v=15.00 Returns the state the widget was in before the current state transition began. Useful for calculating decoration states during animations. Returns the current state if no animation is in progress. ```cpp WidgetSet::CommonState GetTransitionStartState(); ``` -------------------------------- ### Example Path Format Source: https://doc.embedded-wizard.de/path-macro?v=15.00 Illustrates the structure of the path macro, showing how unit, class, and method names are combined. ```text Application::Button.UpdateViewState ``` -------------------------------- ### Specify Key Color Values for Transition Source: https://doc.embedded-wizard.de/pulse-color-effect?v=15.00 Use the Value1 and Value2 properties of the Effect object to define the start and end colors for the animation transition. For example, to fade between red and blue, set Value1 to #FF0000FF and Value2 to #0000FFFF. ```text To specify the key values the Effect object provides the properties Value1 and Value2. Under normal circumstances, the property Value1 determines the value at the begin of the transition. In turn, Value2 determines the value at its end. Accordingly, to implement the above mentioned fade-in example you have to initialize the property Value1 with #FF0000FF and Value2 with 0000FFFF. ``` -------------------------------- ### Source the SDK Environment Source: https://doc.embedded-wizard.de/getting-started-rzg3e-opengl-wayland?v=15.00 Source the SDK installer to set up the build environment. This must be done each time a new build console is opened. ```bash . /environment-setup-cortexa55-poky-linux ``` -------------------------------- ### Manually Download and Start Application Source: https://doc.embedded-wizard.de/getting-started-imx7-opengl-wayland?v=15.00 Manually copy the application binary to the target system using SCP and then start it via SSH. Replace '' with the actual IP address of your i.MX 7 target. ```bash scp EmbeddedWizard-Linux-OpenGL-Wayland root@:/usr/local ``` ```bash cd /usr/local/ ./EmbeddedWizard-Linux-OpenGL-Wayland ``` -------------------------------- ### Install Development Tools Source: https://doc.embedded-wizard.de/getting-started-stm32mp2-opengl-wayland?v=15.00 Installs essential development tools and libraries required for building applications on the STM32MP2 platform. Ensure your package list is up-to-date before installing. ```bash sudo apt-get update sudo apt-get install sed wget curl cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libxml2-utils xmlto docbook bsdmainutils iputils-ping cpio python-wand python-pycryptopp python-crypto sudo apt-get install libsdl1.2-dev xterm corkscrew nfs-common nfs-kernel-server device-tree-compiler mercurial u-boot-tools libarchive-zip-perl sudo apt-get install ncurses-dev bc linux-headers-generic gcc-multilib libncurses5-dev libncursesw5-dev lrzsz dos2unix repo libssl-dev sudo apt-get install default-jre ``` -------------------------------- ### Start Prototyper with Application Class Source: https://doc.embedded-wizard.de/quick-tour?v=15.00 Use the Prototyper tool button or Ctrl+F5 shortcut to test the entire GUI application. ```text Start Prototyper with application class ``` -------------------------------- ### Starting and Stopping Animation Source: https://doc.embedded-wizard.de/move-and-resize-rect-effect?v=15.00 Shows how to enable and disable an Effect object to start, stop, and reset the animation. Setting Enabled to true starts the animation, while false stops and resets it. ```Chora Effect.Enabled = true; // To stop and reset: Effect.Enabled = false; ``` -------------------------------- ### Color Start Value Property Source: https://doc.embedded-wizard.de/mosaic_effects_coloreffect?v=15.00 The 'Value1' property defines the starting color for the animation. ```Chora property color Value1 = #00000000; ``` -------------------------------- ### Source SDK Environment Setup Source: https://doc.embedded-wizard.de/getting-started-stm32mp1-opengl-drm?v=15.00 This command sources the SDK environment setup script. This must be done each time a new build console is opened to set up the necessary environment variables. ```bash . /opt/st/stm32mp1/4.0.1-openstlinux-5.15-yocto-kirkstone-mp1-v22.06.15/environment-setup-cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi ``` -------------------------------- ### Manually Download and Start Application Source: https://doc.embedded-wizard.de/getting-started-imx93-software-drm?v=15.00 Alternatively, manually copy the application binary to the target using SCP and then start it via SSH. Ensure the Wayland/Weston service is stopped before running. ```bash scp EmbeddedWizard-Linux-Software-DRM root@:/usr/local ``` ```bash cd /usr/local/ ./EmbeddedWizard-Linux-Software-DRM ``` -------------------------------- ### Console Output During Application Startup Source: https://doc.embedded-wizard.de/getting-started-mimxrt700-evk-vglite?v=15.00 This is an example of the console output you can expect during a successful application startup on the MIMXRT700-EVK target. It indicates the successful initialization of various system components. ```text Initialize Display... [OK] Initialize Touch Driver... [OK] Initialize Memory Manager... [OK] Initialize Graphics Engine... [OK] Initialize Invocation Queue... [OK] Create Embedded Wizard Root Object... [OK] Create Embedded Wizard Viewport... [OK] --------------------------------------------- Embedded Wizard System Info --------------------------------------------- Target system IMXRT700-EVK Color format RGB565 Build Environment version V15.00.00.00 Runtime Environment (RTE) version V15.00 Graphics Engine (GFX) version V15.00 MemoryPool address 0x20081094 MemoryPool size 1331200 bytes ExtraPool address 0x60000000 ExtraPool size 33554432 bytes Framebuffer address 0x203C2000 Doublebuffer address 0x20200000 Display size 720 x 1280 Framebuffer size 720 x 1280 Surface rotation 90 EwScreenSize 1280 x 720 Graphics accelerator VGLite Warp function support enabled Vector graphics support enabled Gradients support enabled Blur support enabled Mask support enabled Tint support enabled Bidirectional text support enabled Compression support enabled Index8 bitmap resource support enabled RGB565 bitmap resource support enabled Native bitmap resource support enabled Max surface cache size 8388608 bytes Glyph cache size 512 x 512 Max issue tasks 512 External Flash memory disabled Operating system FreeRTOS Toolchain GCC C-Compiler version 14.3.1 Build date and time Jan 16 2026, 10:07:53 --------------------------------------------- ``` -------------------------------- ### Connect Radio Button to Data Provider (MVC) Source: https://doc.embedded-wizard.de/radio-button-widget?v=15.00 This example illustrates connecting multiple Radio Buttons to a common int32 property (e.g., 'Opacity') of a data provider. The 'Outlet' property of each Radio Button is assigned a reference to the data provider's property, and 'OutletSelector' is set to a unique value for each button. This setup ensures automatic state synchronization and mutual exclusivity among the buttons without manual coding. ```C++ // Example demonstrating Radio Buttons connected to a common int32 property. // The 'Outlet' property of each button is connected to the view's property 'Opacity'. // Each button has an individual 'OutletSelector' value (0-255) corresponding to the image opacity. // Tapping a button updates the 'Opacity' property and synchronizes other buttons. ``` -------------------------------- ### Start Application on Target via SSH Source: https://doc.embedded-wizard.de/getting-started-phytec-am62l-software-drm?v=15.00 Log in to the target system via SSH, navigate to the directory where the binary was copied, and execute the application. Assumes root login without a password. ```bash cd /usr/bin/ ./EmbeddedWizard-Linux-DRM ``` -------------------------------- ### Install Debug APK Source: https://doc.embedded-wizard.de/getting-started-android?v=15.00 Installs the debug version of the Android application onto the connected device. ```bash gradlew -q installDebug ``` -------------------------------- ### Build and Run Android App Source: https://doc.embedded-wizard.de/getting-started-android?v=15.00 Builds the project, downloads the created APK to the connected Android device, and starts it. ```bash gradlew -q appStart ``` -------------------------------- ### Applet OnDestroy Example Source: https://doc.embedded-wizard.de/applet-interface?v=15.00 Example of an OnDestroy method to release video player resources using a handle. ```c $if !$prototyper native ( aHandle ) { /* Destroy the instance of the video player. */ VideoPlayer_DeleteObject((VideoPlayer_Object*)aHandle ); } $endif ``` -------------------------------- ### StartBrewing Method Implementation with Parameter Evaluation Source: https://doc.embedded-wizard.de/device-class-command?v=15.00 Implements the StartBrewing method, evaluating the aDoubleCup parameter to control brewing logic. It demonstrates passing parameters to native code. ```C++ void DeviceClass::StartBrewing(bool aDoubleCup) { // Implementation to start brewing one or two cups if (aDoubleCup) { // Start brewing two cups } else { // Start brewing one cup } // ... potentially pass parameter to native code ... } ``` -------------------------------- ### Install Embedded Wizard Studio on Linux/macOS using WINEHQ Source: https://doc.embedded-wizard.de/before-you-start?v=15.00 Use this command to install Embedded Wizard Studio or CHORAC on Linux or macOS via the WINEHQ environment. Ensure WINEHQ is installed and configured for Windows 10 or higher. ```bash wine msiexec /i ``` -------------------------------- ### Presenting, Dismissing, and Switching Dialogs Source: https://doc.embedded-wizard.de/managing-dialogs?v=15.00 Demonstrates the basic usage of PresentDialog, DismissDialog, and SwitchToDialog methods. Pass null for most parameters and false for the last one when first using these methods. ```cpp if ( I_want_to_present_a_new_dialog ) { // Assume, this is a new Dialog you want to present var Core::Group newDialog = new Examples::AlertPanel; // Present the Dialog now PresentDialog( newDialog, null, null, null, null, null, null, null, null, false ); } if ( I_want_to_dismiss_an_existing_dialog ) { // Assume, this is an already presented dialog you want to dismiss // again var Core::Group existingDialog = ... // Dismiss the Dialog now DismissDialog( existingDialog, null, null, null, null, null, false ); } if ( I_want_to_exchange_the_actual_dialog ) { // Assume, this is a new Dialog you want to present instead of // another actually presented Dialog var Core::Group newDialog = new Examples::SettingsScreen; // Dismiss the actually presented Dialog and present new Dialog SwitchToDialog( newDialog, null, null, null, null, null, null, null, null, null, false ); } ``` -------------------------------- ### Install Essential Build Tools Source: https://doc.embedded-wizard.de/getting-started-stm32mp1-opengl-wayland?v=15.00 Installs a comprehensive set of development tools required for building software on the STM32MP1 system. ```bash sudo apt-get update sudo apt-get install sed wget curl cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libxml2-utils xmlto docbook bsdmainutils iputils-ping cpio python-wand python-pycryptopp python-crypto sudo apt-get install libsdl1.2-dev xterm corkscrew nfs-common nfs-kernel-server device-tree-compiler mercurial u-boot-tools libarchive-zip-perl sudo apt-get install ncurses-dev bc linux-headers-generic gcc-multilib libncurses5-dev libncursesw5-dev lrzsz dos2unix lib32ncurses5 repo libssl-dev sudo apt-get install default-jre ``` -------------------------------- ### Install Required Packages Source: https://doc.embedded-wizard.de/getting-started-stm32mp1-software-drm?v=15.00 Installs essential packages for building and development on the STM32MP1 system. Ensure you have a stable internet connection. ```bash sudo apt-get update sudo apt-get install sed wget curl cvs subversion git-core coreutils unzip texi2html texinfo docbook-utils gawk python-pysqlite2 diffstat help2man make gcc build-essential g++ desktop-file-utils chrpath libxml2-utils xmlto docbook bsdmainutils iputils-ping cpio python-wand python-pycryptopp python-crypto sudo apt-get install libsdl1.2-dev xterm corkscrew nfs-common nfs-kernel-server device-tree-compiler mercurial u-boot-tools libarchive-zip-perl sudo apt-get install ncurses-dev bc linux-headers-generic gcc-multilib libncurses5-dev libncursesw5-dev lrzsz dos2unix lib32ncurses5 repo libssl-dev sudo apt-get install default-jre ```