⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fsk.h

📁 基于TB板卡的FSK编程,telcobridges fsk develop
💻 H
📖 第 1 页 / 共 2 页
字号:

} TB640_FSK_TX_ACTION, *PTB640_FSK_TX_ACTION;


/* Define the types of data transmitted supported by this application */
typedef enum _TB640_FSK_CUSTOM_TEST_TYPE
{
	TB640_FSK_CUSTOM_TEST_TYPE_STRESS		= 0

} TB640_FSK_CUSTOM_TEST_TYPE, *PTB640_FSK_CUSTOM_TEST_TYPE;


/*
 | Structure containing information about a specific trunk resource
 */
typedef struct _TB640_FSK_TRUNK_RESOURCE_INFO
{
	/* Information about the trunk resource itself */
	TBX_BOOL							fOperationAllocated;
	TBX_BOOL							fInUse;
	TBX_UINT8							un8Trunk;
	TBX_UINT8							un8Timeslot;
	TB640_RESOURCE_HANDLE				hTrunkResource;
	TB640_VPGROUP_HANDLE				hVPGroup;
	TB640_RESOURCE_HANDLE				hVPResource;
	TB640_CONNECTION_HANDLE				hConnection;

	TB640_FSK_CALL_APP_STATE			State;
	TB640_FSK_CALL_APP_SUB_STATE		SubState;

	TB640_FSK_CUSTOM_TEST_TYPE			TestType;	/* Type of test being run on this timeslot */
	TBX_UINT32							StateStressTest;

	TBX_UINT32							un32TxRetransmitLeft;

	TBX_UINT32							un32LastIdleTimestamp;
	TBX_UINT32							un32HistoryReadIdx;
	TBX_UINT32							un32HistoryWriteIdx;
	TB640_FSK_HISTORY_ENTRY				aHistoryEntry [TB640_FSK_NB_HISTORY_FOR_TIMESLOT];

} TB640_FSK_TRUNK_RESOURCE_INFO, *PTB640_FSK_TRUNK_RESOURCE_INFO;


/*
 | Structure containing information about a specific trunk
 */
typedef struct _TB640_FSK_TRUNK_INFO
{
	/* Information about the trunk itself */
	TBX_UINT8							un8Trunk;
	TB640_TRUNK_HANDLE					hTrunk;
	TBX_BOOL							fActivated;
	TBX_BOOL							fIncludedInStressTesting;
	TB640_TRUNK_CFG						TrunkConfiguration;
	TBX_UINT32							un32OpLibIdx;
	TBX_UINT32							un32NbTrunkResource;
	TB640_VP_FSK_TYPE					FskType;
	TB640_FSK_TRUNK_RESOURCE_INFO		aResourceInfo [TB640_FSK_MAX_TIMESLOT_IN_TRUNK];

} TB640_FSK_TRUNK_INFO, *PTB640_FSK_TRUNK_INFO;


/*
 | Structure containing information about a specific adapter
 */
typedef struct _TB640_FSK_ADAPTER_INFO
{
	TBX_CHAR							szAdapterName [TB640_FSK_MAX_ADAPTER_NAME_LENGTH];
	TBX_ADAPTER_HANDLE					hAdapter;
	TBX_BOOL							fAttached;
	TBX_ADAPTER_INFO					AdapterInfo;
	TBX_HOST_INFO						HostInfo;
	TBX_UINT32					        aun32FeatureEnabled [TBX_FEATURE_TYPE_LAST];

	TBX_UINT32							un32RemoteProcessId;

	/* Operation library information */
	TBX_UINT32							un32NbOperationLib;
	TBX_ASYNC_LIB_HANDLE				ahOperationLib [TB640_FSK_NB_OPERATION_LIBRARY_REQUIRED];
	TBX_UINT64							aun64UniqueId [TB640_FSK_NB_OPERATION_LIBRARY_REQUIRED];
	struct
	{
		TBX_SEM							aOperationLibSem[TB640_FSK_NB_OPERATION_LIBRARY_REQUIRED];
		PTBX_CHAR						apszOperationLibSemFile[TB640_FSK_NB_OPERATION_LIBRARY_REQUIRED];
		TBX_UINT32						aun32OperationLibSemLine[TB640_FSK_NB_OPERATION_LIBRARY_REQUIRED];
		TBX_UINT32						aun32OperationLibSemProcess[TB640_FSK_NB_OPERATION_LIBRARY_REQUIRED];
	} Lock;

	/* Trunk and trunk resource information */
	TBX_UINT32							un32NbTrunk;
	TB640_FSK_TRUNK_INFO				aTrunkInfo [TB640_FSK_MAX_SUPPORTED_TRUNKS_PER_ADAPTER];

	/* Hash table for quick reverse lookups of handle->trunk nb, timeslot nb, etc. */
	TBX_HASH_HANDLE						hVPHash;
	TBX_HASH_HANDLE						hTrunkHash;
	TBX_HASH_HANDLE						hTrunkResHash;

	TBX_UINT32							un32AdapterCpu0Usage;
	TBX_UINT32							un32AdapterCpu1Usage;

} TB640_FSK_ADAPTER_INFO, *PTB640_FSK_ADAPTER_INFO;


/*
 | Structure containing all information required by the overall application
 */
typedef struct _TB640_FSK_CONTEXT
{
	/* TBX library information */
	TBX_LIB_HANDLE						hTbxLib;

	/* Logging facilities */
	TBX_SEM								DisplaySem;
	FILE *								pLogFile;
	TBX_CHAR							szFilename [128];
	TBX_UINT32							un32LogNumber;
	TBX_UINT16							un16GwPort;

	TBX_UINT32							un32FileLogLevel;
	TBX_UINT32							un32DisplayLogLevel;
	TBX_UINT32							un32MinRefreshDelayMsec;

	/* Counter to see if there are any transient calls at a specific time */
	TBX_SEM								TransientCallsSem;
	volatile TBX_UINT32					un32TransientCalls;

	/* Static FSK message content */
	TBX_UINT8							WaitRemote1MsgId;
	TBX_UINT8							WaitRemote1ConfirmMsgId;
	TBX_UINT8							WaitRemote2MsgId;
	TBX_UINT8							WaitRemote2ConfirmMsgId;
	TBX_UINT8							CloseRemoteMsgId;
	TBX_UINT8							TxStressTestMsgId;
	TBX_UINT8							TxAMsgId;
	TBX_UINT8							TxBMsgId;
	TBX_UINT8							TxCMsgId;
	TBX_UINT8							TxDMsgId;
	TBX_UINT8							WaitRemote1Data;
	TBX_UINT8							WaitRemote2Data;

	/* Adapter resource information */
	TBX_UINT32							un32NbAdapter;
	TB640_FSK_ADAPTER_INFO				ahAdapterInfo [TB640_FSK_MAX_SUPPORTED_ADAPTERS];

} TB640_FSK_CONTEXT, *PTB640_FSK_CONTEXT;


/*
 | Structure containing all information for a call
 */
typedef struct _TB640_FSK_CALL_CONTEXT
{
	/* Information on parent */
	PTBX_ASYNC_OP_CONTEXT				pOpContext;
	TBX_BOOL							fSpuriousCallContext;

	/* State of this call (used by the application) */
	TBX_UINT32							ExpectedWaitRemote1Data;
	TBX_UINT32							RemoteWaitRemote1Data;
	TBX_UINT32							ExpectedWaitRemote2Data;
	TBX_UINT32							RemoteWaitRemote2Data;

	/* Debuging stuff */
	TBX_UINT32							un32Debug;

	/* Parameters */
	TBX_BOOL							fReception;	/* Else transmission */
	TBX_BOOL							fWaitingForWaitRemoteConfirmAck;
	TBX_BOOL							fReceivedRemoteConfirm;
	TBX_BOOL							fReceivedRemoteConfirmAck;
	TBX_UINT32							un32MessageSizeDWord;

	/* Adapter/Trunk/timeslot information */
	TBX_UINT32							un32AdapterIndex;
	TBX_UINT32							un32TrunkIndex;
	TBX_UINT32							un32TimeslotIndex;

	/* Call history */
	TBX_UINT32							un32HistoryReadIdx;
	TBX_UINT32							un32HistoryWriteIdx;
	TB640_FSK_HISTORY_ENTRY				aHistoryEntry [TB640_FSK_NB_HISTORY_FOR_CALL];

} TB640_FSK_CALL_CONTEXT, *PTB640_FSK_CALL_CONTEXT;


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Global variables
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Macros
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  Function Prototypes
 *------------------------------------------------------------------------------------------------------------------------------*/


/*--------------------------------------------------------------------------------------------------------------------------------
 |  C++ support
 *------------------------------------------------------------------------------------------------------------------------------*/
#ifdef __cplusplus
}
#endif /* __cplusplus */


#endif /* __FSK_H__ */


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -