static uint32_t frame_get() { uint32_t err_code; m_current_rx_frame_length = compute_current_frame_length(m_rx_packet_length, m_accumulated_rx_packet_length); if (!m_trash_payload_flag) { err_code = nrf_drv_spis_buffers_set(&m_spis, (uint8_t *) m_zero_buff, m_current_rx_frame_length, &(m_p_rx_buffer[m_accumulated_rx_packet_length]), m_current_rx_frame_length); } else { err_code = nrf_drv_spis_buffers_set(&m_spis, (uint8_t *) m_zero_buff, m_current_rx_frame_length, m_rx_frame_buffer, m_current_rx_frame_length); } return err_code; }
static uint32_t frame_send() { uint32_t err_code; m_current_tx_frame_length = compute_current_frame_length(m_tx_packet_length, m_accumulated_tx_packet_length); if (m_current_tx_frame_length == SER_PHY_SPI_5W_MTU_SIZE) { m_current_tx_frame_length -= 1; //extra space for guard byte must be taken into account for MTU } m_tx_frame_buffer[0] = 0; //guard byte copy_buff(&(m_tx_frame_buffer[1]), &(m_p_tx_buffer[m_accumulated_tx_packet_length]), m_current_tx_frame_length); err_code = spi_slave_buffers_set(m_tx_frame_buffer, m_rx_frame_buffer, m_current_tx_frame_length + 1, m_current_tx_frame_length + 1); return err_code; }