You are on page 1of 4

void serialEvent()

{
int prm_idx = 0;
char bchar;

bchar =Serial.peek();

if ((bchar == 'C') or (bchar == 'N') or (bchar == 'S'))


{
while ((bchar != '\n')and(prm_idx < 150))
{
if(Serial.available())
{
bchar = (char)Serial.read();
CH_Prm[prm_idx]=bchar;
prm_idx ++;
Buzzer(1);
}
}
CH_Prm[prm_idx-1]='\0';
LoadPrm();
}
else
{
while(Serial.available()) {Serial.read();}
}
}

void LoadPrm()
{
String BT_Param;
uint16_t eeAdd = 0;
uint8_t eePut = 0;
uint8_t eeMax = 0;
uint8_t lenprm = strlen(CH_Prm)-3;

// Put Char Data


if (CH_Prm[0]=='C')
{ if(CH_Prm[1]=='M' and CH_Prm[2]=='N') {eeAdd = 55; eeMax=74;}
else if(CH_Prm[1]=='N' and CH_Prm[2]=='1') {eeAdd = 130; eeMax=149;}
else if(CH_Prm[1]=='N' and CH_Prm[2]=='2') {eeAdd = 280; eeMax=149;}
else if(CH_Prm[1]=='N' and CH_Prm[2]=='3') {eeAdd = 430; eeMax=149;}
else if(CH_Prm[1]=='S' and CH_Prm[2]=='M') {eeAdd = 580; eeMax=149;}
else if(CH_Prm[1]=='J' and CH_Prm[2]=='M') {eeAdd = 730; eeMax=149;}

int eeCount =0;


while((eeCount<= lenprm) and (eeCount < eeMax))
{
EEPROM.update(eeAdd+eeCount,CH_Prm[3+eeCount]);
eeCount++;
}
EEPROM.update(eeAdd+eeCount,'\0');
}

// Put Numeric Data


else if (CH_Prm[0] =='N')
{
BT_Param = String(CH_Prm);

if(BT_Param.substring(1,3).equals("LA")) {eeAdd = 1 ; eePut=1;}


else if(BT_Param.substring(1,3).equals("LO")) {eeAdd = 5 ; eePut=1;}
else if(BT_Param.substring(1,3).equals("AL")) {eeAdd = 9 ; eePut=1;}
else if(BT_Param.substring(1,3).equals("TZ")) {eeAdd = 13; eePut=1;}
else if(BT_Param.substring(1,3).equals("MT")) {eeAdd = 17; eePut=2;}
else if(BT_Param.substring(1,3).equals("BL")) {eeAdd = 18; eePut=2;}
else if(BT_Param.substring(1,3).equals("IH")) {eeAdd = 19; eePut=2;}
else if(BT_Param.substring(1,3).equals("SO")) {eeAdd = 20; eePut=2;}
else if(BT_Param.substring(1,3).equals("JM")) {eeAdd = 21; eePut=2;}
else if(BT_Param.substring(1,3).equals("I1")) {eeAdd = 22; eePut=2;}
else if(BT_Param.substring(1,3).equals("I4")) {eeAdd = 23; eePut=2;}
else if(BT_Param.substring(1,3).equals("I5")) {eeAdd = 24; eePut=2;}
else if(BT_Param.substring(1,3).equals("I6")) {eeAdd = 25; eePut=2;}
else if(BT_Param.substring(1,3).equals("I7")) {eeAdd = 26; eePut=2;}
else if(BT_Param.substring(1,3).equals("BZ")) {eeAdd = 27; eePut=2;}

else if(BT_Param.substring(1,3).equals("SI")) {eeAdd = 28; eePut=2;}

else if(BT_Param.substring(1,3).equals("ST")) {eeAdd = 29; eePut=2;}

else if(BT_Param.substring(1,3).equals("SU")) {eeAdd = 30; eePut=2;}

else if(BT_Param.substring(1,3).equals("CH")) {eeAdd = 31; eePut=3;}


//update
else if(BT_Param.substring(1,3).equals("II")) {eeAdd = 32; eePut=3;}
else if(BT_Param.substring(1,3).equals("IS")) {eeAdd = 33; eePut=3;}
else if(BT_Param.substring(1,3).equals("IL")) {eeAdd = 34; eePut=3;}
else if(BT_Param.substring(1,3).equals("IA")) {eeAdd = 35; eePut=3;}
else if(BT_Param.substring(1,3).equals("IM")) {eeAdd = 36; eePut=3;}

if(eePut == 1)
{
EEPROM.put(eeAdd,BT_Param.substring(3,BT_Param.length()).toFloat());
}
if(eePut == 2)
{
EEPROM.put(eeAdd,
(uint8_t)BT_Param.substring(3,BT_Param.length()).toInt());
}
if(eePut == 3) // put uint8_t
{
EEPROM.put(eeAdd,
(int8_t)BT_Param.substring(3,BT_Param.length()).toInt());
}

}
else
if (CH_Prm[0]=='S' and CH_Prm[1]=='D' and CH_Prm[2]=='T')
{
BT_Param = String(CH_Prm);
Clock.setClockMode(false);
Clock.setDate(byte(BT_Param.substring(3,5).toInt()));
Clock.setMonth(byte(BT_Param.substring(5,7).toInt()));
Clock.setYear(byte(BT_Param.substring(7,9).toInt()));
Clock.setHour(byte(BT_Param.substring(9,11).toInt()));
Clock.setMinute(byte(BT_Param.substring(11,13).toInt()));
Clock.setSecond(byte(BT_Param.substring(13,15).toInt()));
Clock.setDoW(byte(BT_Param.substring(15,16).toInt()));
}
// Get New/updeted parameter*/
GetPrm();
}

void GetPrm()
{
// Serial.println("Get parameter");
// Get Parameter and check
EEPROM.get(0, Prm);
if(Prm.state != 0) //check value of Prm State .. set Default
{
set_default_prm();
}
if (now.year() < 2018)//check date time .. less than 1 jan 2018 set Default
{
set_default_time();
}
Iqomah[1]=Prm.I1;
Iqomah[4]=Prm.I4;
Iqomah[5]=Prm.I5;
Iqomah[6]=Prm.I6;
Iqomah[7]=Prm.I7;
// user New Parameter
setBrightness(int(Prm.BL));
update_All_data();
// SendPrm();
}

void set_default_prm()
{
// Put Parameter start form addr 500
Prm = (struct_param){0,-
6.139524,106.40256,45,7,1,10,2,0,0,0,0,0,0,0,1,1,0,0};
EEPROM.put(0,Prm);
EEPROM.put(55, "AASSALAMUALLAIKUM WR.WB.\0");
EEPROM.put(55, "KERJAKAN SHOLAT DI AWAL WAKTU\0");
EEPROM.put(130, "SHOLAT ADALAH TIANG AGAMA\0");
EEPROM.put(280,"BAHAGIAKAN KELUARGA\0");
EEPROM.put(430,"HARTA TERINDAH ADALAH KELUARGA\0");
EEPROM.put(580,"SHOLAT\0");
EEPROM.put(730,"SHOLAT\0");

void set_default_time()
{
Clock.setClockMode(false); // set to 24h
Clock.setYear(byte(18));
Clock.setMonth(byte(1));
Clock.setDate(byte(1));
Clock.setDoW(byte(2));
Clock.setHour(byte(12));
Clock.setMinute(byte(0));
Clock.setSecond(byte(0));
Clock.turnOffAlarm(1);
Clock.turnOffAlarm(2);
}

You might also like