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

📄 playservice.c

📁 基于SPCE061A的出租车计价器
💻 C
字号:
//======================================================
// 文件名称:	PlayService.c
// 功能描述:	播放提示语
// 维护记录:	2006-10-12	v1.0	by lijian
//======================================================
#include "PlayService.h"
#include "PlaySnd.h"
#include "Distance.h"
#include "Cost.h"
#include "FloatToBin.h"
#include "TypeOS.h"

//=============================================================
// 语法格式:	void PlayDistance(void)
// 实现功能:	播放行驶里程
// 参数:		无
// 返回值:		无
//=============================================================
void PlayDistance(void)
{
	PlayFloatNumber(Dis_GetDistance());
}

//=============================================================
// 语法格式:	void PlayCost(void)
// 实现功能:	播放费用
// 参数:		无
// 返回值:		无
//=============================================================
void PlayCost(void)
{
	PlayFloatNumber(Cost_GetCost());
}

//=============================================================
// 语法格式:	void PlayFloatNumber(float fNumber)
// 实现功能:	播放任意浮点数(播放至小数点后一位)
// 参数:		fNumber	-	需要播放的数字
// 返回值:		无
//=============================================================
void PlayFloatNumber(float fNumber)
{
	unsigned int uiPointPos;
	unsigned int uiTemp, uiTemp2;
	unsigned int uiZeroPlay;
	unsigned long int ulTemp;
	uiZeroPlay = 0;
	ulTemp = F_FloatToBCD(fNumber);
	if(HWORD(ulTemp) == 0)
	{
		PlaySnd(0, WAIT_OTHER_END);
	}
	else
	{
		uiPointPos = LWORD(ulTemp) & 0x0007;
		for(uiTemp = 0; uiTemp < uiPointPos; uiTemp++)
		{
			uiTemp2 = (unsigned int)((ulTemp & (0xf0000000 >> (uiTemp * 4))) >> ((7 - uiTemp) * 4));
			if(0 == uiTemp2)
			{
				uiZeroPlay = 1;
			}
			else
			{
				if(1 == uiZeroPlay)
				{
					 uiZeroPlay = 0;
					 PlaySnd(0, WAIT_OTHER_END);
				}
				PlaySnd(uiTemp2, WAIT_OTHER_END);
				if((uiPointPos + VOICE_SHI - 2 - uiTemp) >= VOICE_SHI)
				{
					PlaySnd(uiPointPos + VOICE_SHI - 2 - uiTemp, WAIT_OTHER_END);
				}
			}
		}
		if(uiTemp == uiZeroPlay)
			 PlaySnd(0, WAIT_OTHER_END);
		PlaySnd(VOICE_POINT, WAIT_OTHER_END);
		PlaySnd((unsigned int)((ulTemp & (0xf0000000 >> (uiTemp * 4))) >> ((7 - uiTemp) * 4)), WAIT_OTHER_END);
	}
}

⌨️ 快捷键说明

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