I am currently using FlexRay Unified Driver to write a sniffer for automotive project.
I am quite familiar with CAN bus, when I received a frame, the hardware is providing a reliable timestamp based on the clock.
For that reason, I am quite surprised by the signature of the receive function:
extern Fr_rx_MB_status_type Fr_receive_data (uint16 Fr_buffer_idx,
uint16 *Fr_data_ptr,
uint8 *Fr_data_length_ptr,
uint16 *Fr_slot_status_ptr);
I would expect an additional parameter providing the FlexRay cycle:
extern Fr_rx_MB_status_type Fr_receive_data (uint16 Fr_buffer_idx,
uint16 *Fr_data_ptr,
uint8 *Fr_data_length_ptr,
uint16 *Fr_slot_status_ptr,
uint8 *Fr_Cycle); // at the time the frame was received
Is there a way to retrieve the FlexRay cycle at the exact cycle the frame was received by controller? I know about the function "Fr_check_cycle_start(¤t_cycle);" but my concern is the delay between the frame was received by controller and the Fr_check_cycle_start function call.
Thank you for your advice!
Hello,
Please accept my apologies for the delay. Since I'm not familiar with FlexRay I had to discuss your question with my colleague.
Why do you need to store the reception time when the beginning and end of each slot in the static segment is precisely defined by the communication cycle configuration?
Thank you.
Best regards,
Diana