Example #1
0
jerry_value_t InitConsole() {
  jerry_value_t console = jerry_create_object();

  iotjs_jval_set_method(console, IOTJS_MAGIC_STRING_STDOUT, Stdout);
  iotjs_jval_set_method(console, IOTJS_MAGIC_STRING_STDERR, Stderr);

  return console;
}
Example #2
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 #3
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 #4
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 #5
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 #6
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 #7
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 #8
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 #9
0
iotjs_jval_t InitHttps() {
  iotjs_jval_t https = iotjs_jval_create_object();

  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING_CREATEREQUEST,
                        createRequest);
  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING_ADDHEADER, addHeader);
  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING_SENDREQUEST, sendRequest);
  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING_SETTIMEOUT, setTimeout);
  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING__WRITE, _write);
  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING_FINISHREQUEST,
                        finishRequest);
  iotjs_jval_set_method(&https, IOTJS_MAGIC_STRING_ABORT, Abort);

  return https;
}
Example #10
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;
}
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 #12
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 #13
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 #14
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;
}