INPROGRESS

Overview

An RDK-V Emulator App Manager basically focuses on emulating the features such as: remote control unit, RDK services api validation's, testing automation, virtual box manager, application manager etc. and adding many more features to provide support to application developers and testers to make their life easier with the new RDK-V Emulator App Manager. It comes in a form of installer package that can be installed on desktop pc (Linux) and launched.

Prerequisite

Emulator app manager has been developed and tested on below environment

  • VS Code: Version-1.63.0

Visual Studio Code is a source-code editor made by Microsoft for Windows, Linux and macOS.

  • Electron: 13.5.2

Electron (formerly known as Atom Shell) is a free and open-source software framework developed and maintained by GitHub. It allows for the development of desktop GUI applications using web technologies: it combines the Chromium rendering engine and the Node. js runtime.

  • Google Chrome: Version 96.0.4664.93 (Official Build) (64-bit)

Google Chrome is a cross-platform web browser developed by Google.

  • Node.js: 14.16.0

Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.

  • V8: 9.1.269.39-electron.0

V8 is Google's open-source high-performance JavaScript and WebAssembly engine, written in C++. It is used in Chrome and in Node.js, among others.

  • OS: Linux x64 5.11.0-41-generic

An operating system is system software that manages computer hardware, software resources, and provides common services for computer programs.

  • Oracle Virtual Box: Version 5.2.42_Ubuntu r137960

          Oracle VM VirtualBox is cross-platform virtualization software.

RDKV Emulator Build Steps

Follow below link/steps to build rdkv emulator dunfell image along with rdk services

  • link will be updated soon

Source code setup and Run application

Follow below steps to run application on host pc and create installer package

  • Step 1 - get the emulator src code

            $ git clone https://code.rdkcentral.com/r/rdk/devices/intel-x86-pc/emulator/appmanager

  • Step 2 - goto RDKVEmulatorAppManager folder

            $ cd RDKVEmulatorAppManager

  • Step 3 - run below command to install dependencies

            $ npm install

  • Step 4 - run below command to launch emulator app manager

            $ npm run start    

Create installer package

Follow below steps to create installer package for linux           

  • Need to install electron-packager and electron-installer-debian globally

             $ sudo npm install -g electron-packager

             $ sudo npm install -g electron-installer-debian

  • Run below commands to make deb file for linux intaller.

$ electron-packager . --platform linux --arch x64 --out dist --overwrite

$ electron-installer-debian --src dist/emulatormanager-linux-x64/ --arch amd64 --config config.json

  • Installer package will be created and stored inside the dist folder.

Installation

Pre-Build Download

Steps to install

Step 1- Double click on downloaded installer deb package

Step 2- Default Linux software install window will appear with install button, click on install

Step 3- Authentication window will appear, give user password and press Authenticate

Step 4- Progress bar will be displayed, on successful progress bar will become 100% filled

or

You can use below command to install package into linux

$ sudo dpkg -i rdkv-emulatormanager_1.0.0_amd64.deb

You can use below command to uninstall/remove package from linux

$ sudo dpkg --remove rdkv-emulatormanager


On successful installation user/developer will be able to launch emulator app manager ui by selecting the RDK-V emulator icon from apps  

Note: RDK virtual remote can be launched from emulator app manager > remote manager (Prerequisite: RDK virtual remote should be installed, refer link: RDK-V Virtual Remote ). 

Features

Emulator IP Address Configuration

  • Developer has to configure the rpi device/emulator ip address, after device ip configuration emulator app manager will be able to communicate with rpi/emulator.

VM Manager


  • Install image: By clicking on install image button developer will get the option to provide instance name, select added image from the list (or add image by clicking on add image button) and install image into the vm.


  • Show installed OS List: By default, on launch VM manager installed os list will be display (show installed os list tab will be active), developer can see the list of installed images into the vm on the show installed list screen. 

  • Start VM: By clicking on start vm button developer can start the vm.
  • Shutdown VM: By clicking on shutdown vm button developer can power off the vm.
  • Reboot VM: By clicking on reboot vm button developer can restart/reboot the vm.
  • Delete VM instance: By clicking on delete vm instance developer can remove/delete the vm instance.

App Manager

  • Set app url: Developer having the option to set the web-based app url and on clicking launch application button app will be launched on emulator.
  • Home app url:  Developer has to provide the resident app url running on host machine and by clicking on launch application button default residentapp will be launched on emulator.
  • Launch IDE: By clicking on launch ide button developer can launch the pre-configured vs code and do modification in the code after that need to run $ lng dev command and immediately changes will reflect on emulator.

Follow below steps to configure your workspace in VS Code IDE

  • Step 1- Launch IDE by navigating and clicking on Launch IDE button

  • Step 2- Select your workspace

  • Step 3- VS code will be launched along with your workspace, do modification in the code.

  • Automate tests option: By clicking on automate tests button developer will get the option to execute the test scripts (pre-configured). On submit selected script will be executed and developer will be able to see the results on emulator.

Tools

  • Show apps: Developer can use this option to get the running apps name.
  • Move back: Developer can use this option to change apps z-order.
  • Move front: Developer can use this option to change apps z-order.
  • Opacity: Developer can use this option to change apps display.
  • Set focus: Developer can use this option to change apps display.
  • Visible: Developer can use this option to change apps display.
  • Move left: Developer can use this option to shift the apps window to left.
  • Move right: Developer can use this option to shift the apps window to right.
  • Move up: Developer can use this option to shift the apps window to up.
  • Move down: Developer can use this option to shift the apps window to down.

Api Manager

  • Validate Api: Developer can use this option to validate the plugin api's by selecting api from dropdown and click/select api from the list and click on "Validate Api" button.

  • Validate All Api: Developer can use this option to validate the plugin api's by selecting multiple api's from dropdown and click/select api from the list and click on "Validate All Api" button.

Remote Manager

Prerequisite: RDK virtual remote should be installed, refer link: RDK-V Virtual Remote

  • Launch remote: Developer can choose the remote from the available remotes listed in remote manager and on clicking use this button selected remote will be launched on window, as a separate app.

Help

FAQ's

1. How to set rpi or emulator ip in emulator manager app?
    We can provide target machine  ip address in ip box which appears on right-top side.

2. How to add image in vm manager?

    Select "Install image" option from vm manager tab, then select "Add image" button then we need to select the image from the file browser box.

3. How to install OS in oracle virtual machine?
    Select "Install image" option from vm manager tab, then select image which is appear on above install button and provide instance name (*) then select install button. Selected image will be installed on virtual machine.

4. How to delete image from list?
    Select "Install image" option from vm manager tab and then select delete option.

5. How to boot virtual machine OS?

    Select "Show Installed OS List" option from vm manager tab and then select installed os from the list and then select start button.

6.What is use of "Launch ResidentApp" option?
   "Launch ResidentApp" option allow to launch residentapp from host machine to target machine.

    Follow below steps to launch resident from host machine to target machine.

  1. Select "Open IDE" option from app manager tab.
  2. Select source code then open-source code.
  3. Press "ctlr+~" key to open vs code terminal.
  4. Run lng run command.
  5. Select "Launch ResidentApp" option from app manager tab.

7. How to execute test script?
    Select "Automate Test" option from app manager tab and then select "test script" from list and then select submit button.

8. What is use of Add Script option?
   Add script option allow to create test script and add in the list.

9. What is use of delete script option?

    We can remove the selected script from the list by using "Delete script" option.

10. How to test api from emulator manager/api manager?

      Select api from "Api list" result will be appear above "Api list". we can modify Api params in "Selected Api params" text fields and then select "Validate Api" button to make Api request.

11. What is use of "Validate all Api" option?
      Select apifrom "Api list" result will be appear above "Api list". we can modify Api params in "Selected Api params" text fields and then select "Validate Api" button to make Api request.

12. How to launch virtual remote from Emulator manager?
      Prerequisite: RDK virtual remote should be installed, refer link: RDK-V Virtual Remote

      Select "Use this " option from remote manager tap and then enter R-pi or Emulator ip address in remote app. Ip address will appear in bottom. After entering the ip address need to hit enter key. 

In progress Tasks

  • RDKV Emulator App Manager UI improvisation
  • Mouse over effect and tooltip will be shown in emulator manager ui buttons
  • Images/screenshots need to update with the latest changes   
  • Other new features         

Resources

For the complete documentation on electronjs refer link:

For the complete documentation on RDK Services please refer links: 

  • No labels