Example #1
0
iotjs_jval_t InitBuffer() {
  iotjs_jval_t buffer = iotjs_jval_create_function_with_dispatch(Buffer);

  iotjs_jval_t prototype = iotjs_jval_create_object();
  iotjs_jval_t byte_length =
      iotjs_jval_create_function_with_dispatch(ByteLength);

  iotjs_jval_set_property_jval(&buffer, IOTJS_MAGIC_STRING_PROTOTYPE,
                               &prototype);
  iotjs_jval_set_property_jval(&buffer, IOTJS_MAGIC_STRING_BYTELENGTH,
                               &byte_length);

  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_COMPARE, Compare);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_COPY, Copy);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_WRITE, Write);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_HEXWRITE, HexWrite);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_WRITEUINT8, WriteUInt8);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_READUINT8, ReadUInt8);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_SLICE, Slice);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_TOSTRING, ToString);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_TOHEXSTRING,
                        ToHexString);

  iotjs_jval_destroy(&prototype);
  iotjs_jval_destroy(&byte_length);

  return buffer;
}
Example #2
0
static void SetBuiltinModules(jerry_value_t builtin_modules) {
  for (unsigned i = 0; js_modules[i].name; i++) {
    iotjs_jval_set_property_jval(builtin_modules, js_modules[i].name,
                                 jerry_create_boolean(true));
  }
  for (unsigned i = 0; i < iotjs_module_count; i++) {
    iotjs_jval_set_property_jval(builtin_modules, iotjs_module_ro_data[i].name,
                                 jerry_create_boolean(true));
  }
}
Example #3
0
jerry_value_t InitProcess() {
  jerry_value_t process = jerry_create_object();

  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_COMPILE, Compile);
  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_COMPILEMODULE,
                        CompileModule);
  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_READSOURCE, ReadSource);
  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_CWD, Cwd);
  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_CHDIR, Chdir);
  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_DEBUGGERGETSOURCE,
                        DebuggerGetSource);
  iotjs_jval_set_method(process, IOTJS_MAGIC_STRING_DOEXIT, DoExit);
  SetProcessEnv(process);

  // process.builtin_modules
  jerry_value_t builtin_modules = jerry_create_object();
  SetBuiltinModules(builtin_modules);
  iotjs_jval_set_property_jval(process, IOTJS_MAGIC_STRING_BUILTIN_MODULES,
                               builtin_modules);
  jerry_release_value(builtin_modules);

  // process.platform
  iotjs_jval_set_property_string_raw(process, IOTJS_MAGIC_STRING_PLATFORM,
                                     TARGET_OS);

  // process.arch
  iotjs_jval_set_property_string_raw(process, IOTJS_MAGIC_STRING_ARCH,
                                     TARGET_ARCH);

  // process.version
  iotjs_jval_set_property_string_raw(process, IOTJS_MAGIC_STRING_VERSION,
                                     IOTJS_VERSION);

  // Set iotjs
  SetProcessIotjs(process);
  bool wait_source;
  if (iotjs_environment_config(iotjs_environment_get())->debugger != NULL) {
    wait_source = iotjs_environment_config(iotjs_environment_get())
                      ->debugger->wait_source;
  } else {
    wait_source = false;
  }

  if (!wait_source) {
    SetProcessArgv(process);
  }

  jerry_value_t wait_source_val = jerry_create_boolean(wait_source);
  iotjs_jval_set_property_jval(process, IOTJS_MAGIC_STRING_DEBUGGERWAITSOURCE,
                               wait_source_val);
  jerry_release_value(wait_source_val);

  return process;
}
Example #4
0
void iotjs_jval_set_property_number(const iotjs_jval_t* jobj, const char* name,
                                    double v) {
  const IOTJS_VALIDATED_STRUCT_METHOD(iotjs_jval_t, jobj);
  iotjs_jval_t jval = iotjs_jval_create_number(v);
  iotjs_jval_set_property_jval(jobj, name, &jval);
  iotjs_jval_destroy(&jval);
}
Example #5
0
void iotjs_jval_set_property_string_raw(const iotjs_jval_t* jobj,
                                        const char* name, const char* v) {
  const IOTJS_VALIDATED_STRUCT_METHOD(iotjs_jval_t, jobj);
  iotjs_jval_t jval = iotjs_jval_create_string_raw(v);
  iotjs_jval_set_property_jval(jobj, name, &jval);
  iotjs_jval_destroy(&jval);
}
Example #6
0
jerry_value_t InitTcp() {
  jerry_value_t tcp = jerry_create_external_function(TCP);

  jerry_value_t prototype = jerry_create_object();

  iotjs_jval_set_property_jval(tcp, IOTJS_MAGIC_STRING_PROTOTYPE, prototype);
  iotjs_jval_set_method(tcp, IOTJS_MAGIC_STRING_ERRNAME, ErrName);

  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_OPEN, Open);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_CONNECT, Connect);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_BIND, Bind);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_LISTEN, Listen);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_WRITE, Write);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_READSTART, ReadStart);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_SHUTDOWN, Shutdown);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_SETKEEPALIVE,
                        SetKeepAlive);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_GETSOCKNAME,
                        GetSockeName);

  jerry_release_value(prototype);

  return tcp;
}
Example #7
0
jerry_value_t InitFs(void) {
  jerry_value_t fs = jerry_create_object();

  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_OPEN, Open);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_READ, Read);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_WRITE, Write);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_STAT, Stat);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_FSTAT, Fstat);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_MKDIR, MkDir);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_RMDIR, RmDir);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_UNLINK, Unlink);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_RENAME, Rename);
  iotjs_jval_set_method(fs, IOTJS_MAGIC_STRING_READDIR, ReadDir);

  jerry_value_t stats_prototype = jerry_create_object();

  iotjs_jval_set_method(stats_prototype, IOTJS_MAGIC_STRING_ISDIRECTORY,
                        StatsIsDirectory);
  iotjs_jval_set_method(stats_prototype, IOTJS_MAGIC_STRING_ISFILE,
                        StatsIsFile);

  iotjs_jval_set_property_jval(fs, IOTJS_MAGIC_STRING_STATS, stats_prototype);
  jerry_release_value(stats_prototype);

  return fs;
}
Example #8
0
iotjs_jval_t InitAdc() {
  iotjs_jval_t jadc = iotjs_jval_create_object();
  iotjs_jval_t jadcConstructor =
      iotjs_jval_create_function_with_dispatch(AdcConstructor);
  iotjs_jval_set_property_jval(&jadc, IOTJS_MAGIC_STRING_ADC, &jadcConstructor);

  iotjs_jval_t jprototype = iotjs_jval_create_object();
  iotjs_jval_set_method(&jprototype, IOTJS_MAGIC_STRING_READ, Read);
  iotjs_jval_set_method(&jprototype, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_property_jval(&jadcConstructor, IOTJS_MAGIC_STRING_PROTOTYPE,
                               &jprototype);

  iotjs_jval_destroy(&jprototype);
  iotjs_jval_destroy(&jadcConstructor);

  return jadc;
}
Example #9
0
iotjs_jval_t InitSpi() {
  iotjs_jval_t jspi = iotjs_jval_create_object();
  iotjs_jval_t jspiConstructor =
      iotjs_jval_create_function_with_dispatch(SpiConstructor);
  iotjs_jval_set_property_jval(&jspi, IOTJS_MAGIC_STRING_SPI, &jspiConstructor);

  iotjs_jval_t prototype = iotjs_jval_create_object();
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_TRANSFERARRAY,
                        TransferArray);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_TRANSFERBUFFER,
                        TransferBuffer);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_property_jval(&jspiConstructor, IOTJS_MAGIC_STRING_PROTOTYPE,
                               &prototype);
  iotjs_jval_destroy(&prototype);
  iotjs_jval_destroy(&jspiConstructor);

  // SPI mode properties
  iotjs_jval_t jmode = iotjs_jval_create_object();
  iotjs_jval_set_property_number(&jmode, IOTJS_MAGIC_STRING_0, kSpiMode_0);
  iotjs_jval_set_property_number(&jmode, IOTJS_MAGIC_STRING_1, kSpiMode_1);
  iotjs_jval_set_property_number(&jmode, IOTJS_MAGIC_STRING_2, kSpiMode_2);
  iotjs_jval_set_property_number(&jmode, IOTJS_MAGIC_STRING_3, kSpiMode_3);
  iotjs_jval_set_property_jval(&jspi, IOTJS_MAGIC_STRING_MODE_U, &jmode);
  iotjs_jval_destroy(&jmode);

  // SPI mode properties
  iotjs_jval_t jcs = iotjs_jval_create_object();
  iotjs_jval_set_property_number(&jcs, IOTJS_MAGIC_STRING_NONE, kSpiCsNone);
  iotjs_jval_set_property_number(&jcs, IOTJS_MAGIC_STRING_HIGH, kSpiCsHigh);
  iotjs_jval_set_property_jval(&jspi, IOTJS_MAGIC_STRING_CHIPSELECT_U, &jcs);
  iotjs_jval_destroy(&jcs);

  // SPI order properties
  iotjs_jval_t jbit_order = iotjs_jval_create_object();
  iotjs_jval_set_property_number(&jbit_order, IOTJS_MAGIC_STRING_MSB,
                                 kSpiOrderMsb);
  iotjs_jval_set_property_number(&jbit_order, IOTJS_MAGIC_STRING_LSB,
                                 kSpiOrderLsb);
  iotjs_jval_set_property_jval(&jspi, IOTJS_MAGIC_STRING_BITORDER_U,
                               &jbit_order);
  iotjs_jval_destroy(&jbit_order);

  return jspi;
}
Example #10
0
void iotjs_jval_set_method(const iotjs_jval_t* jobj, const char* name,
                           JHandlerType handler) {
  const IOTJS_VALIDATED_STRUCT_METHOD(iotjs_jval_t, jobj);
  IOTJS_ASSERT(iotjs_jval_is_object(jobj));

  iotjs_jval_t jfunc = iotjs_jval_create_function(handler);
  iotjs_jval_set_property_jval(jobj, name, &jfunc);
  iotjs_jval_destroy(&jfunc);
}
Example #11
0
static void SetProcessIotjs(jerry_value_t process) {
  // IoT.js specific
  jerry_value_t iotjs = jerry_create_object();
  iotjs_jval_set_property_jval(process, IOTJS_MAGIC_STRING_IOTJS, iotjs);

  iotjs_jval_set_property_string_raw(iotjs, IOTJS_MAGIC_STRING_BOARD,
                                     TOSTRING(TARGET_BOARD));
  jerry_release_value(iotjs);
}
Example #12
0
jerry_value_t InitSpi() {
  jerry_value_t jspi_cons = jerry_create_external_function(SpiCons);

  jerry_value_t prototype = jerry_create_object();
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_CLOSESYNC, CloseSync);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_TRANSFER, Transfer);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_TRANSFERSYNC,
                        TransferSync);

  iotjs_jval_set_property_jval(jspi_cons, IOTJS_MAGIC_STRING_PROTOTYPE,
                               prototype);
  jerry_release_value(prototype);

  // SPI mode properties
  jerry_value_t jmode = jerry_create_object();
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_0, kSpiMode_0);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_1, kSpiMode_1);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_2, kSpiMode_2);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_3, kSpiMode_3);
  iotjs_jval_set_property_jval(jspi_cons, IOTJS_MAGIC_STRING_MODE_U, jmode);
  jerry_release_value(jmode);

  // SPI mode properties
  jerry_value_t jcs = jerry_create_object();
  iotjs_jval_set_property_number(jcs, IOTJS_MAGIC_STRING_NONE_U, kSpiCsNone);
  iotjs_jval_set_property_number(jcs, IOTJS_MAGIC_STRING_HIGH_U, kSpiCsHigh);
  iotjs_jval_set_property_jval(jspi_cons, IOTJS_MAGIC_STRING_CHIPSELECT_U, jcs);
  jerry_release_value(jcs);

  // SPI order properties
  jerry_value_t jbit_order = jerry_create_object();
  iotjs_jval_set_property_number(jbit_order, IOTJS_MAGIC_STRING_MSB,
                                 kSpiOrderMsb);
  iotjs_jval_set_property_number(jbit_order, IOTJS_MAGIC_STRING_LSB,
                                 kSpiOrderLsb);
  iotjs_jval_set_property_jval(jspi_cons, IOTJS_MAGIC_STRING_BITORDER_U,
                               jbit_order);
  jerry_release_value(jbit_order);

  return jspi_cons;
}
Example #13
0
jerry_value_t InitAdc() {
  jerry_value_t jadc_cons = jerry_create_external_function(AdcCons);
  jerry_value_t jprototype = jerry_create_object();

  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_READ, Read);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_READSYNC, ReadSync);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_CLOSESYNC, CloseSync);

  iotjs_jval_set_property_jval(jadc_cons, IOTJS_MAGIC_STRING_PROTOTYPE,
                               jprototype);

  jerry_release_value(jprototype);

  return jadc_cons;
}
Example #14
0
static void SetProcessArgv(jerry_value_t process) {
  const iotjs_environment_t* env = iotjs_environment_get();
  uint32_t argc = iotjs_environment_argc(env);

  jerry_value_t argv = jerry_create_array(argc);

  for (uint32_t i = 0; i < argc; ++i) {
    const char* argvi = iotjs_environment_argv(env, i);
    jerry_value_t arg = jerry_create_string((const jerry_char_t*)argvi);
    iotjs_jval_set_property_by_index(argv, i, arg);
    jerry_release_value(arg);
  }
  iotjs_jval_set_property_jval(process, IOTJS_MAGIC_STRING_ARGV, argv);

  jerry_release_value(argv);
}
void iotjs_stm32f4dis_pin_initialize(jerry_value_t jobj) {
  jerry_value_t jpin = jerry_create_object();
  iotjs_jval_set_property_jval(jobj, "pin", jpin);

#if ENABLE_MODULE_ADC
  iotjs_pin_initialize_adc(jpin);
#endif /* ENABLE_MODULE_ADC */

#if ENABLE_MODULE_GPIO
  iotjs_pin_initialize_gpio(jpin);
#endif /* ENABLE_MODULE_GPIO */

#if ENABLE_MODULE_PWM
  iotjs_pin_initialize_pwm(jpin);
#endif /* ENABLE_MODULE_PWM */

  jerry_release_value(jpin);
}
Example #16
0
iotjs_jval_t InitPwm() {
  iotjs_jval_t jpwm_constructor =
      iotjs_jval_create_function_with_dispatch(PWMConstructor);

  iotjs_jval_t jprototype = iotjs_jval_create_object();

  iotjs_jval_set_method(&jprototype, IOTJS_MAGIC_STRING_SETPERIOD, SetPeriod);
  iotjs_jval_set_method(&jprototype, IOTJS_MAGIC_STRING_SETDUTYCYCLE,
                        SetDutyCycle);
  iotjs_jval_set_method(&jprototype, IOTJS_MAGIC_STRING_SETENABLE, SetEnable);
  iotjs_jval_set_method(&jprototype, IOTJS_MAGIC_STRING_CLOSE, Close);

  iotjs_jval_set_property_jval(&jpwm_constructor, IOTJS_MAGIC_STRING_PROTOTYPE,
                               &jprototype);

  iotjs_jval_destroy(&jprototype);

  return jpwm_constructor;
}
Example #17
0
jerry_value_t InitBlehcisocket() {
  jerry_value_t jblehcisocketCons =
      jerry_create_external_function(BleHciSocketCons);

  jerry_value_t prototype = jerry_create_object();

  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_START, Start);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_BINDRAW, BindRaw);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_BINDUSER, BindUser);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_BINDCONTROL, BindControl);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_ISDEVUP, IsDevUp);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_SETFILTER, SetFilter);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_STOP, Stop);
  iotjs_jval_set_method(prototype, IOTJS_MAGIC_STRING_WRITE, Write);

  iotjs_jval_set_property_jval(jblehcisocketCons, IOTJS_MAGIC_STRING_PROTOTYPE,
                               prototype);

  jerry_release_value(prototype);

  return jblehcisocketCons;
}
Example #18
0
static void SetProcessEnv(jerry_value_t process) {
  const char *homedir, *iotjspath, *iotjsenv, *extra_module_path;

  homedir = getenv(IOTJS_MAGIC_STRING_HOME_U);
  if (homedir == NULL) {
    homedir = "";
  }

  iotjspath = getenv(IOTJS_MAGIC_STRING_IOTJS_PATH_U);
  if (iotjspath == NULL) {
#if defined(__NUTTX__) || defined(__TIZENRT__)
    iotjspath = "/mnt/sdcard";
#else
    iotjspath = "";
#endif
  }

#if defined(EXPERIMENTAL)
  iotjsenv = "experimental";
#else
  iotjsenv = "";
#endif

  extra_module_path = getenv(IOTJS_MAGIC_STRING_IOTJS_EXTRA_MODULE_PATH_U);

  jerry_value_t env = jerry_create_object();
  iotjs_jval_set_property_string_raw(env, IOTJS_MAGIC_STRING_HOME_U, homedir);
  iotjs_jval_set_property_string_raw(env, IOTJS_MAGIC_STRING_IOTJS_PATH_U,
                                     iotjspath);
  iotjs_jval_set_property_string_raw(env, IOTJS_MAGIC_STRING_IOTJS_ENV_U,
                                     iotjsenv);
  iotjs_jval_set_property_string_raw(
      env, IOTJS_MAGIC_STRING_IOTJS_EXTRA_MODULE_PATH_U,
      extra_module_path ? extra_module_path : "");

  iotjs_jval_set_property_jval(process, IOTJS_MAGIC_STRING_ENV, env);

  jerry_release_value(env);
}
iotjs_jval_t InitBlehcisocket() {
  iotjs_jval_t jblehcisocketCons =
      iotjs_jval_create_function_with_dispatch(BleHciSocketCons);

  iotjs_jval_t prototype = iotjs_jval_create_object();

  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_START, Start);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_BINDRAW, BindRaw);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_BINDUSER, BindUser);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_BINDCONTROL,
                        BindControl);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_ISDEVUP, IsDevUp);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_SETFILTER, SetFilter);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_STOP, Stop);
  iotjs_jval_set_method(&prototype, IOTJS_MAGIC_STRING_WRITE, Write);

  iotjs_jval_set_property_jval(&jblehcisocketCons, IOTJS_MAGIC_STRING_PROTOTYPE,
                               &prototype);

  iotjs_jval_destroy(&prototype);

  return jblehcisocketCons;
}
Example #20
0
void iotjs_jval_set_property_undefined(const iotjs_jval_t* jobj,
                                       const char* name) {
  const IOTJS_VALIDATED_STRUCT_METHOD(iotjs_jval_t, jobj);
  iotjs_jval_set_property_jval(jobj, name, iotjs_jval_get_undefined());
}
Example #21
0
jerry_value_t InitGpio() {
  jerry_value_t jgpioConstructor = jerry_create_external_function(GpioCons);

  jerry_value_t jprototype = jerry_create_object();

  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_CLOSE, Close);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_CLOSESYNC, CloseSync);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_WRITE, Write);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_WRITESYNC, WriteSync);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_READ, Read);
  iotjs_jval_set_method(jprototype, IOTJS_MAGIC_STRING_READSYNC, ReadSync);

  iotjs_jval_set_property_jval(jgpioConstructor, IOTJS_MAGIC_STRING_PROTOTYPE,
                               jprototype);
  jerry_release_value(jprototype);

  // GPIO direction properties
  jerry_value_t jdirection = jerry_create_object();
  iotjs_jval_set_property_number(jdirection, IOTJS_MAGIC_STRING_IN,
                                 kGpioDirectionIn);
  iotjs_jval_set_property_number(jdirection, IOTJS_MAGIC_STRING_OUT_U,
                                 kGpioDirectionOut);
  iotjs_jval_set_property_jval(jgpioConstructor, IOTJS_MAGIC_STRING_DIRECTION_U,
                               jdirection);
  jerry_release_value(jdirection);


  // GPIO mode properties
  jerry_value_t jmode = jerry_create_object();
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_NONE_U,
                                 kGpioModeNone);
#if defined(__NUTTX__)
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_PULLUP_U,
                                 kGpioModePullup);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_PULLDOWN_U,
                                 kGpioModePulldown);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_FLOAT_U,
                                 kGpioModeFloat);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_PUSHPULL_U,
                                 kGpioModePushpull);
  iotjs_jval_set_property_number(jmode, IOTJS_MAGIC_STRING_OPENDRAIN_U,
                                 kGpioModeOpendrain);
#endif
  iotjs_jval_set_property_jval(jgpioConstructor, IOTJS_MAGIC_STRING_MODE_U,
                               jmode);
  jerry_release_value(jmode);

  // GPIO edge properties
  jerry_value_t jedge = jerry_create_object();
  iotjs_jval_set_property_number(jedge, IOTJS_MAGIC_STRING_NONE_U,
                                 kGpioEdgeNone);
  iotjs_jval_set_property_number(jedge, IOTJS_MAGIC_STRING_RISING_U,
                                 kGpioEdgeRising);
  iotjs_jval_set_property_number(jedge, IOTJS_MAGIC_STRING_FALLING_U,
                                 kGpioEdgeFalling);
  iotjs_jval_set_property_number(jedge, IOTJS_MAGIC_STRING_BOTH_U,
                                 kGpioEdgeBoth);
  iotjs_jval_set_property_jval(jgpioConstructor, IOTJS_MAGIC_STRING_EDGE_U,
                               jedge);
  jerry_release_value(jedge);

  return jgpioConstructor;
}
Example #22
0
void iotjs_jval_set_property_boolean(const iotjs_jval_t* jobj, const char* name,
                                     bool v) {
  const IOTJS_VALIDATED_STRUCT_METHOD(iotjs_jval_t, jobj);
  iotjs_jval_set_property_jval(jobj, name, iotjs_jval_get_boolean(v));
}
Example #23
0
void SetNativeSources(jerry_value_t native_sources) {
  for (int i = 0; js_modules[i].name; i++) {
    iotjs_jval_set_property_jval(native_sources, js_modules[i].name,
                                 jerry_create_boolean(true));
  }
}