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
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; |
|
} |
|
} |
|
} |
|
} |