-
Notifications
You must be signed in to change notification settings - Fork 9
/
sms_a.php
107 lines (88 loc) · 2.65 KB
/
sms_a.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
require("init.php");
require("funcoes.php");
//Loop para manter o script PHP rodando indefinidamente, com intervalos de 30 segundos
#principal_A();
while(1){
inicio:
//echo "\n----------- agua -----------<br>";
principal_A();
//echo "final de um ciclo<br>";
sleep(5);
goto inicio;
}
// funcao principal que controla as chamadas das funcoes de tratamento de filtro das msgs MQTT
function principal_A(){
//echo "\n<h1>inicio - ".date('d/m/Y H:i:s')."</h1>";
filtroPrimarioAgua();
#sleep(120);
//echo "\n<h1>passou pelo primario - ".date('d/m/Y H:i:s')."</h1>";
filtroSecundario('A');
#sleep(60);
//echo "\n<h1>passou pelo secundario - ".date('d/m/Y H:i:s')."</h1>";
//validaEnvioSMS();
alertaSMS('A');
//echo "\n<h1>recebeu os sms - ".date('d/m/Y H:i:s')."</h1>";
#sleep(30);
//echo "\n<h1>fim Agua - ".date('d/m/Y H:i:s')."</h1>";
}
function filtroPrimarioAgua(){
$q="SELECT id, dia_hora,
DATE_FORMAT(dia_hora,'%Y/%m/%d %H:%i:%s') as data_hora,
status,created_at, updated_at,
estado,cep,sensor, day(dia_hora) as dia
FROM sensores_agua
WHERE (status='' OR status IS NULL OR status <> 'T')
ORDER BY dia_hora ASC
LIMIT 1000
;";
$res = (new BD())->query($q);
$loop=false;
$regs=[];
$flags=[];
$count=count($res);
if($count > 2){
for($i=0; $i<$count-2; $i++){
$id_davez = $res[$i]['id'];
$atual_estado=$res[$i]['estado'];
$proximo_estado=$res[$i+1]['estado'];
$proximo_prox_estado=$res[$i+2]['estado'];
if($atual_estado==='D'){
$loop=false;
}
$atual_cep=$res[$i]['cep'];
$proximo_cep=$res[$i+1]['cep'];
$proximo_prox_cep=$res[$i+2]['cep'];
$atual_sensor=$res[$i]['sensor'];
$proximo_sensor=$res[$i+1]['sensor'];
$proximo_prox_sensor=$res[$i+2]['sensor'];
$cond1 = ($atual_estado==='L' && $proximo_estado==='L' && $proximo_prox_estado==='L');
$cond2 = ($atual_cep == $proximo_cep) && ($atual_cep == $proximo_prox_cep);
$cond3 = ($atual_sensor == $proximo_sensor) && ($atual_sensor == $proximo_prox_sensor);
if($cond1 && $cond2 && $cond3){
if(!$loop){
$regs[]=$res[$i];
}
$loop=true;
} else {
#echo "<br>NAAAOOO entrou ". implode(" - ",$res[$i]);
}
$flags[]=$id_davez;
}
#aqui neste caso vamos dar um tratamento para os 2 ultimos
$penultimo = $count-1;
$ultimo = $count-2;
$flags[]= $res[$ultimo]['id'];
$flags[]= $res[$penultimo]['id'];
atualizaFlags($flags,'T','sensores_agua');
if(is_array($regs)){
saveTriagem($regs,"A");
//var_dump($regs);
} else {
echo "Sem registros Triagem Agua";
}
} else {
echo "Aguardando Novas MSGS via MQTT".PHP_EOL;
//echo "Total Menor que 3 registros";
}
}