Exemple #1
0
void AmbulanceC::EmergencyON(void){

	SILENCE();
	AlLevel=_LIMITED; manageAlarm();

	playSrn();
}
Exemple #2
0
void * radiateur_loop(void * arg)
{
	int ii;

	radiateur_init();
	thermometer_init();
	interupter_init();
	Light_init();
	Presence_init();
	Rain_Init();

	while (1)
	{
		// info("RADIATEUR","Evaluate radiateur status");
		for (ii = 0; ii < RD_LAST; ii++)
		{
			radiateur_evaluate_next_state(ii);
		}

		for (ii = 0; ii < LI_LAST; ii++)
		{
			light_evaluate_next_state(ii);
		}

		SerialFilPiloteSendCommande();
		manageAlarm();
		sem_wait(&sem_capteur_data_available);

	}
}
Exemple #3
0
//Alarm///////////////////////////////////////////////////////////////////////////////
void AmbulanceC::manageInterrupt(int iSrc){


if(iSrc==99)
{     if(s_EmSw  !=debounce(i_EmSw))  {s_EmSw=debounce(i_EmSw);    iSrc=i_EmSw; }
//else if(s_IsoSw !=debounce(i_IsoSw)) {s_IsoSw=debounce(i_IsoSw);   iSrc=i_IsoSw; }
else if(s_HbrkSw!=debounce(i_HbrkSw)){s_HbrkSw=debounce(i_HbrkSw); iSrc=i_HbrkSw; }
else if(s_TapSw !=debounce(i_TapSw)) {s_TapSw=debounce(i_TapSw);   iSrc=i_TapSw; }
}

if(ItrptLevel==_ALL)
{
		//if(prnt) {Serial.print("Interrupt: "); Serial.print(iSrc); Serial.println(" ...");}

		switch(iSrc)
		{			
				if(dbg) {Serial.print("....................AlLevel:"); Serial.println(AlLevel);}

				case i_pirTamp:
					if(AlLevel!=_ALL) break;
					if(dbg) Serial.print("pirTamp: ");
					if(debounce(i_pirTamp)!=LOW){
				if(dbg) Serial.println("Tampered!");

				if(AlArmed) {
				AlSrc=itrptSrc; 
				playSrn();
				}}
					else{if(dbg) Serial.println("OK");}
				break;

				case i_pirAl:
					if(AlLevel!=_ALL) break;
					if(dbg) Serial.print("pirAl: ");
					if(debounce(i_pirAl) !=LOW){
				if(dbg) Serial.println("Intruder!");

				if(AlArmed) {AlSrc=itrptSrc;
				playSrn();
				}}
					else{if(dbg) Serial.println("OK");}
				break;
			

			case i_DoorSw:
				if(dbg) Serial.print("DoorSw: ");
				if(debounce(i_DoorSw) ==LOW){
			if(dbg) Serial.println("Door open");

			if(AlArmed){AlSrc=itrptSrc; 
			if(doorTimeout!=NULL) doorTimeout->deleteTimer(); doorTimeout=NULL;
			doorTimeout=t.setTimeout(doorAlDelay, PLAYSRN);
			} }
				else{
				if(dbg) Serial.println("Door closed");
				}
			break;

			case i_IsoSw:
				if(AlLevel!=_ALL) break;
				if(dbg) Serial.print("IsoSw: ");
				if(s_IsoSw==LOW){
					if(dbg) Serial.println("IsoSwClosed");
					if(AlArmed)
					{
					AlSrc=itrptSrc;
						playSrn();
					}
				}
				else{
					if(dbg) Serial.println("IsoSwOpened");
				}
			break; 

			case i_HbrkSw:
				if(dbg) Serial.print("HBrkSw: ");
				if(s_HbrkSw==LOW)
				{
					if(dbg) Serial.println("HBrkReleased");
					if(AlArmed){
					AlSrc=itrptSrc; 
					playSrn();
					}
				}
				else
				{
					if(dbg) Serial.println("HBrkPulled");
				}
			break;

			default: goto more; break;

		}
		itrptSrc=-1; return;
	}

more:

if(ItrptLevel>=_LIMITED)
	{
		//if(prnt) {Serial.print("Interrupt: "); Serial.print(iSrc); Serial.println(" ...");}

		switch(iSrc)
		{
			case i_TotAlSw:
			case i_PerAlSw:
				if(dbg) Serial.print("AlSw: ");
				if (debounce(i_PerAlSw)==LOW) 
				{
 				if(dbg) Serial.println("limited");
					setAlLevel(_LIMITED); 
						if(!AlArmed) {
						if(alarmTimeout!=NULL) alarmTimeout->deleteTimer(); alarmTimeout=NULL;
						alarmTimeout=t.setTimeout(alarmArmDelay, MANAGEALARM); 
						enableblinkAlLEDFast();
						}
				}
				else if (debounce(i_TotAlSw)==LOW) 
				{
				if(dbg) Serial.println("all");
					setAlLevel(_ALL);
						if(!AlArmed) {
						if(alarmTimeout!=NULL) alarmTimeout->deleteTimer(); alarmTimeout=NULL;
						alarmTimeout=t.setTimeout(alarmArmDelay, MANAGEALARM); 
						enableblinkAlLEDFast();
						}
				}
				else
				{
					if(dbg) Serial.println("none");
					if(alarmTimeout!=NULL) alarmTimeout->deleteTimer(); alarmTimeout=NULL;
					if(doorTimeout!=NULL) doorTimeout->deleteTimer(); doorTimeout=NULL;

					setAlLevel(_NONE);
					manageAlarm(); 
				}


			break;
			
			 

			case i_EmSw:
				if(dbg) Serial.print("EmergencySw: ");
				if(s_EmSw==LOW)
				{
					if(dbg) Serial.println("Emergency Off");
				}
				else
				{
					if(dbg) Serial.println("Emergency On");
					EmergencyON();

				}
			break;

								
			case i_TapSw:
				if(dbg) Serial.print("TapSw: ");
				if(s_TapSw==LOW) TapOn();
				else	TapOff();	
			break;

			default: break;

		}
	}

	


	itrptSrc=-1; return;

}