Creates a timeline packet header \params packetFamiliy Timeline Packet Family packetClass Timeline Packet Class packetType Timeline Packet Type streamId Stream identifier seqeunceNumbered When non-zero the 4 bytes following the header is a u32 sequence number dataLength Unsigned 24-bit integer. Length of data, in bytes. Zero is permitted \returns Pair of uint32_
| 129 | /// \returns |
| 130 | /// Pair of uint32_t containing word0 and word1 of the header |
| 131 | std::pair<uint32_t, uint32_t> CreateTimelinePacketHeader(uint32_t packetFamily, |
| 132 | uint32_t packetClass, |
| 133 | uint32_t packetType, |
| 134 | uint32_t streamId, |
| 135 | uint32_t sequenceNumbered, |
| 136 | uint32_t dataLength) |
| 137 | { |
| 138 | // Packet header word 0: |
| 139 | // 26:31 [6] packet_family: timeline Packet Family, value 0b000001 |
| 140 | // 19:25 [7] packet_class: packet class |
| 141 | // 16:18 [3] packet_type: packet type |
| 142 | // 8:15 [8] reserved: all zeros |
| 143 | // 0:7 [8] stream_id: stream identifier |
| 144 | uint32_t packetHeaderWord0 = ((packetFamily & 0x0000003F) << 26) | |
| 145 | ((packetClass & 0x0000007F) << 19) | |
| 146 | ((packetType & 0x00000007) << 16) | |
| 147 | ((streamId & 0x00000007) << 0); |
| 148 | |
| 149 | // Packet header word 1: |
| 150 | // 25:31 [7] reserved: all zeros |
| 151 | // 24 [1] sequence_numbered: when non-zero the 4 bytes following the header is a u32 sequence number |
| 152 | // 0:23 [24] data_length: unsigned 24-bit integer. Length of data, in bytes. Zero is permitted |
| 153 | uint32_t packetHeaderWord1 = ((sequenceNumbered & 0x00000001) << 24) | |
| 154 | ((dataLength & 0x00FFFFFF) << 0); |
| 155 | |
| 156 | return std::make_pair(packetHeaderWord0, packetHeaderWord1); |
| 157 | } |
| 158 | |
| 159 | /// Creates a packet header for the timeline messages: |
| 160 | /// * declareLabel |
no outgoing calls