|
|
|
@ -84,61 +84,77 @@ namespace network
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
// ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
// P25 V.24 LDU1 Encapsulation Frames
|
|
|
|
// P25 V.24 LDU1 Encapsulation Frames
|
|
|
|
const uint8_t LDU1_REC62[] = {
|
|
|
|
const uint8_t LDU1_REC62[] = { // IMBE Voice 1
|
|
|
|
0x62U, 0x02U, 0x02U, 0x0CU, 0x0BU, 0x12U, 0x64U, 0x00U, 0x00U, 0x80U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,
|
|
|
|
// ID IMBE Voice
|
|
|
|
0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
0x62U, 0x02U, 0x02U, 0x0CU, 0x0BU, 0x12U, 0x64U, 0x00U, 0x00U, 0x80U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC63[] = {
|
|
|
|
const uint8_t LDU1_REC63[] = { // IMBE Voice 2
|
|
|
|
|
|
|
|
// ID IMBE Voice Status
|
|
|
|
0x63U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x63U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC64[] = {
|
|
|
|
const uint8_t LDU1_REC64[] = { // IMBE Voice 3 + Link Control
|
|
|
|
|
|
|
|
// ID Link Control IMBE Voice Status
|
|
|
|
0x64U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x64U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC65[] = {
|
|
|
|
const uint8_t LDU1_REC65[] = { // IMBE Voice 4 + Link Control
|
|
|
|
|
|
|
|
// ID Link Control IMBE Voice Status
|
|
|
|
0x65U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x65U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC66[] = {
|
|
|
|
const uint8_t LDU1_REC66[] = { // IMBE Voice 5 + Link Control
|
|
|
|
|
|
|
|
// ID Link Control IMBE Voice Status
|
|
|
|
0x66U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x66U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC67[] = {
|
|
|
|
const uint8_t LDU1_REC67[] = { // IMBE Voice 6 + Link Control
|
|
|
|
0x67U, 0xF0U, 0x9DU, 0x6AU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
// ID Link Control IMBE Voice Status
|
|
|
|
|
|
|
|
0x67U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC68[] = {
|
|
|
|
const uint8_t LDU1_REC68[] = { // IMBE Voice 7 + Link Control
|
|
|
|
0x68U, 0x19U, 0xD4U, 0x26U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
// ID Link Control IMBE Voice Status
|
|
|
|
|
|
|
|
0x68U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC69[] = {
|
|
|
|
const uint8_t LDU1_REC69[] = { // IMBE Voice 8 + Link Control
|
|
|
|
0x69U, 0xE0U, 0xEBU, 0x7BU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
// ID Link Control IMBE Voice Status
|
|
|
|
|
|
|
|
0x69U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU1_REC6A[] = {
|
|
|
|
const uint8_t LDU1_REC6A[] = { // IMBE Voice 9 + Low Speed Data
|
|
|
|
|
|
|
|
// ID LSD Status IMBE Voice
|
|
|
|
0x6AU, 0x00U, 0x00U, 0x02U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
0x6AU, 0x00U, 0x00U, 0x02U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
|
|
|
|
|
|
|
|
// P25 V.24 LDU2 Encapsulation Frames
|
|
|
|
// P25 V.24 LDU2 Encapsulation Frames
|
|
|
|
const uint8_t LDU2_REC6B[] = {
|
|
|
|
const uint8_t LDU2_REC6B[] = { // IMBE Voice 10
|
|
|
|
0x6BU, 0x02U, 0x02U, 0x0CU, 0x0BU, 0x12U, 0x64U, 0x00U, 0x00U, 0x80U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U,
|
|
|
|
// ID IMBE Voice
|
|
|
|
0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
0x6BU, 0x02U, 0x02U, 0x0CU, 0x0BU, 0x12U, 0x64U, 0x00U, 0x00U, 0x80U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC6C[] = {
|
|
|
|
const uint8_t LDU2_REC6C[] = { // IMBE Voice 11
|
|
|
|
|
|
|
|
// ID IMBE Voice Status
|
|
|
|
0x6CU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x6CU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC6D[] = {
|
|
|
|
const uint8_t LDU2_REC6D[] = { // IMBE Voice 12 + Encryption Sync
|
|
|
|
|
|
|
|
// ID Encryption Sync IMBE Voice Status
|
|
|
|
0x6DU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x6DU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC6E[] = {
|
|
|
|
const uint8_t LDU2_REC6E[] = { // IMBE Voice 13 + Encryption Sync
|
|
|
|
|
|
|
|
// ID Encryption Sync IMBE Voice Status
|
|
|
|
0x6EU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x6EU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC6F[] = {
|
|
|
|
const uint8_t LDU2_REC6F[] = { // IMBE Voice 14 + Encryption Sync
|
|
|
|
|
|
|
|
// ID Encryption Sync IMBE Voice Status
|
|
|
|
0x6FU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x6FU, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC70[] = {
|
|
|
|
const uint8_t LDU2_REC70[] = { // IMBE Voice 15 + Encryption Sync
|
|
|
|
|
|
|
|
// ID Encryption Sync IMBE Voice Status
|
|
|
|
0x70U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
0x70U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC71[] = {
|
|
|
|
const uint8_t LDU2_REC71[] = { // IMBE Voice 16 + Encryption Sync
|
|
|
|
0x71U, 0xACU, 0xB8U, 0xA4U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
// ID Encryption Sync IMBE Voice Status
|
|
|
|
|
|
|
|
0x71U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC72[] = {
|
|
|
|
const uint8_t LDU2_REC72[] = { // IMBE Voice 17 + Encryption Sync
|
|
|
|
0x72U, 0x9BU, 0xDCU, 0x75U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
// ID Encryption Sync IMBE Voice Status
|
|
|
|
|
|
|
|
0x72U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x02U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint8_t LDU2_REC73[] = {
|
|
|
|
const uint8_t LDU2_REC73[] = { // IMBE Voice 18 + Low Speed Data
|
|
|
|
|
|
|
|
// ID LSD Status IMBE Voice
|
|
|
|
0x73U, 0x00U, 0x00U, 0x02U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
0x73U, 0x00U, 0x00U, 0x02U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U, 0x00U };
|
|
|
|
|
|
|
|
|
|
|
|
const uint32_t DATA_PACKET_LENGTH = 8192U;
|
|
|
|
const uint32_t DATA_PACKET_LENGTH = 8192U;
|
|
|
|
|