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

📄 idchk.c

📁 用语音卡获取主叫显示的示例程序,只实现了FSK主叫号码的识别
💻 C
字号:
/*=========================================================
=========================================================*/
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

#include "..\\..\\..\\..\\inc\\tc08a32.h"


unsigned char IDStr[MAX_CHANNEL_NO][128];
WORD ChType[MAX_CHANNEL_NO];
long MyTimer[MAX_CHANNEL_NO];
WORD ChannelCount;
char VocName[80];

long ErrorCount[MAX_CHANNEL_NO];
long TotalCount;

#define	TEST_CLOCK	4

TC_INI_TYPE TmpIni;


void TestCallerID(void);

int main(int argc, char**argv)
{
	WORD i;
	FILE *fp;
	long r;

	r = LoadDRV();
	if ( r != 0 ) {
		printf ( "Load driver fail! ErrCode = %d", r);
		return r;
	}


	if ( IsSupportCallerID() == 0 ) {
		printf("This Card is not support Caller-ID !\n");
		exit(0);
	}

	GetSysInfo( &TmpIni);
	lstrcpy( VocName, TmpIni.cbDir );
	lstrcat( VocName, "voc\\" );
	if ( argc < 2 )
		strcat ( VocName, "idchk.voc" );
	else
		strcat ( VocName, argv[1] );

	fp = fopen ( VocName, "r" );
	if ( fp == NULL ) {
		printf ( "Input Voice File not Exist!\n", VocName );
		exit(0);
	}
	fclose (fp);

	ChannelCount = CheckValidCh();
	for ( i = 0; i < ChannelCount; i ++ ) {
		ChType[i] = CheckChType(i);
		ErrorCount[i] = 0;
	}

	r = EnableCard(ChannelCount, 4096*8 );		// 32 K
	if ( r != 0 ) {
		FreeDRV();
		printf ( "Enable Card Fail! ErrCode = %d\n", r );
		return 0;
	}

	printf ( "T5ID card Caller-ID selfcheck!\n" );
	printf ( "Dong Jin. 1997.11\n\n " );

	TotalCount = 0;
	while ( 1 ) {
		TestCallerID();
		TotalCount ++ ;

		if ( kbhit() )
			if ( getch() == 0x1b )
				break;
	}

	for ( i = 0; i < ChannelCount; i ++ )
		if ( ChType[i] == CHTYPE_USER )
			printf ( "Chnl = %2d, Error count = %ld/%ld\n", i, ErrorCount[i], TotalCount);

	DisableCard();
	FreeDRV();
}

void TestCallerID()
{
	WORD r,i;

	printf ( "Start Check Channel : " );
	for ( i = 0; i < ChannelCount; i ++ ) {
		if ( ChType[i] == CHTYPE_USER ) {
			ResetCallerIDBuffer(i);
			StartPlayFile( i, VocName,0 );
			printf ( "%2d ",i );
		}
	}
	printf ( "\n" );

	StartTimer(0, TEST_CLOCK);
	while ( ElapseTime(0, TEST_CLOCK) < 100 ) 		// 100 is 1 second
			;

	printf ( "Now Get the Caller ID Str:\n" );
	for ( i = 0; i < ChannelCount; i ++ ) {
		if ( ChType[i] == CHTYPE_USER ) {
			r = GetCallerIDStr (i,IDStr[i]);
			if ( r == 3 )
				printf ( "[OK  ] " );
			else {
				printf ( "[FAIL] " );
				ErrorCount[i] ++;
			}
			printf ( "Chnl = %2d, Result = %d, Caller ID = [%s]\n", i, r,IDStr[i] );

/*			printf ( "\t\tRaw data : " );
			r = GetCallerIDRawStr ( i, IDStr[i] );
			for ( j = 0; j < r; j ++ )
				printf ( "%X ", IDStr[i][j] );
			printf ( "\n" );
*/
		}
	}
	printf ( "\n----------------------------------------------------------\n" );
}

⌨️ 快捷键说明

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