You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

677 lines
18 KiB

void processarBotoes()
{
char key = keypad.getKey();
if (key)
{
atividadeMillis = millis();
LOG(F("Tecla pressionada: "));
LOGLN(key);
switch (indiceMenu)
{
case 0:
{
/*
if((USE_RFID == true) && (configuracaoCompleta == true))
{
if(key == 'E')
{
iniciarMillis = millis();
setFont(MEDIUM, 7, 117, 132, 255, 255, 255);
myGLCD.print((char *)" Por favor identifique-se ", CENTER, 225);
iniciar = true;
}
}
else
{
if((key >= 48 ) && (key <= 57) && (quant_digitos < 4) && (configuracaoCompleta == true))
{
updateStr(key);
}
else if((key == 'E') && (quant_digitos > 3))
{
checkID();
}
else if ((key == 'L')) // Corrigir
{
quant_digitos = 0;
memset(ID_digitado, 0, sizeof(ID_digitado));
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect (350, 290, 450, 322); // Limpar senha
}
}
break;
*/
if(configuracaoCompleta == true) {
//Se digitou a senha e está liberado para senha atualiza a string da senha
if(menu1Enter && (key >= 48 ) && (key <= 57) && (quant_digitos < 4) && (configuracaoCompleta == true)) {
if (acesso.liberaSenha == true) {
updateStr(key);
}
} else if(key == 'E') {
//Se digitou a senha verifica se tem usuário com essa senha
//Se não digitou a senha vai para tag
if (quant_digitos > 0) {
senhaDigitada = true;
checkID();
} else {
senhaDigitada = false;
iniciarMillis = millis();
setFont(MEDIUM, 7, 117, 132, 255, 255, 255);
menu1Enter = true;
if (acesso.liberaTag == true && acesso.liberaSenha == true) {
myGLCD.print((char *)"Identifique-se com TAG ou SENHA", CENTER, 225);
iniciar = true;
} else if (acesso.liberaTag) {
myGLCD.print((char *)" Identifique-se com a TAG ", CENTER, 225);
iniciar = true;
} else if (acesso.liberaSenha) {
myGLCD.print((char *)" Identifique-se com a SENHA ", CENTER, 225);
} else {
myGLCD.print((char *)" ACESSO NAO CONFIGURADO ", CENTER, 225);
}
}
} else if (key == 'L') { // Corrigir
quant_digitos = 0;
memset(ID_digitado, 0, sizeof(ID_digitado));
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect (350, 290, 450, 340); // Limpar senha
}
}
/*
else {
if((key >= 48 ) && (key <= 57) && (quant_digitos < 4) && (configuracaoCompleta == true))
{
updateStr(key);
}
else if((key == 'E') && (quant_digitos > 3))
{
senhaDigitada = false;
checkID();
}
else if ((key == 'L')) // Corrigir
{
quant_digitos = 0;
memset(ID_digitado, 0, sizeof(ID_digitado));
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect (350, 290, 450, 322); // Limpar senha
}
}
*/
break;
}
case 1:
{
if(key == '1')
{
if((usuarioAdmin == true) && (adminMenu == true))
{
adminMenu = false;
if(acesso.veiculo == true)
{
indiceMenu = 2;
clearScreen(10, 90, 799, 479);
menu3(true);
//Se tem tela de veículo inicia o leitor de TAG
iniciar = true;
}
else
{
clearScreen(10, 186, 562, 330);
menu2(false);
}
}
else
{
if (acesso.qtdCanal > 0) {
tipocombustivel = 0;
if((calibrando == false) && (editarAcumulador == false))
{
indiceMenu = 3;
primeiraTela = true;
clearScreen(10, 90, 799, 479);
menu4(true);
}
else if(calibrando == true)
{
indiceMenu = 6;
clearScreen(10, 90, 799, 479);
menu7(true);
}
else
{
indiceMenu = 7;
clearScreen(10, 90, 799, 479);
menu8(true);
}
}
}
}
else if(key == '2')
{
if((usuarioAdmin == true) && (adminMenu == true))
{
adminMenu = false;
editarAcumulador = true;
clearScreen(10, 186, 562, 330);
menu2(false);
}
else
{
if (acesso.qtdCanal > 1) {
tipocombustivel = 1;
if((calibrando == false) && (editarAcumulador == false))
{
indiceMenu = 3;
primeiraTela = true;
clearScreen(10, 90, 799, 479);
menu4(true);
}
else if(calibrando == true)
{
indiceMenu = 6;
clearScreen(10, 90, 799, 479);
menu7(true);
}
else
{
indiceMenu = 7;
clearScreen(10, 90, 799, 479);
menu8(true);
}
}
}
}
else if(key == '3')
{
if((usuarioAdmin == true) && (adminMenu == true))
{
adminMenu = false;
calibrando = true;
clearScreen(10, 186, 562, 330);
menu2(false);
}
else
{
if (acesso.qtdCanal > 2) {
tipocombustivel = 2;
if((calibrando == false) && (editarAcumulador == false))
{
indiceMenu = 3;
primeiraTela = true;
clearScreen(10, 90, 799, 479);
menu4(true);
}
else if(calibrando == true)
{
indiceMenu = 6;
clearScreen(10, 90, 799, 479);
menu7(true);
}
else
{
indiceMenu = 7;
clearScreen(10, 90, 799, 479);
menu8(true);
}
}
}
}
else if (key == 'C') // VOLTAR
{
calibrando = false;
editarAcumulador = false;
indiceMenu = 0;
adminMenu = 0;
iniciar = false;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
break;
}
case 2:
{
if(acesso.liberaSenha == true) {
if((key >= 48 ) && (key <= 57) && (quant_digitos < 4))
{
updateStr(key);
}
else if((key == 'E') && (quant_digitos > 3))
{
senhaDigitada = true;
checkID();
}
else if ((key == 'L')) // LIMPAR
{
quant_digitos = 0;
memset(ID_digitado, 0, sizeof(ID_digitado));
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect (350, 290, 450, 340); // Limpar senha
}
}
if (key == 'C') // VOLTAR
{
indiceMenu = 0;
iniciar = false;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
break;
}
case 3:
{
if((key >= 48 ) && (key <= 57))
{
updateStr(key);
}
else if((key == 'E') && (quant_digitos > 0))
{
switch (tela)
{
case 0:
{
valorOdometro = atol(valorDigitado);
break;
}
case 1:
{
valorHorimetro = atol(valorDigitado);
break;
}
case 2:
{
operacaoID = atoi(valorDigitado);
break;
}
case 3:
{
talhaoID = atoi(valorDigitado);
break;
}
case 4:
{
safraID = atoi(valorDigitado);
break;
}
case 5:
{
rotaID = atoi(valorDigitado);
break;
}
default:
{
break;
}
}
tela++;
quant_digitos = 0;
if((tela == 0) || (tela == 1))
{
clearScreen(10, 90, 799, 383);
}
else
{
clearScreen(10, 90, 685, 383);
}
menu4(true);
}
else if(key == 'L')
{
memset(valorDigitado, 0, sizeof(valorDigitado));
if((tela == 0) || (tela == 1))
{
clearScreen(290, 234, 510, 282);
}
else
{
// clearScreen(322, 162, 685, 210);
setFont(LARGE, 0, 0, 255, 255, 255, 255);
myGLCD.print((char*)" ", 570, 220);
}
quant_digitos = 0;
}
else if (key == 'C') // VOLTAR
{
if(tela > 0)
{
tela--;
voltando = true;
quant_digitos = 0;
memset(valorDigitado, 0, sizeof(valorDigitado));
if((tela == 0) || (tela == 1))
{
clearScreen(10, 90, 799, 383);
myGLCD.setBackColor(255, 255, 255);
myGLCD.fillRect(690, 365, 786, 413);
}
else
{
clearScreen(10, 90, 685, 383);
}
menu4(true);
}
else
{
indiceMenu = 0;
tela = 0;
iniciar = 0;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
}
else if (key == 'D') // Desce
{
switch (tela)
{
case 2:
{
if((listaIndex + 7) < listaOperacao.numOperacoes)
{
listaIndex += 7;
menu4(false);
}
break;
}
case 3:
{
if((listaIndex + 7) < listaTalhao.numTalhoes)
{
listaIndex += 7;
menu4(false);
}
break;
}
case 4:
{
if((listaIndex + 7) < listaSafra.numSafras)
{
listaIndex += 7;
menu4(false);
}
break;
}
case 5:
{
if((listaIndex + 7) < listaRota.numRotas)
{
listaIndex += 7;
menu4(false);
}
break;
}
default:
{
break;
}
}
}
else if (key == 'S') // Sobe
{
if(listaIndex > 0)
{
listaIndex -= 7;
if(listaIndex < 0)
{
listaIndex = 0;
}
menu4(false);
}
}
break;
}
case 4:
{
if(key == 'E')
{
indiceMenu = 9;
tela = 0;
clearScreen(10, 90, 799, 479);
menu10(true);
}
else if(key == 'C')
{
indiceMenu = 0;
tela = 0;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
else if (key == 'S')
{
// if((resumoIndex > 4) &&
// ((acesso.safra == true) || (acesso.rota == true)))
// {
// completaResumo = false;
// resumoIndex = 0;
// clearScreen(50, 162, 685, 415);
// menu5(false);
// }
}
else if (key == 'D')
{
// if((resumoIndex > 3) && (completaResumo == false) &&
// ((acesso.safra == true) || (acesso.rota == true)))
// {
// completaResumo = true;
// clearScreen(50, 162, 685, 415);
// menu5(false);
// }
}
break;
}
case 5:
{
if(key == 'E')
{
terminado = true;
}
break;
}
case 6:
{
if((key == '0') && (calibracaoEmAndamento == false))
{
calibracaoEmAndamento = true;
clearScreen(10, 383, 799, 479);
setFont(BIG, 7, 117, 132, 255, 255, 255);
/*
myGLCD.print((char*)"Enter -> Concluir", 10, 447);
*/
myGLCD.print((char*)"Confirmar", 645, 415);
myGLCD.print((char*)"ENTER", 680, 447);
LOGLN(F("Enchendo o aferidor"));
LOG(F("Pino selecionado para a bomba: "));
LOGLN(bomba[tipocombustivel]);
LOG(F("Pino A selecionado para o sensor: "));
LOGLN(sensor_A[tipocombustivel]);
LOG(F("Pino B selecionado para o sensor: "));
LOGLN(sensor_B[tipocombustivel]);
LOG(F("K"));
LOG(tipocombustivel);
LOG(F(": "));
LOGLN(K[tipocombustivel]);
abastecimento();
}
else if((key == 'E') && (calibracaoEmAndamento == true))
{
salvarCalibracao = true;
terminado = true;
}
else if (key == 'C') // Cancelar
{
if(calibracaoEmAndamento == true)
{
calibrando = false;
terminado = true;
}
else
{
calibrando = false;
indiceMenu = 1;
if(usuarioAdmin == true)
{
adminMenu = true;
}
clearScreen(10, 90, 799, 479);
menu2(true);
}
}
break;
}
case 7:
{
if(((key >= 48 ) && (key <= 57)) || (key == '.'))
{
updateStr(key);
}
else if((key == 'E') && (quant_digitos > 0))
{
acumulador[tipocombustivel] = atof(novoAcumulador);
acumuladorSalvo.acumulador[tipocombustivel] = acumulador[tipocombustivel];
gravarAcumulador();
for(byte i = 0; i < 3; i++)
{
LOG(F("Acumulador "));
LOG(i);
LOG(F(": "));
LOGLN(acumulador[i]);
}
editarAcumulador = false;
indiceMenu = 0;
iniciar = false;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
else if(key == 'L')
{
clearScreen(120, 234, 670, 282);
quant_digitos = 0;
memset(novoAcumulador, 0, sizeof(novoAcumulador));
}
else if (key == 'C') // VOLTAR
{
memset(novoAcumulador, 0, sizeof(novoAcumulador));
editarAcumulador = false;
indiceMenu = 1;
if(usuarioAdmin == true)
{
adminMenu = true;
}
clearScreen(10, 90, 799, 479);
menu2(true);
}
break;
}
case 8:
{
if(key == '1')
{
completou = true;
respondeu = true;
}
else if(key == '2')
{
completou = false;
respondeu = true;
}
break;
}
case 9:
{
if(informarVolume == false)
{
if(key == '1')
{
informarVolume = true;
menu10(false);
}
else if(key == '2')
{
indiceMenu = 5;
clearScreen(10, 90, 799, 479);
menu6(true);
}
else if(key == 'C')
{
indiceMenu = 0;
iniciar = false;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
}
else
{
if(((key >= 48 ) && (key <= 57)) || (key == '.'))
{
updateStr(key);
}
else if(key == 'L')
{
quant_digitos = 0;
memset(strVolumeInformado, 0, sizeof(strVolumeInformado));
myGLCD.setColor(255, 255, 255);
myGLCD.fillRect (120, 234, 670, 282); // Limpar volume
}
else if((key == 'E') && (atof(strVolumeInformado) > 0))
{
volumeInformado = atof(strVolumeInformado);
indiceMenu = 5;
clearScreen(10, 90, 799, 479);
menu6(true);
}
else if(key == 'C')
{
indiceMenu = 0;
iniciar = false;
clearScreen(10, 90, 799, 479);
menuPrincipal(true);
}
}
break;
}
default:
{
break;
}
}
}
}