Skip to main content
Skip table of contents

Manifest.json

Overview

The resource contains manifest.json files for two different roles.

Type 1. Project manifest(root)

  • The project-related information is within the manifest.json file, which is included in the project folder. And the resource is contained within the Project Assets folder.

Type 2. Module manifest

  • User Module(Dart-Platform)

    • The module-related information is within the manifest.json file included in the folder with the module name inserted by the user. Also, library and resource files are included in libs and src folders respectively.

  • Framework Module(Dart-Framework)

    • In the manifest.json of the Dart-Framework module package, information necessary for installing and executing the Dart-Framework module package should be defined in JSON format.

Info.

You can find manifest.json file in EXPLORER window

  • Project manifest : Project namemanifest.json

  • Module manifest : Project namePackage name manifest.json

For example, Project Manifest includes the name and package name, version, icon, etc.

Document - Guides - Beginner's Guide - Create your first module - Project manifest

Project manifest(root)

In case of the module manifest, it includes the package information like the main javascript file, permissions, supported language, and screen information.

Document - Guides - Beginner's Guide - Create your first module - Module manifest

Module manifest(Dart-Platform)

1. Project manifest(root)

In the manifest.json of the integrated module package, the following information should be defined in JSON format.

You can find manifest.json (root) by the following link:

module_package_name -> module_for_dart-platform -> manifest.json

Image Sample

Document - Guides - Advanced User Guide - Module Resources - Project manifest

Files Structure

Key

Explanation

Naming rule

name

Module name

N/A

packageName

Module unique ID

  • It should consist of three or more segments separated by a dot (.).

  • Each segment should consist of lowercase letters [az] only.

ex) com.dra.jogplus (O), Com.dra.Jogplus (x), .com.dra.jogplus (x), com.dra (x)

version

A number to determine whether the module package is up to date.

According to Semantic Versioning 2.0.0

ex) 1.12.3

sdkVersion

DART-SDK version that has been used to develop the module package.

positive integer

icon

Module icon resource path

 

drscModulePackageFile

Path of the DART-Platform (sub) module package file (.dm) included in the integrated module package.

N/A

To better understand, please refer to the following: Example - manifest.json and Classification Module.

example - manifest.json
CODE
{
    "name": "Jog+,    // or'@lang/app_name' (TBD)
    "packageName": "com.dra.jogplus",
    "version": "1.1.1",
    "sdkVersion:" : "1",
    "icon": "assets/images/icon.png",
    "drscModulePackageFile" : "module_for_dart-platform.dm"
}
Refer. Classification of modules
1) Classification of modules according to permission (User module package)

In each method of DART-API, '@system' and '@permission' annotations related to permission are defined as shown below.

CODE
// dart-api.ts

/**
 * System manager for managing module packages.
 * Through this you can retrieve various kinds of information related to the module packages that are currently installed on the DART-Platform.
 *
 * @api-version 1
 * @user
 */
export interface IModulePackageManager extends ISystemManager {
    /**
     * Install the given module package file or data.
     * If already module package which has same package name has been installed, then the operation will be failed.
     * This operation will be failed as below situation:
     * - Already module package which has same package name has been installed
     * - Requested module package's sdkVersion is not valid on system.
     *
     * @param modulePackageFile A .dm file path or data of the module package to install.
     * @param name A name of a requested module package.
     * @param dispatch A dispatching function (or simply dispatch function) is a function that accepts an action or an async action.
     * @return {@link IModulePackageInfo} object after installation the module successfully, otherwise null.
     *
     * @api-version 1
     * @system
     * @permission {@link Manifest.PERMISSION_INSTALL_MODULE_PACKAGE}
     */
    install(modulePackageFile: string | Uint8Array, name: string, dispatch: Dispatch): Promise<IModulePackageInfo>;
}

 

According to the '@system' API permission, modules are classified as follows.

Type

Explanation

System module

System permission modules that can use ‘@system' and '@user' APIs.

If 'dart.permission.SYSTEM_MODULE' is declared in manifest.json (for DART-Platform) - usePermissions, it is considered a system module.

Only developers certified by DART-IDE should be able to develop system modules.

User module

User permission module that can only use ‘@user' APIs.

 

2) Classification of modules according to the purpose (User module package)

Modules are classified according to purpose as follows.

Type

Explanation

Permission

Launched by

Screen type

Home

Provides functions for displaying module icons installed on DART-Platform and provide execution a Module’s Screen component.

System

Home Nav.

Full screen

Store

Provides functions for displaying, installing and deleting modules registered in DART-Store.

System

Store Nav.

Full screen

Recovery

Provides functions for recovering SW and robot.

System

Recovery Nav.

Full screen

Setting

Provides software setting and robot setting functions.

System

Setting Nav.

Full screen

Process

Module that can easily create and execute settings for a specific process step-by-step.

User

Home / Shorcut

Full screen

Task Editor

Module that can create environment settings and tasks required for robot operation.

User

Home / Shorcut

Full screen

Device Setting

Robot peripheral devices (End Effector, Machine, Peripheral) information module required for task creation in Task Editor module.

User

Menu in ‘Robot Parameter' App

Sub-view in 'Robot Parameter' app

User Command

Skill information module required for task creation in Task Editor module.

User

Menu in Task Editor type Module

Sub-view in Task Editor type Module

Jog

Provide functions for jogging a robot.

User

Home / Shorcut

Full screen

Dashboard

Module for displaying robot status and real-time monitoring information.

User

Home / Shorcut

Full screen

Etc

Other user custom modules

User

Home / Shorcut

Full screen / Service

2-1. Module manifest(Dart-Platform)

In the manifest.json of the DART-Platform module package, information necessary for installing and executing the DART-Platform module package should be defined in JSON format.

You can find manifest.json (for DART-Platform) by the following link:

module_package_name -> module_for_dart-platformsrcmanifest.json

Image Sample

Document - Guides - Advanced User Guide - Module Resources - Module manifest

Files Structure

Key

Explanation

Naming rule

main

Path of the entry script file built (bundled) through webpack.config.js .

-

usesPermissions

Permission list for using DART-API in which '@permission' is declared.

Refer to Permission related I/F definition among Manifest class of dart-api.ts

supportedLanguages

List of languages provided by the module package

  • If the system language is changed to a language not supported by the app, the app is displayed in the default language (en).

  • If it is not declared, it means that the module supports all languages.

language_code-REGION

  • i.e. “en”, “en-GB”, “ko”

  • FAQ

requiredPackageNames

  • List of package names which are needed to run this user module package

-

type

Module type

‘ID’ value for each module package type.

  • HOME

  • STORE

  • RECOVERY

  • SETTING

  • PROCESS

  • TASK_EDITOR

  • DEVICE_SETTING

  • USER_COMMAND

  • JOG

  • DASHBOARD

  • ETC

screens

name

Screen component display name

-

id

Screen component unique id

  • English lowercase letters, uppercase letters, and dot (.) [az, AZ,.]

  • Duplicate with other component ids defined in the corresponding manifest.json is not allowed

icon (option)

Screen component icon path

messageFilters

action

Message - action information required to execute the component.

Refer to Action I/F definition among Message class of dart-api.ts

category

Message - category information required to execute the component.

Refer to Category I/F definition among Message class of dart-api.ts

services

name

Service component display name

-

id

Service component unique id

  • English lowercase letters, uppercase letters, and dot (.) [az, AZ, .]

  • Duplicate with other component ids defined in the corresponding manifest.json is not allowed

messageFilters

Same as 'Screeen - messageFilter'

example - manifest.json
CODE
{
    "main": "index.bundle.js",
    "usesPermissions": [],
    "supportedLanguages": [],
    "type": "JOG",
    "requiredPackageNames" : "xxx.yyy.zzz",
    "screens": [
        {
            "name": "Main Screen",
            "id": "MainScreen",
            "icon": "src/assets/images/icon2.png",
            "messageFilters": [
                {
                    "action": "dart.message.action.MAIN",
                    "category": "dart.message.category.SCREEN"
                }
            ]
        },
        {
            "name": "Custom Screen",
            "id": "CustomScreen",
            "messageFilters": [
                {
                    "action": "com.dart.module.template.action.CUSTOM_SCREEN",
                    "category": "dart.message.category.PIP_SCREEN"
                }
            ]
        }
    ],
    "services": [
        {
            "name": "Custom Service",
            "id": "CustomService",
            "messageFilters": [
                {
                    "action": "com.dart.module.template.action.CUSTOM_SERVICE",
                    "category": "dart.message.category.SERVICE"
                }
            ]
        }
    ]
}

2-2. Framework manifest(Dart-Framework)

In the manifest.json of the Dart-Framework module package, information necessary for installing and executing the Dart-Framework module package should be defined in JSON format.

Key

Explanation

Naming Convention

ModuleName

ModuleName

Binary file name OR .so file name

ModuleCategory

ModuleCategory

  • ControlModule

  • CommunicationModule

ModuleSubCategory

ModuleSubCategory

  • AdmittanceControlModule,
    ImpedanceControlModule

  • TcpModbusSlave,
    UserTcp,
    UserSerial

Path

Source code and library Path

 

ControlDataPermission

Control data Permission

Only Control Module

  • Level_1, Level_2, Level_3, Level_4

example - manifest.json
CODE
Control Module Sample
{
   "ModuleName": "AdmittanceControl_test",
   "ModuleCategory": "ControlModule",
   "ModuleSubCategory": "AdmittanceControl",
   "Path" : ""
   "ControlDataPermission" : "Level_4"
   
}

Communication Module sample
{
   "ModuleName": "TCPModbusSlave_test",    
   "ModuleCategory": "ComunicationModule",
   "ModuleSubCategory": "TCPModbusSlave",
   "Path": """
}
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.