Example #1
0
static void gpio_worker(uv_work_t* work_req) {
  iotjs_periph_reqwrap_t* req_wrap =
      (iotjs_periph_reqwrap_t*)(iotjs_reqwrap_from_request(
          (uv_req_t*)work_req));
  iotjs_gpio_t* gpio = (iotjs_gpio_t*)req_wrap->data;

  switch (req_wrap->op) {
    case kGpioOpOpen:
      req_wrap->result = iotjs_gpio_open(gpio);
      break;
    case kGpioOpWrite:
      req_wrap->result = iotjs_gpio_write(gpio);
      break;
    case kGpioOpRead:
      req_wrap->result = iotjs_gpio_read(gpio);
      break;
    case kGpioOpClose:
      req_wrap->result = iotjs_gpio_close(gpio);
      break;
    default:
      IOTJS_ASSERT(!"Invalid Operation");
  }
}
Example #2
0
/*
 * SPI worker function
 */
static void spi_worker(uv_work_t* work_req) {
  iotjs_periph_reqwrap_t* req_wrap =
      (iotjs_periph_reqwrap_t*)(iotjs_reqwrap_from_request(
          (uv_req_t*)work_req));
  iotjs_spi_t* spi = (iotjs_spi_t*)req_wrap->data;

  switch (req_wrap->op) {
    case kSpiOpClose: {
      req_wrap->result = iotjs_spi_close(spi);
      break;
    }
    case kSpiOpOpen: {
      req_wrap->result = iotjs_spi_open(spi);
      break;
    }
    case kSpiOpTransferArray:
    case kSpiOpTransferBuffer: {
      req_wrap->result = iotjs_spi_transfer(spi);
      break;
    }
    default:
      IOTJS_ASSERT(!"Invalid Operation");
  }
}
Example #3
0
iotjs_spi_reqwrap_t* iotjs_spi_reqwrap_from_request(uv_work_t* req) {
  return (iotjs_spi_reqwrap_t*)(iotjs_reqwrap_from_request((uv_req_t*)req));
}