bool hal_aci_tl_event_peek(hal_aci_data_t *p_aci_data) { if (!a_pins_local_ptr->interface_is_interrupt) { m_aci_event_check(); } if (aci_queue_peek(&aci_rx_q, p_aci_data)) { return true; } return false; }
bool hal_aci_tl_event_peek(hal_aci_data_t *p_aci_data) { #ifdef HAL_ACI_TL_INTERRUPT if (!a_pins_local_ptr->interface_is_interrupt) #endif { m_aci_event_check(); } if (aci_queue_peek(&aci_rx_q, p_aci_data)) { return true; } return false; }
bool hal_aci_tl_event_get(hal_aci_data_t *p_aci_data) { bool was_full; #ifdef HAL_ACI_TL_INTERRUPT if (!a_pins_local_ptr->interface_is_interrupt && !aci_queue_is_full(&aci_rx_q)) #else if (!aci_queue_is_full(&aci_rx_q)) #endif { m_aci_event_check(); } was_full = aci_queue_is_full(&aci_rx_q); if (aci_queue_dequeue(&aci_rx_q, p_aci_data)) { #ifdef HAL_ACI_TL_DEBUG if (aci_debug_print) { Serial.print(" E"); m_aci_data_print(p_aci_data); } #endif #ifdef HAL_ACI_TL_INTERRUPT if (was_full && a_pins_local_ptr->interface_is_interrupt) { /* Enable RDY line interrupt again */ attachInterrupt(a_pins_local_ptr->interrupt_number, m_aci_isr, LOW); #if defined(SPI_HAS_TRANSACTION) && defined(__SAMD21G18A__) SPI.usingInterrupt(a_pins->interrupt_number); #endif } #endif /* Attempt to pull REQN LOW since we've made room for new messages */ if (!aci_queue_is_full(&aci_rx_q) && !aci_queue_is_empty(&aci_tx_q)) { m_aci_reqn_enable(); } return true; } return false; }
bool hal_aci_tl_event_get(hal_aci_data_t *p_aci_data) { bool was_full; if (!a_pins_local_ptr->interface_is_interrupt && !aci_queue_is_full(&aci_rx_q)) { m_aci_event_check(); } was_full = aci_queue_is_full(&aci_rx_q); if (aci_queue_dequeue(&aci_rx_q, p_aci_data)) { if (aci_debug_print) { Serial.print(" E"); m_aci_data_print(p_aci_data); } if (was_full && a_pins_local_ptr->interface_is_interrupt) { /* Enable RDY line interrupt again */ attachInterrupt(a_pins_local_ptr->interrupt_number, m_aci_isr, LOW); } /* Attempt to pull REQN LOW since we've made room for new messages */ if (!aci_queue_is_full(&aci_rx_q) && !aci_queue_is_empty(&aci_tx_q)) { m_aci_reqn_enable(); } return true; } return false; }