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

📄 sys_debug.c

📁 DVB软件,基于CT216软件的开发源程序.
💻 C
📖 第 1 页 / 共 5 页
字号:

	//u16Progress = AP_PVR_GetTimeShiftRecordProgress();
	printf(">> PVR: timeshfit get record progress [%d] normally.\n", u16Progress);
}

void sys_test_pvr_timeshift_get_speed(void)
{
	#if 0
	EN_PVR_PLAY_SPEED enSpeed = EN_PLAY_SPEED_NORMAL;
	
	enSpeed = AP_PVR_GetTimeShiftSpeed();
	switch(enSpeed)
	{
		case EN_PLAY_SPEED_NORMAL:
			printf(">> PVR: timeshift speed normal\n");
			break;

		case EN_FF_SPEED_X2:
			printf(">> PVR: timeshift speed fast forward X2\n");
			break;

		case EN_FF_SPEED_X4:
			printf(">> PVR: timeshift speed fast forward X4\n");
			break;

		case EN_FF_SPEED_X8:
			printf(">> PVR: timeshift speed fast forward X8\n");
			break;

		case EN_FF_SPEED_X16:
			printf(">> PVR: timeshift speed fast forward X16\n");
			break;

		case EN_FF_SPEED_X32:
			printf(">> PVR: timeshift speed fast forward X32\n");
			break;

		case EN_SF_SPEED_X2:
			printf(">> PVR: timeshift speed slow forward X2\n");
			break;

		case EN_SF_SPEED_X4:
			printf(">> PVR: timeshift speed slow forward X4\n");
			break;

		case EN_SF_SPEED_X8:
			printf(">> PVR: timeshift speed slow forward X8\n");
			break;

		case EN_SF_SPEED_X16:
			printf(">> PVR: timeshift speed slow forward X16\n");
			break;

		case EN_SF_SPEED_X32:
			printf(">> PVR: timeshift speed slow forward X32\n");
			break;

		case EN_FB_SPEED_X2:
			printf(">> PVR: timeshift speed fast backward X2\n");
			break;

		case EN_FB_SPEED_X4:
			printf(">> PVR: timeshift speed fast backward X4\n");
			break;

		case EN_FB_SPEED_X8:
			printf(">> PVR: timeshift speed fast backward X8\n");
			break;

		case EN_FB_SPEED_X16:
			printf(">> PVR: timeshift speed fast backward X16\n");
			break;

		case EN_FB_SPEED_X32:
			printf(">> PVR: timeshift speed fast backward X32\n");
			break;
	}
	#else
	printf(">> PVR: timeshift speed empty api\n");
	#endif
}

void sys_test_pvr_timeshift_live_pause(bool8 b8Mode, bool8 b8Pause)
{
	bool8 b8Status = FALSE;

	printf("Mode[%d] | Puase[%d] |     Result    \n", b8Mode, b8Pause);
	printf("--------+----------+---------------\n");
	printf("   0    |     0    | Start Playback\n");
	printf("   0    |     1    | Start Record\n");
	printf("   1    |     0    | Start Playback\n");
	printf("   1    |     1    | Puase Live\n");
	AP_PVR_SetTimeShiftMode(b8Mode);
	b8Status = AP_PVR_TimeShiftPause(b8Pause);
	if(b8Mode == TRUE && b8Pause == TRUE)
	{
		AP_PVR_PlaybackPause(b8Pause);
		DVB_VideoSetPID(0) ;
		DVB_AudioSetPID(0) ;		
	}
	if(b8Status == TRUE)
	{
		printf(">> PVR: timeshift lvie pause mode[%d] Pause[%d] normally.\n", b8Mode, b8Pause);
	}
	else
	{
		printf(">> PVR: timeshift lvie pause mode[%d] Pause[%d] fail.\n", b8Mode, b8Pause);
	}
}

void sys_test_pvr_timeshift_to_record(void)
{
	bool8 b8Status = FALSE;

	b8Status = AP_PVR_SetTimeShiftToRecord();
	if(b8Status == TRUE)
	{
		printf(">> PVR: timeshift to record normally.\n");
	}
	else
	{
		printf(">> PVR: timeshift to record fail.\n");
	}
}

// PVR: Loop Test
void sys_long_test_pvr_record_start(u16 u16Time)
{
	_u16RecordDuration = u16Time;

	sys_test_pvr_record_set_duration(_u16RecordDuration);
	sys_test_pvr_record_start();
	_b8LongTestRecord = TRUE;
}

void sys_long_test_pvr_check_record_again(void)
{
	if(_b8LongTestRecord == TRUE)
	{
		if(_enPVRCurrentEvent == EN_PVR_EVENT_RECORD_FINISH || _enPVRCurrentEvent == EN_PVR_EVENT_RECORD_STOP)
		{
			CT_OS_Delay(200);	// 2s
			_enPVRCurrentEvent = EN_PVR_EVENT_NONE;
			sys_long_test_pvr_record_start(_u16RecordDuration);
		}
	}
}

void sys_long_test_pvr_different_record_start(u16 u16StartDuration, u16 u16IncreaseTime)
{
	if(u16StartDuration == 0)
	{
		_u16DifferentRecordDuration = 15;
	}
	else
	{
		_u16DifferentRecordDuration = u16StartDuration;
	}
	_u16DifferentIncreaseTime = u16IncreaseTime;

	sys_test_pvr_record_set_duration(_u16DifferentRecordDuration);
	sys_test_pvr_record_start();

	_u16DifferentRecordDuration += u16IncreaseTime;

	_b8LongTestDifferentRecord = TRUE;
}

void sys_long_test_pvr_check_different_record_again(void)
{
	if(_b8LongTestDifferentRecord == TRUE)
	{
		if(_enPVRCurrentEvent == EN_PVR_EVENT_RECORD_FINISH || _enPVRCurrentEvent == EN_PVR_EVENT_RECORD_STOP)
		{
			CT_OS_Delay(200);	// 2s
			_enPVRCurrentEvent = EN_PVR_EVENT_NONE;
			sys_long_test_pvr_different_record_start(_u16DifferentRecordDuration, _u16DifferentIncreaseTime);
		}
	}
}

void sys_long_test_pvr_playback_start(u32 u32FileIndex)
{
	_u32PlaybackFileIndex = u32FileIndex;

	sys_test_pvr_playback_start(_u32PlaybackFileIndex);
	_b8LongTestPlayback = TRUE;
}

void sys_long_test_pvr_check_playback_again(void)
{
	if(_b8LongTestPlayback == TRUE)
	{
		if(_enPVRCurrentEvent == EN_PVR_EVENT_PLAYBACK_FINISH)
		{
			CT_OS_Delay(200);	// 2s
			_enPVRCurrentEvent = EN_PVR_EVENT_NONE;
			sys_long_test_pvr_playback_start(_u32PlaybackFileIndex);
		}
	}
}

void sys_long_test_pvr_different_playback_start(u32 u32FileCount)
{
	if(u32FileCount == 0)
	{
		return;
	}
	
	_u32DifferentPlaybackFileCount = u32FileCount;

	sys_test_pvr_playback_start(_u32DifferentPlaybackFileIndex);
	if(_u32DifferentPlaybackFileIndex == _u32DifferentPlaybackFileCount - 1)
	{
		_u32DifferentPlaybackFileIndex = 0;
	}
	else
	{
		_u32DifferentPlaybackFileIndex++;
	}
	_b8LongTestDifferentPlayback = TRUE;
}

void sys_long_test_pvr_check_different_playback_again(void)
{
	if(_b8LongTestDifferentPlayback == TRUE)
	{
		if(_enPVRCurrentEvent == EN_PVR_EVENT_PLAYBACK_FINISH)
		{
			CT_OS_Delay(200);	// 2s
			_enPVRCurrentEvent = EN_PVR_EVENT_NONE;
			sys_long_test_pvr_different_playback_start(_u32DifferentPlaybackFileCount);
		}
	}
}

void sys_long_test_pvr_key(bool8 b8Flag, u8 u8Key, u8 u8Speed)
{
	_b8LongTestKey = b8Flag;
	_u8LongTestKey = u8Key;
	_u8LongTestSpeed = u8Speed;
}

void sys_long_test_pvr_check_key_again(void)
{
//	printf(">> pvr: _b8LongTestKeyPlayback=%d, _b8LongTestKey=%d, _u8LongTestKey=%d, _u8LongTestSpeed=%d\n", 
//		_b8LongTestKeyPlayback, _b8LongTestKey, _u8LongTestKey, _u8LongTestSpeed);

	if(_b8LongTestKey == TRUE)
	{
		switch(_u8LongTestKey)
		{
			case 0:
				_b8LongTestKey = FALSE;
				break;

			case 1:	// Play
				if(_b8LongTestKeyPlayback == TRUE)
				{
					_u8LongTestKey = 2;
					AP_PVR_PlaybackPause(FALSE);
				}
				break;

			case 2:	// Pause
				if(_b8LongTestKeyPlayback == TRUE)
				{
					_u8LongTestKey = 1;
					AP_PVR_PlaybackPause(TRUE);
				}
				break;

			case 3:	// Fast Forward
				if(_b8LongTestKeyPlayback == TRUE)
				{
					switch(_u8LongTestSpeed)
					{
						case 2:
							AP_PVR_SetPlaybackSpeed(EN_FF_SPEED_X2);
							break;
						case 4:
							AP_PVR_SetPlaybackSpeed(EN_FF_SPEED_X4);
							break;
						case 8:
							AP_PVR_SetPlaybackSpeed(EN_FF_SPEED_X8);
							break;
						case 16:
							AP_PVR_SetPlaybackSpeed(EN_FF_SPEED_X16);
							break;
						case 32:
							AP_PVR_SetPlaybackSpeed(EN_FF_SPEED_X32);
							break;
					}
				}
				break;

			case 4:	// Slow Forward
				if(_b8LongTestKeyPlayback == TRUE)
				{
					switch(_u8LongTestSpeed)
					{
						case 2:
							AP_PVR_SetPlaybackSpeed(EN_SF_SPEED_X2);
							break;
						case 4:
							AP_PVR_SetPlaybackSpeed(EN_SF_SPEED_X4);
							break;
						case 8:
							AP_PVR_SetPlaybackSpeed(EN_SF_SPEED_X8);
							break;
						case 16:
							AP_PVR_SetPlaybackSpeed(EN_SF_SPEED_X16);
							break;
						case 32:
							AP_PVR_SetPlaybackSpeed(EN_SF_SPEED_X32);
							break;
					}
				}
				break;

			case 5:	// Fast	Backward
				if(_b8LongTestKeyPlayback == TRUE)
				{
					switch(_u8LongTestSpeed)
					{
						case 2:
							AP_PVR_SetPlaybackSpeed(EN_FB_SPEED_X2);
							break;
						case 4:
							AP_PVR_SetPlaybackSpeed(EN_FB_SPEED_X4);
							break;
						case 8:
							AP_PVR_SetPlaybackSpeed(EN_FB_SPEED_X8);
							break;
						case 16:
							AP_PVR_SetPlaybackSpeed(EN_FB_SPEED_X16);
							break;
						case 32:
							AP_PVR_SetPlaybackSpeed(EN_FB_SPEED_X32);
							break;
					}
				}
				break;
		}
	}
}

#ifdef PVR_FILE_TEST
#define	SYS_TEST_FS_SIZE	0x10000	//(64*1024)
static u8 _au8FSData0[SYS_TEST_FS_SIZE];
static u8 _au8FSData1[SYS_TEST_FS_SIZE];
static u8 _au8FSData2[SYS_TEST_FS_SIZE];
static u8 _au8FSData3[SYS_TEST_FS_SIZE];

void sys_test_fs_read(void)
{
    EN_DEVICE_TYPE enDeviceType = EN_USB_DEVICE;
	u32 u32FileCount = 0;
	u32 u32FileHandle = 0;
	u32 u32OpenStartTime = 0;
	u32 u32OpenEndTime = 0;
	u32 u32ReadStartTime = 0;
	u32 u32ReadEndTime = 0;
	u32 u32CloseStartTime = 0;
	u32 u32CloseEndTime = 0;
	u32 u32Index = 0;
	u32 u32Times = 0;
	u32 u32ReadTimes = 0;
	u32 u32Size = 0;
	u32 u32FileSize = 0;
	u8 au8FileName[14];

	u32FileCount = DVB_FILECTRL_GetFileCount(enDeviceType, EN_FILE_TYPE_ALL);
	if(u32FileCount > 0)
	{
		for(u32Index = 0; u32Index < u32FileCount; u32Index++)
		{
			// Get Index
			memset(au8FileName, 0, sizeof(u8) * 14);
			DVB_FILECTRL_GetFilenameWithIndex(enDeviceType, EN_FILE_TYPE_ALL, u32Index, au8FileName);

			// Open File
			u32OpenStartTime = DVB_TimerGet();
			u32FileHandle = DVB_FILECTRL_FileOpen(enDeviceType, au8FileName, 'r');
			u32OpenEndTime = DVB_TimerGet();

			if(u32FileHandle != 0)
			{
				u32FileSize = DVB_FILECTRL_GetFileSize(enDeviceType, u32FileHandle);
				u32ReadTimes = u32FileSize / SYS_TEST_FS_SIZE;

				// Read File
				u32ReadStartTime = DVB_TimerGet();
				for(u32Times = 0; u32Times < u32ReadTimes; u32Times++)
				{
					switch(u32Times % 4)
					{
						case 0:
							u32Size = DVB_FILECTRL_FileRead(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData0);
							break;

						case 1:
							u32Size = DVB_FILECTRL_FileRead(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData1);
							break;

						case 2:
							u32Size = DVB_FILECTRL_FileRead(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData2);
							break;

						case 3:
							u32Size = DVB_FILECTRL_FileRead(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData3);
							break;

						default:
							u32Size = DVB_FILECTRL_FileRead(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData0);
							break;
					}
					if(u32Size != SYS_TEST_FS_SIZE)
					{
						printf(">> fs: read[%ld][%ld] size %ld != %ld\n", u32Index, u32Times, u32Size, (u32)SYS_TEST_FS_SIZE);
					}
					//CT_OS_MS_Delay(50);
				}
				u32ReadEndTime = DVB_TimerGet();

				// Close File
				u32CloseStartTime = DVB_TimerGet();
				DVB_FILECTRL_FileClose(enDeviceType, u32FileHandle);
				u32CloseEndTime = DVB_TimerGet();

				printf(">> fs: read[%ld] %ld, %ld, %ld\n", u32Index, 
					u32OpenEndTime - u32OpenStartTime, 
					u32ReadEndTime - u32ReadStartTime, 
					u32CloseEndTime - u32CloseStartTime);
			}
		}
	}
}

void sys_test_fs_write(u32 u32FileCount, u32 u32WriteTimes)
{
    EN_DEVICE_TYPE enDeviceType = EN_USB_DEVICE;
	u32 u32FileHandle = 0;
	u32 u32OpenStartTime = 0;
	u32 u32OpenEndTime = 0;
	u32 u32WriteStartTime = 0;
	u32 u32WriteEndTime = 0;
	u32 u32CloseStartTime = 0;
	u32 u32CloseEndTime = 0;
	u32 u32Index = 0;
	u32 u32Times = 0;
	u32 u32Size = 0;
	u8 au8FileName[14];

	if(u32FileCount > 0)
	{
		// Data
		for(u32Index = 0; u32Index < SYS_TEST_FS_SIZE; u32Index++)
		{
			_au8FSData0[u32Index] = u32Index % 0x100;
			_au8FSData1[u32Index] = u32Index % 0x100;
			_au8FSData2[u32Index] = u32Index % 0x100;
			_au8FSData3[u32Index] = u32Index % 0x100;
		}

		// Write File
		for(u32Index = 0; u32Index < u32FileCount; u32Index++)
		{
			// Open File
			sprintf(au8FileName, "%08ld.txt", u32Index);
			u32OpenStartTime = DVB_TimerGet();
			u32FileHandle = DVB_FILECTRL_FileOpen(enDeviceType, au8FileName, 'w');
			u32OpenEndTime = DVB_TimerGet();

			if(u32FileHandle != 0)
			{
				// Write File
				u32WriteStartTime = DVB_TimerGet();
				for(u32Times = 0; u32Times < u32WriteTimes; u32Times++)
				{
					switch(u32Times % 4)
					{
						case 0:
							u32Size = DVB_FILECTRL_FileWrite(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData0);
							break;

						case 1:
							u32Size = DVB_FILECTRL_FileWrite(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData1);
							break;

						case 2:
							u32Size = DVB_FILECTRL_FileWrite(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData2);
							break;

						case 3:
							u32Size = DVB_FILECTRL_FileWrite(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData3);
							break;

						default:
							u32Size = DVB_FILECTRL_FileWrite(enDeviceType, u32FileHandle, SYS_TEST_FS_SIZE, _au8FSData0);
							break;
					}
					if(u32Size != SYS_TEST_FS_SIZE)
					{
						printf(">> fs: write[%ld][%ld] size %ld != %ld\n", u32Index, u32Times, u32Size, (u32)SYS_TEST_FS_SIZE);
					}
					//CT_OS_MS_Delay(50);
				}
				u32WriteEndTime = DVB_TimerGet();

				// Close File
				u32CloseStartTime = DVB_TimerGet();
				DVB_FILECTRL_FileClose(enDeviceType, u32FileHandle);
				u32CloseEndTime = DVB_TimerGet();

				printf(">> fs: write[%ld] %ld, %ld, %ld\n", u32Index, 
					u32OpenEndTime - u32OpenStartTime, 
					u32WriteEndTime - u32WriteStartTime, 
					u32CloseEndTim

⌨️ 快捷键说明

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