# IBM Visualization Data Explorer Programmer's Reference

[ Bottom of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]

## 3.3 Using the Module Builder: A Quick Walk Through

In this example, you will use the Module Builder to create a simple module that adds a single number to each data value of a set.

Note: This function is supplied with Data Explorer as part of the `Compute` module and is used here only for purposes of illustration.

1. Start the Module Builder with the command `dx -builder`. The Module Builder dialog box appears.
2. Fill in the `Overall Module Description` section as follows:

   `Name` | Type in a name for the module (for this example, use "Add.")
   `Category` | Select a category for the new module, either by clicking on one of the entries in the `Existing` pull-down menu or by typing in a menu name or a name of your choosing.
   `Description` | Type in a short description of the module. This description will appear in the module's configuration dialog box (in the VPE window).
   `Number of inputs` | Use the stepper buttons to set the value to "2." The two inputs of the new module will be a data Field and the number to be added to each data value.
   `Number of outputs` | The module generates a single output. Use the stepper buttons to set the value to "1" if that is not already the value. The output is the new Field (i.e., the data value plus the added value).

   `Outboard`

   Activate the `outboard` toggle button and type in "Add" in the `Executable Name` field. (Leave the other toggle buttons and fields as they are.)

   Note: In this example, the new ("outboard") module is an independent process. In contrast, an "inboard" module is compiled and incorporated as part of the Data Explorer executable; and a runtime-loadable module is compiled independently and loaded into Data Explorer at run time.

3. Fill in the `Individual Parameter Information` section as follows:

   `Input Number < 1 >`

   The first input is the data field.
   1. Set the button in the top-left corner of the `Individual Parameter Information` section to `Input` if that is not already the setting.
   2. Use the stepper buttons to set `Number` to "1" if that is not already the value.
   3. Enter a name for this parameter in the `Name` field (e.g., "data").
   4. Enter a short description in the `Description` field.
   5. Confirm that the `Required` toggle button for the first input is activated.
   6. Confirm that the `field object` toggle button (below `Object Type`) is activated.
   7. On the right-hand side of the `Individual Parameter Information` section, select `float` ("floating point") and `Scalar` for `Data type` and `Data shape` respectively.
   8. Set `Positions` and `Connections` to `Not required` (information about these components is not needed).
   9. For this example, since the dependency of the data on positions or connections in the output Object will be the same as it was in the input Object, select `Positions or Connections`.

   `Input Number < 2 >`

   The second input is the value to be added to each data value.
   1. Confirm that the button in the top-left corner of the `Individual Parameter Information` section is set to `Input`.
   2. Use the stepper buttons to set `Number` to "2".
   3. Enter a name for this parameter in the `Name` field (e.g., "value").
   4. Enter a short description in the `Description` field.
   5. Confirm that the `Required` toggle button is deactivated.
   6. Specify a default value, such as "0."
   7. If the default value is meant to be descriptive, activate the `Descriptive` toggle button.
   8. Under `Object Type`, activate the `simple parameter` toggle button.
   9. Now activate the `Scalar` toggle button (below `Type` on the right-hand side).

   `Output Number < 1 >`

   Now describe the output of the module.
   1. Change `Input` to `Output` (top-left corner of the `Individual Parameter Information` section). The `Number` setting changes to "1" automatically.
   2. Enter a name for this parameter in the `Name` field (e.g., "result").
   3. Enter a short description in the `Description` field.
   4. Confirm that the `field object` toggle button (below `Object Type`) is activated.
   5. Confirm that `Data type` and `Data Shape` are set to `float` and `Scalar` respectively.
   6. Confirm that `Dependency` is set to `Positions or connections`.

   You can now create the necessary files:

   1. Click on `Build` in the dialog box menu bar and select `Create All` in the pull-down menu.

      The Module Builder creates three files for the Add module: `Add.c`, `Add.mdf`, and `Add.make`.

   2. To insert the necessary user-specific code in `Add.c`, use an editor. Look for the phrase "User's code goes here" at the bottom of the file, and type in the following:

                   int i;
                   float value;
                   if (value_knt==0)
                       value = 0;
                   else
                       value = value_data[0];
                   for (i=0; i<data_knt; i++) {
                       result_data[i] = data_data[i]+value;
                   }

      First, variables `i` and `value` are declared. Next, the default value of `0` is enforced by checking whether a number has been passed as the `value` parameter. If `value_knt` is equal to `0`, the user did not pass a number, and `value` is set to `0`. Otherwise, the passed number is used. Finally, the data component of the output is modified by adding `value` to every data item in the input.

      Alternatively, you could have put this information in a separate file and used the `Include File Name` option in the `Overall Module Description` section.

   To create a version of Data Explorer that uses this module, type

                make -f Add.make

   To run Data Explorer using this module, type

                dx  -mdf Add.mdf

   If you were creating an inboard module instead, the only difference would be in the command to run Data Explorer:

                dx  -mdf Add.mdf -exec ./dxexec

[ Top of Page | Previous Page | Next Page | Table of Contents | Partial Table of Contents | Index ]
[Data Explorer Documentation | QuickStart Guide | User's Guide | User's Reference | Programmer's Reference | Installation and Configuration Guide ]

[Data Explorer Home Page]

[IBM Home Page | Order | Search | Contact IBM | Legal ]