📄 ac48drdf.h
字号:
/* Word #3 */
Word16 Coder :5;
Word16 Const_0_3_5 :2;
Word16 ReceptionOverRun :1;
Word16 HighPassFilterEnable :1; /* "HPFE" */
Word16 PostFilterEnable :1; /* "PFE" */
Word16 SilenceCompressionEnable :1; /* "SCE" */
Word16 BadFrameInterpolation :1; /* "BFI" */
Word16 MisAliamentDetectedCorrected :1; /* "MDC" */
Word16 EchoCancellerFreeze :1;
Word16 EchoCanselerEnable :1; /* "ECE" */
Word16 More3 :1; /* "M" */
/* Word #4 */
Word16 ModulationType :5; /* TModulationType */
Word16 :2;
Word16 FrameType :1;
Word16 RelayType :4; /* TRelayType */
Word16 :1;
Word16 Protocol :1;
Word16 DummyFaxPacket :1; /* "D" */
Word16 :1; /* "M" */
/* Word #5 */
Word16 ESigOnOffset :5; /* On-Hook Offset */
Word16 Const_0_5_5 :3;
Word16 ESigOffOffset :5; /* Off-Hook Offset */
Word16 Const_0_5_13 :2;
Word16 More5 :1; /* "M" */
/* Word #6 */
Word16 SignalingType :3; /* TSignalingType */
Word16 SignalingLevel :5;
Word16 DigitPair :5; /* according to SignalingType */
Word16 Const_0_6_13 :2;
Word16 More6 :1; /* "M" */
/* Word #7 */
Word16 SignalingOnOffset :5;
Word16 Const_0_7_5 :3;
Word16 SignalingOffOffset :5;
Word16 Const_0_7_13 :2;
Word16 More7 :1; /* "M" */
}TStatusPacketHeader;
#elif ENDIAN_MODE == BIG_ENDIAN
typedef struct
{ /* Word #0 */
Word16 ConstAA :8;
Word16 Const_0_0_13 :3;
Word16 ChannelId :5;
/* Word #1 */
Word16 PayLoadSize :8;
Word16 PacketSize :8;
/* Word #2 */
Word16 Vfd :2; /* "TVoiceFaxData" */
Word16 VoiceVolume :6;
Word16 More2 :1; /* "M" */
Word16 Idle :1;
Word16 Test :3; /* TTest */
Word16 OverRun :1; /* Const_0_2_9 */
Word16 UnderRun :1; /* Const_0_2_9 */
Word16 VoiceActivityDetector :1; /* "VAD" */
/* Word #3 */
Word16 ReceptionOverRun :1;
Word16 Const_0_3_5 :2;
Word16 Coder :5;
Word16 More3 :1; /* "M" */
Word16 EchoCanselerEnable :1; /* "ECE" */
Word16 EchoCancellerFreeze :1;
Word16 MisAliamentDetectedCorrected :1; /* "MDC" */
Word16 BadFrameInterpolation :1; /* "BFI" */
Word16 SilenceCompressionEnable :1; /* "SCE" */
Word16 PostFilterEnable :1; /* "PFE" */
Word16 HighPassFilterEnable :1; /* "HPFE" */
/* Word #4 */
Word16 FrameType :1;
Word16 :2;
Word16 ModulationType :5; /* TModulationType */
Word16 :1; /* "M" */
Word16 DummyFaxPacket :1; /* "D" */
Word16 Protocol :1;
Word16 :1;
Word16 RelayType :4; /* TRelayType */
/* Word #5 */
Word16 Const_0_5_5 :3;
Word16 ESigOnOffset :5; /* On-Hook Offset */
Word16 More5 :1; /* "M" */
Word16 Const_0_5_13 :2;
Word16 ESigOffOffset :5; /* Off-Hook Offset */
/* Word #6 */
Word16 SignalingLevel :5;
Word16 SignalingType :3; /* TSignalingType */
Word16 More6 :1; /* "M" */
Word16 Const_0_6_13 :2;
Word16 DigitPair :5; /*acording to SignalingType*/
/* Word #7 */
Word16 Const_0_7_5 :3;
Word16 SignalingOnOffset :5;
Word16 More7 :1; /* "M" */
Word16 Const_0_7_13 :2;
Word16 SignalingOffOffset :5;
}TStatusPacketHeader;
#endif /* ENDIAN_MODE */
#elif AC48_SIGNALING_MODE == AC48_EXTENDED_SIGNALING_MODE
/*--------------------------- Tone & Cas Footers ------------------------*/
#if ENDIAN_MODE == LITTLE_ENDIAN
typedef struct
{ /* Word #6 */
Word16 SignalingType :3; /* TSignalingType */
Word16 SignalingGain :5;
Word16 DigitPair :5; /* according to SignalingType */
Word16 SignalingMode :2; /* extended, CAS or no-change */
Word16 More6 :1; /* "M" */
/* Word #7 */
Word16 SignalingOnOffset :5;
Word16 Const_0_7_5 :3;
Word16 SignalingOffOffset :5;
Word16 Const_0_7_13 :2;
Word16 More7 :1; /* "M" */
}TToneSignalingFooter;
typedef struct
{ /* Word #6 */
Word16 SignalDst :1; /* state after first change */
Word16 SignalCst :1; /* --"-- */
Word16 SignalBst :1; /* --"-- */
Word16 SignalAst :1; /* --"-- */
Word16 Const_0_6_4 :4;
Word16 SignalDnd :1; /* state after second change */
Word16 SignalCnd :1; /* --"-- */
Word16 SignalBnd :1; /* --"-- */
Word16 SignalAnd :1; /* --"-- */
Word16 Const_0_6_12 :1;
Word16 SignalingMode :2; /* extended, CAS or no-change */
Word16 More6 :1; /* "M" */
/* Word #7 */
Word16 FirstChangeOffset :5;
Word16 Const_0_7_5 :3;
Word16 SecondChangeOffset :5;
Word16 Const_0_7_13 :2;
Word16 More7 :1; /* "M" */
}TCasFooter;
#elif ENDIAN_MODE == BIG_ENDIAN
typedef struct
{ /* Word #6 */
Word16 SignalingGain :5;
Word16 SignalingType :3; /* TSignalingType */
Word16 More6 :1; /* "M" */
Word16 SignalingMode :2; /* extended, CAS or no-change */
Word16 DigitPair :5; /* according to SignalingType */
/* Word #7 */
Word16 Const_0_7_5 :3;
Word16 SignalingOnOffset :5;
Word16 More7 :1; /* "M" */
Word16 Const_0_7_13 :2;
Word16 SignalingOffOffset :5;
}TToneSignalingFooter;
typedef struct
{ /* Word #6 */
Word16 Const_0_6_4 :4;
Word16 SignalAst :1; /* --"-- */
Word16 SignalBst :1; /* --"-- */
Word16 SignalCst :1; /* --"-- */
Word16 SignalDst :1; /* state after first change */
Word16 More6 :1; /* "M" */
Word16 SignalingMode :2; /* extended, CAS or no-change */
Word16 Const_0_6_12 :1;
Word16 SignalAnd :1; /* --"-- */
Word16 SignalBnd :1; /* --"-- */
Word16 SignalCnd :1; /* --"-- */
Word16 SignalDnd :1; /* state after second change */
/* Word #7 */
Word16 Const_0_7_5 :3;
Word16 FirstChangeOffset :5;
Word16 More7 :1; /* "M" */
Word16 Const_0_7_13 :2;
Word16 SecondChangeOffset :5;
}TCasFooter;
#endif /* ENDIAN_MODE */
/*---------------------------TCommandPacketHeader------------------------*/
#if ENDIAN_MODE == LITTLE_ENDIAN
typedef struct
{ /* Word #0 */
Word16 ConstAA :8;
Word16 ChannelId :5;
Word16 Const_0_0_13 :3;
/* Word #1 */
Word16 PayLoadSize :8;
Word16 PacketSize :8;
/* Word #2 */
Word16 VoiceVolume :6;
Word16 Vfd :2; /* "TVoiceFaxData" */
Word16 ToneGeneratorRedirection :1;
Word16 DecoderOutMode :2; /* "DOM" */
Word16 Test :3; /* TTest */
Word16 Idle :1;
Word16 More2 :1; /* "M" */
/* Word #3 */
Word16 Coder :5;
Word16 Const_0_3_5 :2;
Word16 OnTheFlyRelayDisable :1;
Word16 HighPassFilterEnable :1; /* "HPFE" */
Word16 PostFilterEnable :1; /* "PFE" */
Word16 SilenceCompressionEnable :1; /* "SCE" */
Word16 BadFrameInterpolation :1; /* "BFI" */
Word16 CallerIdEnable :1;
Word16 EchoCancellerFreeze :1;
Word16 EchoCanselerEnable :1; /* "ECE" */
Word16 More3 :1; /* "M" */
/* Word #4 */
Word16 ModulationType :5; /* TModulationType */
Word16 :2;
Word16 FrameType :1;
Word16 RelayType :4; /* TRelayType */
Word16 :1;
Word16 Protocol :1;
Word16 DummyFaxPacket :1; /* "D" */
Word16 :1; /* "M" */
/* Word #5 */
/* Signaling Control flages for */
/* Enable/Disable Signal Detectors */
Word16 MfR1RegisterSignaling :1;
Word16 MfSs5RegisterSignaling :1;
Word16 MfR2ForwardRegisterSignaling :1;
Word16 MfR2BackwardRegisterSignaling :1;
Word16 R1LineSignaling :1;
Word16 Ac15SignalingSystem :1;
Word16 Ss4SignalingSystem :1;
Word16 Ss5LineSignaling :1;
Word16 R2LineSignaling :1;
Word16 Dtmf :1;
Word16 CallProgress :1;
Word16 FaxTest :1;
Word16 UserDefinedTones :1;
Word16 :3;
union
{
TToneSignalingFooter Tone;
TCasFooter Cas;
}u;
}TCommandPacketHeader;
#elif ENDIAN_MODE == BIG_ENDIAN
typedef struct
{ /* Word #0 */
Word16 ConstAA :8;
Word16 Const_0_0_13 :3;
Word16 ChannelId :5;
/* Word #1 */
Word16 PayLoadSize :8;
Word16 PacketSize :8;
/* Word #2 */
Word16 Vfd :2; /* "TVoiceFaxData" */
Word16 VoiceVolume :6;
Word16 More2 :1;
Word16 Idle :1;
Word16 Test :3; /* TTest */
Word16 DecoderOutMode :2; /* "DOM" */
Word16 ToneGeneratorRedirection :1;
/* Word #3 */
Word16 OnTheFlyRelayDisable :1;
Word16 Const_0_3_5 :2;
Word16 Coder :5;
Word16 More3 :1;
Word16 EchoCanselerEnable :1; /* "ECE" */
Word16 EchoCancellerFreeze :1;
Word16 CallerIdEnable :1;
Word16 BadFrameInterpolation :1; /* "BFI" */
Word16 SilenceCompressionEnable :1; /* "SCE" */
Word16 PostFilterEnable :1; /* "PFE" */
Word16 HighPassFilterEnable :1; /* "HPFE" */
/* Word #4 */
Word16 FrameType :1;
Word16 :2;
Word16 ModulationType :5; /* TModulationType */
Word16 :1;
Word16 DummyFaxPacket :1; /* "D" */
Word16 Protocol :1;
Word16 :1;
Word16 RelayType :4; /* TRelayType */
/* Word #5 */
/* Signaling Control flages for */
/* Enable/Disable Signal Detectors */
Word16 Ss5LineSignaling :1;
Word16 Ss4SignalingSystem :1;
Word16 Ac15SignalingSystem :1;
Word16 R1LineSignaling :1;
Word16 MfR2BackwardRegisterSignaling :1;
Word16 MfR2ForwardRegisterSignaling :1;
Word16 MfSs5RegisterSignaling :1;
Word16 MfR1RegisterSignaling :1;
Word16 :3;
Word16 UserDefinedTones :1;
Word16 FaxTest :1;
Word16 CallProgress :1;
Word16 Dtmf :1;
Word16 R2LineSignaling :1;
union
{
TToneSignalingFooter Tone;
TCasFooter Cas;
}u;
}TCommandPacketHeader;
#endif /* ENDIAN_MODE */
/*--------------------------TStatusPacketHeader------------------------*/
#if ENDIAN_MODE == LITTLE_ENDIAN
typedef struct
{ /* Word #0 */
Word16 ConstAA :8;
Word16 ChannelId :5;
Word16 Const_0_0_13 :3;
/* Word #1 */
Word16 PayLoadSize :8;
Word16 PacketSize :8;
/* Word #2 */
Word16 VoiceVolume :6;
Word16 Vfd :2; /* "TVoiceFaxData" */
Word16 VoiceActivityDetector :1; /* "VAD" */
Word16 UnderRun :1; /* Const_0_2_9 */
Word16 OverRun :1; /* Const_0_2_9 */
Word16 Test :3; /* TTest */
Word16 Idle :1;
Word16 More2 :1;
/* Word #3 */
Word16 Coder :5;
Word16 Const_0_3_5 :2;
Word16 ReceptionOverRun :1;
Word16 HighPassFilterEnable :1; /* "HPFE" */
Word16 PostFilterEnable :1; /* "PFE" */
Word16 SilenceCompressionEnable :1; /* "SCE" */
Word16 BadFrameInterpolation :1; /* "BFI" */
Word16 MisAliamentDetectedCorrected :1; /* "MDC" */
Word16 EchoCancellerFreeze :1;
Word16 EchoCanselerEnable :1; /* "ECE" */
Word16 More3 :1;
/* Word #4 */
Word16 ModulationType :5; /* TModulationType */
Word16 :2;
Word16 FrameType :1;
Word16 RelayType :4; /* TRelayType */
Word16 :1;
Word16 Protocol :1;
Word16 DummyFaxPacket :1; /* "D" */
Word16 :1;
/* Word #5 */
Word16 FrameEnergy :8;
Word16 SignalDStatus :1;
Word16 SignalCStatus :1;
Word16 SignalBStatus :1;
Word16 SignalAStatus :1;
Word16 Const_0_5_12 :4;
union
{
TToneSignalingFooter Tone;
TCasFooter Cas;
}u;
}TStatusPacketHeader;
#elif ENDIAN_MODE == BIG_ENDIAN
typedef struct
{ /* Word #0 */
Word16 ConstAA :8;
Word16 Const_0_0_13 :3;
Word16 ChannelId :5;
/* Word #1 */
Word16 PayLoadSize :8;
Word16 PacketSize :8;
/* Word #2 */
Word16 Vfd :2; /* "TVoiceFaxData" */
Word16 VoiceVolume :6;
Word16 More2 :1; /* "M" */
Word16 Idle :1;
Word16 Test :3; /* TTest */
Word16 OverRun :1; /* Const_0_2_9 */
Word16 UnderRun :1; /* Const_0_2_9 */
Word16 VoiceActivityDetector :1; /* "VAD" */
/* Word #3 */
Word16 ReceptionOverRun :1;
Word16 Const_0_3_5 :2;
Word16 Coder :5;
Word16 More3 :1; /* "M" */
Word16 EchoCanselerEnable :1; /* "ECE" */
Word16 EchoCancellerFreeze :1;
Word16 MisAliamentDetectedCorrected :1; /* "MDC" */
Word16 BadFrameInterpolation :1; /* "BFI" */
Word16 SilenceCompressionEnable :1; /* "SCE" */
Word16 PostFilterEnable :1; /* "PFE" */
Word16 HighPassFilterEnable :1; /* "HPFE" */
/* Word #4 */
Word16 FrameType :1;
Word16 :2;
Word16 ModulationType :5; /* TModulationType */
Word16 :1; /* "M" */
Word16 DummyFaxPacket :1; /* "D" */
Word16 Protocol :1;
Word16 :1;
Word16 RelayType :4; /* TRelayType */
/* Word #5 */
Word16 FrameEnergy :8;
Word16 Const_0_5_12 :4;
Word16 SignalAStatus :1;
Word16 SignalBStatus :1;
Word16 SignalCStatus :1;
Word16 SignalDStatus :1;
union
{
TToneSignalingFooter Tone;
TCasFooter Cas;
}u;
}TStatusPacketHeader;
#endif /* ENDIAN_MODE */
#endif /* AC48_SIGNALING_MODE */
typedef struct
{
TCommandPacketHeader Header;
char Payload[MAX_PAYLOAD_SIZE+PACKET_FOOTER_SIZE];
}TCommandPacket;
typedef struct
{
TStatusPacketHeader Header;
char Payload[MAX_PAYLOAD_SIZE+PACKET_FOOTER_SIZE];
}TStatusPacket;
/* #define TReceivePacketErrorFlags struct TReceivePacketErrorFlags
TReceivePacketErrorFlags
{
Word16 ChecksumError :1;
Word16 SequenceNumberError :1; /* The frame will be */
/* corrently processed. after reporting, the */
/* DSP will init the internal counter acording */
/* to the number reported by the host */
/* Word16 SyncHeaderError :1; /* The DSP will not */
/* rocess the frame in which the error has found*/
/* Word16 ModeError :1;
Word16 UnderRunError :1;/*Bad Frame Interpolation*/
/* Word16 OverRunError :1; /* The DSP will dispose */
/* the extra frame */
/* Word16 :2;
};
*/
#endif /* TypeDef_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -