Exemplo n.º 1
0
void  GlobalsClass::checkSerialMsg()
{

	String msgStr = qCon.readStringUntil('\n');
	DebugPrintln("received :" + msgStr);		

	if ((getValue(msgStr, 0) == "$HMSU")) //msg is good updatemsg
	{
		if (validatechksum(msgStr) == false) return;
		hmSetPoint = getValue(msgStr, 1); if (hmSetPoint == "U") hmSetPoint = "0";
		hmPitTemp = getValue(msgStr, 2);  if (hmPitTemp == "U") hmPitTemp = "0";
		hmFood1 = getValue(msgStr, 3);   // if (hmFood1 == "U") hmFood1 = "0";
		hmFood2 = getValue(msgStr, 4);   // if (hmFood2 == "U") hmFood2 = "0";
		hmAmbient = getValue(msgStr, 5); // if (hmAmbient == "U") hmAmbient = "0";
		hmFan = getValue(msgStr, 6);     // if (hmFan == "U") hmFan = "0";
		hmFanMovAvg = getValue(msgStr, 7); //if (hmFanMovAvg == "U") hmFanMovAvg = "0";
		hmLidOpenCountdown = getValue(msgStr, 8);//	if (hmLidOpenCountdown == "U") hmLidOpenCountdown = "0";
	}
	else if ((getValue(msgStr, 0) == "$HMAL")) //Alarm is firing....
	{
		if (validatechksum(msgStr) == false) return;
		String AlarmInfo;
		bool HasAlarm;

		AlarmInfo = "Pit Alarm! : ";
		HasAlarm = false;
		int msgpos = 1;
		for (int i = 0; i < 4; i++) {
			String AlarmLo;
			String AlarmHi;
			AlarmLo = getValue(msgStr, msgpos);
			if (AlarmLo.charAt(AlarmLo.length() - 1) == 'L')
			{
				AlarmLo.remove(AlarmLo.length() - 1, 1);
				AlarmInfo += "Probe " + String(i + 1) + " Low:  " + AlarmLo + " ! ";
				HasAlarm = true;
			}
			msgpos += 1;
			AlarmHi = getValue(msgStr, msgpos);
			if (AlarmHi.charAt(AlarmHi.length() - 1) == 'H')
			{
				AlarmHi.remove(AlarmHi.length() - 1, 1);
				AlarmInfo += "Probe " + String(i + 1) + " Hi:  " + AlarmHi + " ! ";
				HasAlarm = true;
			}
			msgpos += 1;
		}  //for each probe, check alarms
		//reset alarms
		if (ResetTimeCheck > 0) { HasAlarm = false; }  //if we're already in alarm countdown, ignore alarm....
		if (HasAlarm)	{
			if (ResetAlarmSeconds > 0) { ResetTimeCheck = millis(); }
			else { ResetTimeCheck = 0; }   //reset alarm in x Seconds.
		MQTTLink.SendAlarm(AlarmInfo);
		ThingSpeak.SendAlarm(AlarmInfo);		
		}		
	}

	
}