void SerialBase::interrupt_handler_asynch(void) { int event = serial_irq_handler_asynch(&_serial); int rx_event = event & SERIAL_EVENT_RX_MASK; if (_rx_callback && rx_event) { _rx_callback.call(rx_event); } int tx_event = event & SERIAL_EVENT_TX_MASK; if (_tx_callback && tx_event) { _tx_callback.call(tx_event); } }
void SerialBase::interrupt_handler_asynch(void) { int event = serial_irq_handler_asynch(&_serial); int rx_event = event & SERIAL_EVENT_RX_MASK; if (_current_rx_transaction.callback && rx_event) { minar::Scheduler::postCallback(_current_rx_transaction.callback.bind(_current_rx_transaction.buffer, rx_event)); } int tx_event = event & SERIAL_EVENT_TX_MASK; if (_current_tx_transaction.callback && tx_event) { minar::Scheduler::postCallback(_current_tx_transaction.callback.bind(_current_tx_transaction.buffer, tx_event)); } }