Example #1
0
/**
 * @breaf read the temperature on analog pins (10K termistor) and send sms with
 * teaded temperature
 *
 * @param smsc_nr: sms center number
 * 		  nrtel: number hu recive sms
 */
static void StareTMP(char *smsc_nr, char *nrtel)
{
	char mesage[64];
	char buffer[18];
	char tmpe[32];
	memset(mesage, 0, sizeof(mesage));
	memset(buffer, 0, sizeof(buffer));
	memset(tmpe, 0, sizeof(tmpe));
	int tmp, tmp1, tmp2;

	tmp = Thermistor(PC0);
	_delay_ms(30);
	tmp1 = Thermistor(PC0);
	_delay_ms(30);
	tmp2 = Thermistor(PC0);
	tmp = (tmp + tmp1 + tmp2) / 3;

	ReadEprom(buffer, 288); //18 * 16
	if (strlen(buffer) != 0)
	{
		sprintf(tmpe, "%s: %d %s", buffer, tmp, "C\r\n");
		strcat(mesage, tmpe);
	}

	tmp = Thermistor(PC1);
	_delay_ms(30);
	tmp1 = Thermistor(PC1);
	_delay_ms(30);
	tmp2 = Thermistor(PC1);
	tmp = (tmp + tmp1 + tmp2) / 3;

	ReadEprom(buffer, 306); //18 * 17
	if (strlen(buffer) != 0)
	{
		sprintf(tmpe, "%s: %d %s", buffer, tmp, "C\r\n");
		strcat(mesage, tmpe);
	}

	tmp = Thermistor(PC2);
	_delay_ms(30);
	tmp1 = Thermistor(PC2);
	_delay_ms(30);
	tmp2 = Thermistor(PC2);
	tmp = (tmp + tmp1 + tmp2) / 3;

	ReadEprom(buffer, 324); //18 * 18
	if (strlen(buffer) != 0)
	{
		sprintf(tmpe, "%s: %d %c", buffer, tmp, 'C');
		strcat(mesage, tmpe);
	}
	if (strlen(mesage) != 0)
		uart_sendsms(smsc_nr, nrtel, mesage);

}
Example #2
0
void StareTMP(char *nrtel)
{
	char mesage[120];
	char buffer[18];
	char tmpe[32];
	int tmp, tmp1, tmp2;

	tmp = Thermistor(PC0);
	delay(10);
	tmp1 = Thermistor(PC0);
	delay(10);
	tmp2 = Thermistor(PC0);
	tmp = (tmp + tmp1 + tmp2) / 3;

	ReadEprom(buffer, 18 * 18);
	if (strlen(buffer) != 0)
	{
		sprintf(tmpe, " %s: %d %s", buffer, tmp, "C\r\n");
		strcat(mesage, tmpe);
	}

	tmp = Thermistor(PC1);
	delay(10);
	tmp1 = Thermistor(PC1);
	delay(10);
	tmp2 = Thermistor(PC1);
	tmp = (tmp + tmp1 + tmp2) / 3;

	ReadEprom(buffer, 18 * 19);
	if (strlen(buffer) != 0)
	{
		sprintf(tmpe, " %s: %d %s", buffer, tmp, "C\r\n");
		strcat(mesage, tmpe);
	}

	tmp = Thermistor(PC2);
	delay(10);
	tmp1 = Thermistor(PC2);
	delay(10);
	tmp2 = Thermistor(PC2);
	tmp = (tmp + tmp1 + tmp2) / 3;

	ReadEprom(buffer, 18 * 20);
	if (strlen(buffer) != 0)
	{
		sprintf(tmpe, " %s: %d %c", buffer, tmp, 'C');
		strcat(mesage, tmpe);
	}
	if (strlen(mesage) != 0)
		SendSms(nrtel, mesage);

}
Example #3
0
int eepromParametersInit(void)
{
	UINT8 blank = 0;
	static UINT8 err_count = 0;
	start: ReadEprom(0, sizeof(blank), &blank);
	if (blank != 0xa5)
	{
		mprintf("empty eeprom found, writting default parameters!!!\r\n");
		blank = 0xa5;
		WriteEprom(1, sizeof(gParameters), (UINT8 *) &gParameters);
		WriteEprom(0, sizeof(blank), &blank);
		if (err_count++ > 10)
		{
			mprintf("sorry,eeprom error!!\r\n");
			return -1; //eeprom err!!!
		}
		goto start;
	}
	ReadEprom(1, sizeof(gParameters), (UINT8 *) &gParameters);
	return 0; 
}
Example #4
0
//write the sms string for commands
void Config(char *nrtel, char *inmsg)
{
	char buffer[18];
	int adr = 18;
	if ((strlen(nrtel) != 0) && (strlen(inmsg) != 0))
	{

		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[17])));
		if (strstr_P(inmsg, LOGIN) != 0)
		{
			eeprom_write_block(nrtel, (int*) adr, 18);
			CfgCmd(inmsg);

		}
		else
		{
			ReadEprom(buffer, 18);
			if (strcmp(nrtel, buffer) == 0)
				CfgCmd(inmsg);
		}
	}
}
Example #5
0
int self_test_eeprom(void)
{
	UINT8 data_ori[] =
	{
		0, 1, 2, 3, 4, 5, 6, 7, 8 };
	UINT8 i = 0, data_eeprom = 0;
	int err = CHECK_ERR_NONE;
	WriteEprom(EEPROM_ADDR_SELF_TEST, sizeof(data_ori), data_ori);
	for (i = 0; i < sizeof(data_ori); i++)
	{
		ReadEprom((UINT16) (EEPROM_ADDR_SELF_TEST + i), (UINT16) 1,
				&data_eeprom);
		if (i != data_eeprom)
		{
			mprintf("err eeprom self test!\r\n");
			err = CHECK_ERR;
		}
	}
	mprintf("eeprom self test success!!!");
	bms_setSlefDetResByType(SELF_DETECTION_EEPROM, err);
	return err;
}
Example #6
0
void loop()
{
// The loop function is called in an endless loop
	int id = 0;
	//int error = 0;			//error from function
	byte i = 0;
	if (delEEPROM)
		return;

	if (config)
	{
		if (Serial.available() > 0)
		{
			while (Serial.available() > 0)
			{
				sms_rx[i] = (Serial.read()); //read data
				i++;
			}
			sms_rx[i - 1] = 0;

			delay(5);
			//Serial.println(sms_rx);
			if (strstr_P(sms_rx, PSTR("citeste")) != 0)
			{
				for (int i = 0; i <= 512; i += 18)
					ReadEprom(sms_rx, i);
			}
			else if (strlen(sms_rx) != 0)
				if (!CfgCmd(sms_rx))
					Serial.println("ERROR");
			*sms_rx = 0x00;
		}

		else
		{
			id = Check_SMS();
			if (id == GETSMS_AUTH_SMS || id == GETSMS_NOT_AUTH_SMS)
				Config(number, sms_rx);
			*sms_rx = 0x00;
			id = 0;
		}
		//test SIM900 module up
		if (AT_RESP_OK == gsm.SendATCmdWaitResp("AT", 500, 100, "OK", 5))
			PORTB &= ~(1 << PINB5);			//ERROR LED off
		else PORTB |= (1 << PINB5);			//ERROR LED on

		//XXX feeding the dog
		wdt_reset();
	}
	else
	{
		VerificIN();
		id = Check_SMS();
		//Serial.println(id);
		if (id == GETSMS_AUTH_SMS)
			Comand(number, sms_rx);
		else if (id == GETSMS_NOT_AUTH_SMS)
		{
			//Check if receive a pas
			char buffer[64];
			ReadEprom(buffer, 18 * 24);
			if (strcmp(buffer, sms_rx) == 0)
			{
				//write number on sim
				uint8_t nr_pfonnr = 1;	//hold number of phone number on sim
				char tmpnr[20];
				for (byte i = 1; i < 7; i++)
				{
					if (1 == gsm.GetPhoneNumber(i, tmpnr))
						++nr_pfonnr;	//Find number in specified position
					else
						break;
				}

				if (nr_pfonnr < 7) //max 6 number
				{
					if (gsm.WritePhoneNumber(nr_pfonnr, number) != 0)
					{
#ifndef DEBUG_GSMRX
						sprintf_P(buffer, PSTR("%s writed at position %d"),
								number, nr_pfonnr);
						Serial.println(buffer);
#endif
						//++nr_pfonnr;
						strcpy_P(buffer, PSTR("Acceptat"));
						gsm.SendSMS(number, buffer);

					}
					else
					{
						strcpy_P(buffer, PSTR("ERROR"));
						Serial.println(buffer);
						gsm.SendSMS(number, buffer);
					}
				}
				else
				{
					strcpy_P(buffer, PSTR("Nu slot"));
					gsm.SendSMS(number, buffer);
				}
			}
		}
		*number = 0x00;
		*sms_rx = 0x00;
		id = 0;

	}
	//XXX feeding the dog
	wdt_reset();

	//test SIM900 module up
	if (AT_RESP_OK == gsm.SendATCmdWaitResp("AT", 500, 100, "OK", 5))
		PORTB &= ~(1 << PINB5);			//ERROR LED off
	else PORTB |= (1 << PINB5);			//ERROR LED on

	delay(50);
}
Example #7
0
void VerificIN()
{
	//char mesage[80];
	char nrtel[18];
	char buffer[18];

	if ((PINB & (1 << PB0)) == 0)
	{
		if (in1)
		{
			ReadEprom(nrtel, 18);
			in1 = false;
			ReadEprom(buffer, 18 * 2);
			if (strlen(buffer) != 0)
				SendSms(nrtel, buffer);
		}
	}
	else
		in1 = true;

	//if (digitalRead(inD2) == LOW && in2)
	if ((PINB & (1 << PB1)) == 0)
	{
		if (in2)
		{
			ReadEprom(nrtel, 18);
			in2 = false;
			ReadEprom(buffer, 18 * 3);
			if (strlen(buffer) != 0)
				SendSms(nrtel, buffer);
		}
	}
	else
		in2 = true;

	//if (digitalRead(inD3) == LOW && in3)
	if ((PINB & (1 << PB2)) == 0)
	{
		if (in3)
		{
			ReadEprom(nrtel, 18);
			in3 = false;
			ReadEprom(buffer, 18 * 4);
			if (strlen(buffer) != 0)
				SendSms(nrtel, buffer);
		}
	}
	else
		in3 = true;

	//if (digitalRead(inD4) == LOW && in4)
	if ((PINB & (1 << PB3)) == 0)
	{
		if (in4)
		{
			ReadEprom(nrtel, 18);
			in4 = false;
			ReadEprom(buffer, 18 * 5);
			if (strlen(buffer) != 0)
				SendSms(nrtel, buffer);
		}
	}
	else
		in4 = true;

}
Example #8
0
void StareOUT(char *nrtel)
{
	char mesage[120];
	char buffer[18];
	//int i = 108;
	*mesage = 0x00;
	//if (digitalRead(outD1) == LOW)
	if ((PIND & (1 << PD2)) == 0)
	{
		ReadEprom(buffer, 18 * 6);
		//Serial.print(strlen(buffer));
		//Serial.println(buffer);

		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\n\r"));
		}

	}
	else
	{
		ReadEprom(buffer, 18 * 7);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\n\r"));
		}
	}

	//if (digitalRead(outD2) == LOW)
	if ((PIND & (1 << PD3)) == 0)
	{
		ReadEprom(buffer, 18 * 8);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}
	else
	{
		ReadEprom(buffer, 18 * 9);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}

	//if (digitalRead(outD3) == LOW)
	if ((PIND & (1 << PD4)) == 0)
	{
		ReadEprom(buffer, 18 * 10);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}
	else
	{
		ReadEprom(buffer, 18 * 11);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}

	//if (digitalRead(outD4) == LOW)
	if ((PIND & (1 << PD5)) == 0)
	{
		ReadEprom(buffer, 18 * 12);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}
	else
	{
		ReadEprom(buffer, 18 * 13);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}

	//if (digitalRead(outD5) == LOW)
	if ((PIND & (1 << PD6)) == 0)
	{
		ReadEprom(buffer, 18 * 14);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}
	else
	{
		ReadEprom(buffer, 18 * 15);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			//strcat(mesage, "\n");
		}
	}

	if ((PIND & (1 << PD7)) == 0)
	{
		ReadEprom(buffer, 18 * 16);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			strcat_P(mesage, PSTR("\r\n"));
		}
	}
	else
	{
		ReadEprom(buffer, 18 * 17);
		if (strlen(buffer) != 0)
		{
			strcat(mesage, buffer);
			//strcat(mesage, "\n");
		}
	}

	if (strlen(mesage) != 0)
		SendSms(nrtel, mesage);
}
Example #9
0
/*
 void DellPass()
 {
 for (int i = 18 * 19; i < 18 * 20; i++)
 EEPROM.update(i, 0);
 }
 */
void Comand(char *nrtel, char *inmsg)
{
	char buffer[24];
	char OK[3] = "OK";
	//bool cmdok = false;
	ReadEprom(buffer, 18);
	if (strcmp(nrtel, buffer) == 0)
	{

		ReadEprom(buffer, 18 * 6);
		//Serial.println(strcasecmp(buffer, inmsg));
		//if (strstr(inmsg,buffer) != 0)
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD1, LOW);
			PORTD &= ~(1 << PD2);
			eeprom_update_byte((uint8_t*) 379, 0);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 7);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD1, HIGH);
			PORTD |= (1 << PD2);
			eeprom_update_byte((uint8_t*) 379, 1);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 8);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD2, LOW);
			PORTD &= ~(1 << PD3);
			eeprom_update_byte((uint8_t*) 380, 0);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 9);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD2, HIGH);
			PORTD |= (1 << PD3);
			eeprom_update_byte((uint8_t*) 380, 1);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 10);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD3, LOW);
			PORTD &= ~(1 << PD4);
			eeprom_update_byte((uint8_t*) 381, 0);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 11);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD3, HIGH);
			PORTD |= (1 << PD4);
			eeprom_update_byte((uint8_t*) 381, 1);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 12);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD4, LOW);
			PORTD &= ~(1 << PD5);
			eeprom_update_byte((uint8_t*) 382, 0);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 13);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD4, HIGH);
			PORTD |= (1 << PD5);
			eeprom_update_byte((uint8_t*) 382, 1);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 14);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD5, LOW);
			PORTD &= ~(1 << PD6);
			eeprom_update_byte((uint8_t*) 383, 0);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 15);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD5, HIGH);
			PORTD |= (1 << PD6);
			eeprom_update_byte((uint8_t*) 383, 1);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 16);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD5, LOW);
			PORTD &= ~(1 << PD7);
			eeprom_update_byte((uint8_t*) 384, 0);
			SendSms(nrtel, OK);
			return;
		}

		ReadEprom(buffer, 18 * 17);
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD5, HIGH);
			PORTD |= (1 << PD7);
			eeprom_update_byte((uint8_t*) 384, 1);
			SendSms(nrtel, OK);
			return;
		}

		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[18])));
		//if (strcasecmp(buffer, inmsg) == 0)
		if (strcasecmp_P(inmsg, STARE_OUT) == 0)
		{
			StareOUT(nrtel);
			return;
		}
		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[19])));
		//if (strcasecmp(buffer, inmsg) == 0)
		if (strcasecmp_P(inmsg, STARE_TMP) == 0)
		{
			StareTMP(nrtel);
			return;
		}

		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[20])));
		//if (strcasecmp(buffer, inmsg) == 0)
		if (strcasecmp_P(inmsg, STARE_ALL) == 0)
		{
			StareOUT(nrtel);
			StareTMP(nrtel);
			return;
		}

		ReadEprom(buffer, 486);
		SendSms(nrtel, buffer);
		return;
	}
	else
	{
		ReadEprom(buffer, 18 * 21);
		if (strcmp(buffer, inmsg) == 0)
		{
			eeprom_write_block(nrtel, (int*) 18, 18);
			strcpy_P(buffer, LOGIN);
			SendSms(nrtel, buffer);
		}
	}
}
Example #10
0
void VerificIN()
{
	char smsc_nr[18];
	char nrtel[18];
	char buffer[18];
	memset(nrtel, 0, sizeof(nrtel));
	memset(buffer, 0, sizeof(buffer));
	memset(smsc_nr, 0, sizeof(smsc_nr));

	if ((PINB & (1 << PB0)) == 0)
	{
		if (in1)
		{
			ReadEprom(smsc_nr, 360);
			ReadEprom(nrtel, 18);
			in1 = 0;
			ReadEprom(buffer, 36);	//18*2
			if (strlen(buffer) != 0)
				uart_sendsms(smsc_nr, nrtel, buffer);
		}
	}
	else
		in1 = 1;

	if ((PINB & (1 << PB1)) == 0)
	{
		if (in2)
		{
			ReadEprom(smsc_nr, 360);
			ReadEprom(nrtel, 18);
			in2 = 0;
			ReadEprom(buffer, 54);	//18*3
			if (strlen(buffer) != 0)
				uart_sendsms(smsc_nr, nrtel, buffer);
		}
	}
	else
		in2 = 1;

	if ((PINB & (1 << PB2)) == 0)
	{
		if (in3)
		{
			ReadEprom(smsc_nr, 360);
			ReadEprom(nrtel, 18);
			in3 = 0;
			ReadEprom(buffer, 72);	//18 * 4
			if (strlen(buffer) != 0)
				uart_sendsms(smsc_nr, nrtel, buffer);
		}
	}
	else
		in3 = 1;

	if ((PINB & (1 << PB3)) == 0)
	{
		if (in4)
		{
			ReadEprom(smsc_nr, 360);
			ReadEprom(nrtel, 18);
			in4 = 0;
			ReadEprom(buffer, 90);	//18*5
			if (strlen(buffer) != 0)
				uart_sendsms(smsc_nr, nrtel, buffer);
		}
	}
	else
		in4 = 1;
}
Example #11
0
static void StareOUT(char *smsc_nr, char *nrtel)
{
	char mesage1[60];
	char mesage2[60];
	char buffer[18];
	memset(mesage1, 0, sizeof(mesage1));
	memset(mesage2, 0, sizeof(mesage2));
	memset(buffer, 0, sizeof(buffer));

	//int i = 108;
	//if (digitalRead(outD1) == LOW)
	if ((PIND & (1 << PD2)) == 0)
	{
		ReadEprom(buffer, 108);
		if (strlen(buffer) != 0)
		{
			strcat(mesage1, buffer);
			strcat(mesage1, "\n\r");
		}

		//i += 18;
	}
	else
	{
		ReadEprom(buffer, 126);
		if (strlen(buffer) != 0)
		{
			strcat(mesage1, buffer);
			strcat(mesage1, "\n\r");
		}
	}

	//if (digitalRead(outD2) == LOW)
	if ((PIND & (1 << PD3)) == 0)
	{
		ReadEprom(buffer, 144);
		if (strlen(buffer) != 0)
		{
			strcat(mesage1, buffer);
			strcat(mesage1, "\n\r");
		}
	}
	else
	{
		ReadEprom(buffer, 162);
		if (strlen(buffer) != 0)
		{
			strcat(mesage1, buffer);
			strcat(mesage1, "\n\r");
		}
	}

	//if (digitalRead(outD3) == LOW)
	if ((PIND & (1 << PD4)) == 0)
	{
		ReadEprom(buffer, 180);
		if (strlen(buffer) != 0)
		{
			strcat(mesage1, buffer);
			strcat(mesage1, "\n\r");
		}
	}
	else
	{
		ReadEprom(buffer, 198);
		if (strlen(buffer) != 0)
		{
			strcat(mesage1, buffer);
			strcat(mesage1, "\n\r");
		}
	}

	//if (digitalRead(outD4) == LOW)
	if ((PIND & (1 << PD5)) == 0)
	{
		ReadEprom(buffer, 216);
		if (strlen(buffer) != 0)
		{
			strcat(mesage2, buffer);
			strcat(mesage2, "\n\r");
		}
	}
	else
	{
		ReadEprom(buffer, 234);
		if (strlen(buffer) != 0)
		{
			strcat(mesage2, buffer);
			strcat(mesage2, "\n\r");
		}
	}

	//if (digitalRead(outD5) == LOW)
	if ((PIND & (1 << PD6)) == 0)
	{
		ReadEprom(buffer, 252);
		if (strlen(buffer) != 0)
		{
			strcat(mesage2, buffer);
			strcat(mesage2, "\n\r");
		}
	}
	else
	{
		ReadEprom(buffer, 270);
		if (strlen(buffer) != 0)
		{
			strcat(mesage2, buffer);
			//strcat(mesage, "\n");
		}
	}
	if (strlen(mesage1) != 0)
		uart_sendsms(smsc_nr, nrtel, mesage1);
	if (strlen(mesage2) != 0)
		uart_sendsms(smsc_nr, nrtel, mesage2);
}
Example #12
0
/**
 * @breaf execut sms commands
 *
 * @param nrtel: pfon number
 * 		  inmsg: sms command
 */
void Comand(char *nrtel, char *inmsg)
{
	char buffer[18];
	memset(buffer, 0, sizeof(buffer));
	char OK[3] = "OK";
	char smsc_num[18];
	memset(smsc_num, 0, sizeof(smsc_num));
	//bool cmdok = false;
	ReadEprom(buffer, 18);
	ReadEprom(smsc_num, 360);

	if (strcmp(nrtel, buffer) == 0)
	{

		ReadEprom(buffer, 108);	//18 * 6
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD1, LOW);
			PORTD &= ~(1 << PD2);
			eeprom_update_byte((uint8_t*) 379, 0);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 126);	//18 * 7
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD1, HIGH);
			PORTD |= (1 << PD2);
			eeprom_update_byte((uint8_t*) 379, 1);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 144);	//18 * 8
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD2, LOW);
			PORTD &= ~(1 << PD3);
			eeprom_update_byte((uint8_t*) 380, 0);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 162);	//18 * 9
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD2, HIGH);
			PORTD |= (1 << PD3);
			eeprom_update_byte((uint8_t*) 380, 1);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 180);	//18 * 10
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD3, LOW);
			PORTD &= ~(1 << PD4);
			eeprom_update_byte((uint8_t*) 381, 0);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 198);	//18 * 11
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD3, HIGH);
			PORTD |= (1 << PD4);
			eeprom_update_byte((uint8_t*) 381, 1);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 216);	//18 * 12
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD4, LOW);
			PORTD &= ~(1 << PD5);
			eeprom_update_byte((uint8_t*) 382, 0);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 234);	//18 * 13
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD4, HIGH);
			PORTD |= (1 << PD5);
			eeprom_update_byte((uint8_t*) 382, 1);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 252);	//18 * 14
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD5, LOW);
			PORTD &= ~(1 << PD6);
			eeprom_update_byte((uint8_t*) 383, 0);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		ReadEprom(buffer, 270);	//18 * 15
		if (strcasecmp(buffer, inmsg) == 0)
		{
			//digitalWrite(outD5, HIGH);
			PORTD |= (1 << PD6);
			eeprom_update_byte((uint8_t*) 383, 1);
			uart_sendsms(smsc_num, nrtel, OK);
			return;
		}

		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[18])));
		//if (strcasecmp(buffer, inmsg) == 0)
		if (strcasecmp_P(inmsg, STARE_OUT) == 0)
		{
			StareOUT(smsc_num, nrtel);
			return;
		}
		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[19])));
		//if (strcasecmp(buffer, inmsg) == 0)
		if (strcasecmp_P(inmsg, STARE_TMP) == 0)
		{
			StareTMP(smsc_num, nrtel);
			return;
		}

		//strcpy_P(buffer, (char*) pgm_read_word(&(comenzi[20])));
		//if (strcasecmp(buffer, inmsg) == 0)
		if (strcasecmp_P(inmsg, STARE_ALL) == 0)
		{
			StareTMP(smsc_num, nrtel);
			StareOUT(smsc_num, nrtel);
			return;
		}

		ReadEprom(buffer, 486);
		uart_sendsms(smsc_num, nrtel, buffer);
		return;
	}
	else
	{
		ReadEprom(buffer, 342);	//18 * 19
		if (strcmp(buffer, inmsg) == 0)
		{
			eeprom_write_block(nrtel, (int*) 18, 18);
			strcpy_P(buffer, LOGIN);
			uart_sendsms(smsc_num, nrtel, buffer);
		}
	}
}
Example #13
0
static int readAlleepromParameters(void)
{
	ReadEprom(1, sizeof(gParameters), (UINT8 *) &gParameters);
	return 0;
}