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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }
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; }