首先這個被觸發:返回程序預觸發狀態
if ((temperatureChannel[channelID].currentTemperature > temperatureChannel[channelID].highLimit) | (temperatureChannel[channelID].currentTemperature < temperatureChannel[channelID].lowLimit))
activateAlarm(channelID);
激活警報被觸發,然後從那裏:
void activateAlarm(int channelID);
{ while (temperatureChannel[channelID].currentTemperature > temperatureChannel[channelID].highLimit || temperatureChannel[channelID].currentTemperature < temperatureChannel[channelID].lowLimit)
{
logSubsystem(temperatureChannel[channelID].currentTemperature);
}
}
然後報警畫面被觸發與下面的情況:
int logSubsystem(int currentTemperature)
case 'F': //if user input is 'F'
case 'f': //if user input is 'f'
currentTemperature--;
printf("your current exceeded temp is %i\n \n", currentTemperature);
if (currentTemperature <= 100 || currentTemperature >= 50);
compareLimit();
break; //exits loop
如何設置此功能,以便用戶使用F遞減並獲取當前溫度t o低於極限(< 100,或> 50),那麼它將返回到compareLimit函數,並且對上限/下限觸發狀態的要求將爲FALSE,將程序返回到其原始的預警狀態?
沒有足夠的上下文。根據你的問題,你可能需要:1.一個'while'循環,2.'longjmp()',3。 – 2013-03-27 15:22:07
我還能告訴你什麼?我只是不想給你帶來不必要的代碼 – 2013-03-27 15:26:34
這也沒關係。特別是,我會很喜歡'activateAlarm()'函數。 – 2013-03-27 15:27:36