示例#1
0
mrb_value mrb_mraa_uart_set_timeout(mrb_state *mrb, mrb_value self) {
  mraa_uart_context uart;
  mraa_result_t result;
  mrb_int r, w, ic; // read, write, interchar
  mrb_get_args(mrb, "iii", &r, &w, &ic);

  uart = (mraa_uart_context)mrb_data_get_ptr(mrb, self, &mrb_mraa_uart_ctx_type);
  result = mraa_uart_set_timeout(uart, r, w, ic);
  switch (result) {
  case MRAA_SUCCESS:
    break;
  case MRAA_ERROR_FEATURE_NOT_IMPLEMENTED:
    mrb_raise(mrb, E_RUNTIME_ERROR, "Feature not implemneted by MRAA");
    break;
  }
  IV_SET("@read_to", mrb_fixnum_value(r));
  IV_SET("@write_to", mrb_fixnum_value(w));
  IV_SET("@interchar_to", mrb_fixnum_value(ic));
  return self;
}
示例#2
0
文件: uart.hpp 项目: emutex/mraa
 /**
  * Set the timeout for read and write operations
  * <= 0 will disable that timeout
  *
  * @param read read timeout
  * @param write write timeout
  * @param interchar inbetween char timeout
  * @return Result of operation
  */
 Result
 setTimeout(int read, int write, int interchar)
 {
     return (Result) mraa_uart_set_timeout(m_uart, read, write, interchar);
 }