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; }
/** * 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); }