Пример #1
0
static bool bridge_native_call(const char* module_name, const char* func_name,
                               const char* message,
                               iotjs_string_t* output_str) {
  bool result = false;

  jerry_value_t jmodule = iotjs_module_get(module_name);
  jerry_value_t jfunc = iotjs_jval_get_property(jmodule, func_name);

  if (jerry_value_is_function(jfunc) == false) {
    return result;
  }

  jerry_value_t jval = jerry_create_string((const jerry_char_t*)message);
  jerry_value_t jres =
      iotjs_invoke_callback_with_result(jfunc, jmodule, &jval, 1);

  if (jerry_value_is_string(jres)) {
    IOTJS_ASSERT(output_str != NULL);
    *output_str = iotjs_jval_as_string(jres);
    result = true;
  }

  jerry_release_value(jfunc);
  jerry_release_value(jres);
  jerry_release_value(jval);
  return result;
}
Пример #2
0
static void iotjs_adc_set_configuration(iotjs_adc_t* adc,
                                        const iotjs_jval_t* jconfiguration) {
#if defined(__linux__)
  IOTJS_VALIDATED_STRUCT_METHOD(iotjs_adc_t, adc);
  iotjs_jval_t jdevice =
      iotjs_jval_get_property(jconfiguration, IOTJS_MAGIC_STRING_DEVICE);
  _this->device = iotjs_jval_as_string(&jdevice);
  iotjs_jval_destroy(&jdevice);
#elif defined(__NUTTX__)
  IOTJS_VALIDATED_STRUCT_METHOD(iotjs_adc_t, adc);
  iotjs_jval_t jpin =
      iotjs_jval_get_property(jconfiguration, IOTJS_MAGIC_STRING_PIN);
  _this->pin = iotjs_jval_as_number(&jpin);
  iotjs_jval_destroy(&jpin);
#endif
}
Пример #3
0
static void iotjs_spi_set_configuration(iotjs_spi_t* spi,
                                        const iotjs_jval_t* joptions) {
  IOTJS_VALIDATED_STRUCT_METHOD(iotjs_spi_t, spi);

#if defined(__linux__)
  iotjs_jval_t jdevice =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_DEVICE);
  _this->device = iotjs_jval_as_string(&jdevice);
  iotjs_jval_destroy(&jdevice);
#elif defined(__NUTTX__) || defined(__TIZENRT__)
  iotjs_jval_t jbus = iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_BUS);
  _this->bus = iotjs_jval_as_number(&jbus);
  iotjs_jval_destroy(&jbus);
#endif
  iotjs_jval_t jmode =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_MODE);
  _this->mode = (SpiMode)iotjs_jval_as_number(&jmode);
  iotjs_jval_destroy(&jmode);

  iotjs_jval_t jchip_select =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_CHIPSELECT);
  _this->chip_select = (SpiChipSelect)iotjs_jval_as_number(&jchip_select);
  iotjs_jval_destroy(&jchip_select);

  iotjs_jval_t jmax_speed =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_MAXSPEED);
  _this->max_speed = iotjs_jval_as_number(&jmax_speed);
  iotjs_jval_destroy(&jmax_speed);

  iotjs_jval_t jbits_per_word =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_BITSPERWORD);
  _this->bits_per_word = (SpiOrder)iotjs_jval_as_number(&jbits_per_word);
  iotjs_jval_destroy(&jbits_per_word);

  iotjs_jval_t jbit_order =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_BITORDER);
  _this->bit_order = (SpiOrder)iotjs_jval_as_number(&jbit_order);
  iotjs_jval_destroy(&jbit_order);

  iotjs_jval_t jloopback =
      iotjs_jval_get_property(joptions, IOTJS_MAGIC_STRING_LOOPBACK);
  _this->loopback = iotjs_jval_as_boolean(&jloopback);
  iotjs_jval_destroy(&jloopback);
}