亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cost.c

?? 接受里程傳感器的脈沖輸入(在本方案中使用PWM模擬替代傳感器脈沖)
?? C
字號:
//======================================================
// 文件名稱:	Cost.c
// 功能描述:	計費管理程序
// 維護記錄:	2006-10-12	v1.0	by lijian
//======================================================
#include "Cost.h"
#include "Cal.h"
#include "Speed.h"
#include "Distance.h"
#include "ConstValues.h"

//	以下各變量讀取自Flash
float c_fStartPrice;								//	起步價
float c_fNightStartPrice;							//	夜行起步價
float c_fStartMilege;								//	起步里程數
float c_fPricePerKM;								//	白天的單價
float c_fNightPricePerKM;							//	夜晚的單價
float c_fWaitSpeed1, c_fWaitSpeed2;					//	等待之后的啟動速度
float c_fFirstWaitTimeLimit;						//	第一次等待時間(以分鐘為單位)
float c_fWaitTimeLimit;								//	每公里相當于等待時間長度(以分鐘為單位)
float c_fWaitPrice;									//	低速運行的加價
float c_fLongWayLimit;								//	空返加價距離
float c_fLongWayPrice;								//	空返加價幅度
unsigned int c_uiNightTime1, c_uiNightTime2;		//	夜行分界點

//	以下各變量用于計價
float fCurPrice;
float fCost;										//	費用
float fDayMilege;									//	白天行駛的里程
float fNightMilege;									//	夜晚行駛的里程
float fRevMilegePoint;								//	白天黑夜交叉點的里程數
unsigned long int ulWaitTime;						//	等待時間

//	以下各變量用于記錄當前運行狀態
unsigned int uiWaiting;								//	等待狀態
unsigned int uiNightRun;							//	夜行狀態
unsigned int uiLongWay;								//	遠距行駛狀態

//=============================================================
// 語法格式:	void Cost_Init(void)
// 實現功能:	計費管理初始化
// 參數:		無
// 返回值:		無
//=============================================================
void Cost_Init(void)
{
	c_fStartPrice = C_StartPrice;					//	讀取Flash中保存的各個計價控制參量
	c_fNightStartPrice = C_NightStartPrice;
	c_fStartMilege = C_StartMilege;
	c_fPricePerKM = C_PricePerKM;
	c_fNightPricePerKM = C_NightPricePerKM;
	c_fWaitSpeed1 = C_WaitSpeed1;
	c_fWaitSpeed2 = C_WaitSpeed2;
	c_fFirstWaitTimeLimit = C_FirstWaitTimeLimit;
	c_fWaitTimeLimit = C_WaitTimeLimit;
	c_fWaitPrice = C_WaitPrice;
	c_fLongWayLimit = C_LongWayLimit;
	c_fLongWayPrice = C_LongWayPrice;
	c_uiNightTime1 = C_NightTime1;
	c_uiNightTime2 = C_NightTime2;
	if(c_uiNightTime1 < c_uiNightTime2)
	{
		c_uiNightTime1 = C_NightTime2;
		c_uiNightTime2 = C_NightTime1;
	}
//	fCost = 0.0;
//	fCurPrice = 0;
//	fDayMilege = 0.0;
//	fNightMilege = 0.0;
//	fRevMilegePoint = 0.0;
//	ulWaitTime = 0;
//	uiWaiting = 0;
}

//=============================================================
// 語法格式:	void Cost_StartRunning(void)
// 實現功能:	啟動計費
// 參數:		無
// 返回值:		無
//=============================================================
void Cost_StartRunning(void)
{
	fCost = 0.0;
	fRevMilegePoint = 0.0;
	ulWaitTime = 0;
	uiWaiting = 0;
	uiLongWay = 0;
	Speed_Start();
	Dis_StartMessure();
	if((Cal_GetHour() >= c_uiNightTime1) || (Cal_GetHour() <= c_uiNightTime2))
	{												//	如果處于夜行時間
		uiNightRun = 1;								//	夜行標志
		fCurPrice = c_fNightPricePerKM;				//	執行夜行單價
		fCost = c_fNightStartPrice;					//	夜行起步價
		fDayMilege = 0.0;							//	白天行駛里程清零
		fNightMilege = c_fStartMilege * (-1);		//	夜行里程置起步里程
	}
	else
	{
		uiNightRun = 0;								//	夜行標志
		fCurPrice = c_fPricePerKM;					//	執行晝行單價
		fCost = c_fStartPrice;						//	晝行起步價
		fDayMilege = c_fStartMilege * (-1);			//	白天行駛里程置起步里程
		fNightMilege = 0.0;							//	夜行里程清零
	}
}

//=============================================================
// 語法格式:	void Cost_StopRunning(void)
// 實現功能:	停止計費
// 參數:		無
// 返回值:		無
//=============================================================
void Cost_StopRunning(void)
{
	if(uiWaiting)
	{
		ulWaitTime += (Cal_ReadTimer(1) / 2);		//	計算低速等待時間
	}
	Dis_StopMessure();								//	停止里程測量
	Speed_Stop();									//	停止速度模擬
	uiWaiting = 0;
//	uiLongWay = 0;
}

//=============================================================
// 語法格式:	void Cost_ClearCost(void)
// 實現功能:	清除計費記錄
// 參數:		無
// 返回值:		無
//=============================================================
void Cost_ClearCost(void)
{
	fCost = 0.0;
	fDayMilege = 0.0;
	fNightMilege = 0.0;
	fRevMilegePoint = 0.0;
	ulWaitTime = 0;
	uiWaiting = 0;
	uiLongWay = 0;
	fCurPrice = 0;
	Dis_ClearDistance();
}

//=============================================================
// 語法格式:	unsigned int Cost_WTimeToMilege(void)
// 實現功能:	將等待時間換算成公里數
// 參數:		無
// 返回值:		公里數(單位:公里)
//=============================================================
unsigned int Cost_WTimeToMilege(void)
{
	unsigned int uiRet;
	unsigned long int ulTemp;
	uiRet = 0;
	ulTemp = ulWaitTime / 60;
	if(uiWaiting)
		ulTemp += Cal_ReadTimer(1) / 120;
	if(ulTemp >= c_fFirstWaitTimeLimit)
	{
		ulTemp -= c_fFirstWaitTimeLimit;
		uiRet = 1;
		while(ulTemp >= c_fWaitTimeLimit)
		{
			uiRet++;
			ulTemp -= c_fWaitTimeLimit;
		}
	}
	return uiRet;
}

//=============================================================
// 語法格式:	float Cost_GetCost(void)
// 實現功能:	得到當前費用
// 參數:		無
// 返回值:		費用(單位:元)
//=============================================================
float Cost_GetCost(void)
{
	if(uiLongWay)									//	遠距行駛
		return (fCost + (fDayMilege * c_fPricePerKM + fNightMilege * c_fNightPricePerKM) * c_fLongWayPrice + Cost_WTimeToMilege() * c_fWaitPrice);
	else
	{
		if((fDayMilege + fNightMilege) > 0)			//	超過起步里程
			return (fCost + fDayMilege * c_fPricePerKM + fNightMilege * c_fNightPricePerKM + Cost_WTimeToMilege() * c_fWaitPrice);
		else										//	沒有超過起步里程
			return (fCost + Cost_WTimeToMilege() * c_fWaitPrice);
	}
}

//=============================================================
// 語法格式:	float Cost_GetPrice(void)
// 實現功能:	得到當前單價
// 參數:		無
// 返回值:		單價(單位:元)
//=============================================================
float Cost_GetPrice(void)
{
	return fCurPrice;
}

//=============================================================
// 語法格式:	unsigned long int Cost_GetWaitTime(void)
// 實現功能:	得到低速等待時間
// 參數:		無
// 返回值:		等待時間(單位:秒)
//=============================================================
unsigned long int Cost_GetWaitTime(void)
{
	if(uiWaiting)
		return (ulWaitTime + Cal_ReadTimer(1) / 2);
	else
		return ulWaitTime;
}

//=============================================================
// 語法格式:	unsigned int Cost_WaitOrNot(void)
// 實現功能:	是否處于等待狀態
// 參數:		無
// 返回值:		0 :	否
//				1 :	是
//=============================================================
unsigned int Cost_WaitOrNot(void)
{
	return uiWaiting;
}

//=============================================================
// 語法格式:	void Cost_ServiceLoop(void)
// 實現功能:	計費服務程序,用來檢測行駛速度,計算等待時間,
//				晝夜行駛判斷,遠距判斷
// 參數:		無
// 返回值:		無
//=============================================================
void Cost_ServiceLoop(void)
{
	float fTemp;
	unsigned int Hour;
	//	低速判斷
	if(uiWaiting == 1)
	{
		if(Dis_GetSpeed() >= c_fWaitSpeed2)
		{											//	低速等待時,檢測到速度上升
			ulWaitTime += (Cal_ReadTimer(1) / 2);
			Cal_ClearTimer(1);
			uiWaiting = 0;							//	退出低速等待狀態
		}
	}
	else if(Dis_GetSpeed() <= c_fWaitSpeed1)
	{												//	正常行駛時,檢測到速度下降
		Cal_StartTimer(1);
		uiWaiting = 1;								//	進入低速等待狀態
	}
	//	夜行判斷
	fTemp = Dis_GetDistance();
	Hour = Cal_GetHour();
	if(uiNightRun)
	{												//	當前為夜行狀態
		fNightMilege += (fTemp - fRevMilegePoint);	//	累加夜行里程
		if((Hour < c_uiNightTime1) && (Hour >= c_uiNightTime2))
		{											//	夜行轉到晝行
			if(fNightMilege < 0)
			{
				fDayMilege = fNightMilege;
				fNightMilege = 0;
			}
			fCurPrice = c_fPricePerKM;
			uiNightRun = 0;
			if(uiLongWay)
				fCurPrice *= c_fLongWayPrice;
		}
	}
	else
	{												//	當前為晝行
		fDayMilege += (fTemp - fRevMilegePoint);	//	累加晝行里程
		if((Cal_GetHour() >= c_uiNightTime1) || (Cal_GetHour() < c_uiNightTime2))
		{											//	晝行轉到夜行
			if(fDayMilege < 0)
			{
				fNightMilege = fDayMilege;
				fDayMilege = 0;
			}
			uiNightRun = 1;
			fCurPrice = c_fNightPricePerKM;
			if(uiLongWay)
				fCurPrice *= c_fLongWayPrice;
		}
	}
	fRevMilegePoint = fTemp;						//	更新晝行轉換點的里程數
	//	遠距判斷
	if(0 == uiLongWay)
	{
		if(fTemp > c_fLongWayLimit)					//	如果當前行駛里程大于規定的遠距里程數
		{
			uiLongWay = 1;
			fCost += (Cost_WTimeToMilege() + fDayMilege * c_fPricePerKM + fNightMilege * c_fNightPricePerKM);
													//	記錄下此時的費用
													//	此后的費用按照遠距單價計算
			fDayMilege = 0;
			fNightMilege = 0;
			fCurPrice *= c_fLongWayPrice;			//	單價更新為遠距離單價
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区国模嫣然| 精品精品国产高清一毛片一天堂| 欧美久久久久中文字幕| 26uuu久久天堂性欧美| 亚洲一区二区三区免费视频| 国产麻豆精品95视频| 5858s免费视频成人| 亚洲免费在线视频| 丁香婷婷综合网| 日韩欧美一区二区久久婷婷| 亚洲一区二区精品3399| 懂色av一区二区夜夜嗨| 精品少妇一区二区三区 | 久久综合999| 视频一区二区三区在线| 在线欧美日韩精品| 亚洲欧美一区二区三区极速播放| 福利电影一区二区| 久久久久久久久蜜桃| 加勒比av一区二区| 欧美一卡2卡3卡4卡| 日本怡春院一区二区| 欧洲精品在线观看| 亚洲天堂av一区| 91首页免费视频| 亚洲男人的天堂av| 99re热这里只有精品免费视频| 亚洲一区二区欧美激情| 欧洲在线/亚洲| 一区二区三区四区精品在线视频| 91香蕉视频mp4| 亚洲精品videosex极品| 日本韩国欧美三级| 亚洲免费观看高清完整版在线观看熊 | 国产成人在线视频播放| 26uuu国产日韩综合| 国产毛片精品一区| 久久精品一区蜜桃臀影院| 国产经典欧美精品| 国产精品污污网站在线观看| 成人精品免费看| 亚洲人成在线观看一区二区| 欧洲一区在线观看| 青青草国产精品亚洲专区无| 91精品婷婷国产综合久久性色| 美女一区二区久久| 国产日韩欧美高清| 91麻豆免费观看| 亚洲一二三区在线观看| 欧美美女直播网站| 精品一区二区在线看| 久久精品亚洲精品国产欧美| gogo大胆日本视频一区| 亚洲高清在线精品| 337p日本欧洲亚洲大胆色噜噜| 国产福利91精品| 亚洲国产精品久久久久婷婷884| 91精品国产丝袜白色高跟鞋| 国产一区二区导航在线播放| 亚洲人妖av一区二区| 91精品国产乱码久久蜜臀| 国产一区二区伦理| 亚洲精品乱码久久久久| 日韩欧美一区二区在线视频| 高清视频一区二区| 亚洲成人黄色影院| 久久精品亚洲精品国产欧美kt∨ | 日韩视频免费观看高清完整版在线观看| 久久av资源网| 亚洲人123区| 久久久美女艺术照精彩视频福利播放| 91麻豆福利精品推荐| 蓝色福利精品导航| 亚洲九九爱视频| 国产99久久久国产精品| 国产福利91精品一区二区三区| 欧美一卡在线观看| 国产精品色眯眯| 中文字幕av一区 二区| 日韩精品一区二区三区在线播放| 精品视频一区二区三区免费| 亚洲精品在线观看视频| 亚洲一区二区五区| 欧美日韩中字一区| 午夜免费久久看| 欧美一区二区三区视频在线 | 国产成人免费视频网站| 国产精品一区二区黑丝| 国产精品福利一区二区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品一区二区三区欧美| 国产欧美日韩亚州综合| 日韩精品一区二区三区视频播放 | 欧美日韩视频第一区| 久久精品一区二区| 日韩视频免费观看高清在线视频| 99久久精品免费看国产| 99re视频这里只有精品| 美女www一区二区| 亚洲人成网站在线| 欧美韩日一区二区三区| 成人免费在线观看入口| 精品欧美乱码久久久久久1区2区| 国产69精品久久99不卡| 毛片不卡一区二区| 国产一区二区在线视频| 不卡一二三区首页| 国产91对白在线观看九色| 不卡一区在线观看| 国产经典欧美精品| 欧美日韩国产首页| 91丝袜国产在线播放| 成人黄色777网| 岛国精品在线观看| 精品国产a毛片| 美女一区二区在线观看| 日韩三级伦理片妻子的秘密按摩| 成人美女视频在线看| 欧美体内she精高潮| 欧美成人video| 亚洲欧美日韩一区二区三区在线观看 | 亚洲综合久久久| 久久精品国产精品亚洲综合| 一本大道综合伊人精品热热| 欧美一卡在线观看| 亚洲男人天堂av| 国产一区二区三区蝌蚪| 欧美三级视频在线观看| 欧美高清在线一区二区| 日韩电影免费在线看| 色综合一区二区三区| 久久伊人蜜桃av一区二区| 亚洲大片精品永久免费| 成人激情动漫在线观看| 日韩无一区二区| 午夜视频在线观看一区二区三区| 大胆欧美人体老妇| ww亚洲ww在线观看国产| 日韩一区精品视频| 一本色道久久综合亚洲精品按摩| 久久久精品影视| 看电影不卡的网站| 3d动漫精品啪啪1区2区免费| 亚洲激情综合网| 99久久国产综合精品色伊| 欧美videos大乳护士334| 亚洲 欧美综合在线网络| 色悠悠亚洲一区二区| 国产精品视频在线看| 黑人巨大精品欧美黑白配亚洲| 欧美肥妇bbw| 亚洲成人免费影院| 欧亚洲嫩模精品一区三区| 亚洲天堂av一区| 99在线精品观看| 国产精品二三区| 不卡免费追剧大全电视剧网站| 国产欧美日韩在线观看| 国产精品一区二区黑丝| 久久久久9999亚洲精品| 精东粉嫩av免费一区二区三区| 欧美精品在线一区二区三区| 性做久久久久久久免费看| 在线免费观看视频一区| 亚洲夂夂婷婷色拍ww47| 色婷婷激情综合| 亚洲欧美偷拍三级| 欧美中文字幕一二三区视频| 亚洲精品视频在线看| 在线一区二区三区| 成人av网在线| 国产精品三级久久久久三级| 成人网在线免费视频| 亚洲天堂网中文字| 精品视频全国免费看| 日本aⅴ亚洲精品中文乱码| 日韩欧美国产一区在线观看| 久久国产综合精品| 久久久亚洲国产美女国产盗摄| 国产成人av电影在线观看| 国产欧美精品一区aⅴ影院 | 国产精品一线二线三线精华| 久久影院午夜论| 成人免费毛片嘿嘿连载视频| 亚洲日本丝袜连裤袜办公室| 欧美日韩www| 久久精品国产999大香线蕉| 国产亚洲自拍一区| 99re热这里只有精品视频| 亚洲国产日韩a在线播放| 日韩欧美亚洲国产另类| 国产一区二区美女诱惑| 亚洲人成7777| 91精品国产麻豆国产自产在线 | 麻豆精品一区二区三区| 国产亚洲一二三区| 色综合久久99| 久久99最新地址| 日韩码欧中文字| 日韩午夜电影在线观看|