Hi Mike,
The frame sequence you posted seems to contain three transfers, of which only one is correct. The correct one is shown below:
LEN: 8 EXT: 1 REMOTE: 0 TS: 23168 ID: 269716326 Buffer: 91 93 9F 7D 4B 51 0 94 - start of transfer
LEN: 8 EXT: 1 REMOTE: 0 TS: 23305 ID: 269716326 Buffer: 0 0 8D 1C 8D 9C 0 34 - toggle 1
LEN: 8 EXT: 1 REMOTE: 0 TS: 23443 ID: 269716326 Buffer: 0 1F 25 AE 27 8D 1C 14 - toggle 0
LEN: 7 EXT: 1 REMOTE: 0 TS: 23581 ID: 269716326 Buffer: A0 5D 0 C4 40 BC 74 - end of transfer, toggle 1
Its CRC is 0x9391 (the first two bytes),
and the payload is 9F 7D 4B 51 0 0 0 8D 1C 8D 9C 0 0 1F 25 AE 27 8D 1C A0 5D 0 C4 40 BC (25 bytes, which fits your data type definition);
where:
9F 7D 4B 51 00 00 00 - timestamp (uptime 23 minutes?)
8D 1C 8D 9C 00 00 - gyro (the last element is zero? suspicious)
1F 25 AE 27 8D 1C - accel
A0 5D 00 C4 40 BC - angle
The transfer looks correct, at least as far as its format goes. If it could not be decoded successfully, the data type definition on the source and the destination may be different.
You need to ensure that you are using EXACTLY the same definitions.
If the data fields are named differently or rearranged things will not work.
Things look bad with the other transfers - they only have the first two frames, the continuation frames are missing:
LEN: 8 EXT: 1 REMOTE: 0 TS: 14979 ID: 269716326 Buffer: 52 23 A2 5D 4B 51 0 93 - start
LEN: 8 EXT: 1 REMOTE: 0 TS: 15114 ID: 269716326 Buffer: 0 0 B0 1D B0 9D 8D 33 - toggle 1, more frames expected, but where are they?
LEN: 8 EXT: 1 REMOTE: 0 TS: 32005 ID: 269716326 Buffer: 25 B0 24 A0 4B 51 0 95 - start
LEN: 8 EXT: 1 REMOTE: 0 TS: 32143 ID: 269716326 Buffer: 0 0 B0 9D D4 1A 0 35 - same thing, missing frames
The CAN driver you're using seems to be broken.
This is not related to your question, but it's important: the implementation of libstdc throw stubs __throw_bad_alloc, __throw_length_error, and __throw_bad_function_call is incorrect - they must never return, otherwise bad things may happen.
Hope this helps!
Pavel.