PageRenderTime 54ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 1ms

/c/control.php

https://bitbucket.org/miguelBarahona/lemcontrol_version_asincrona_local
PHP | 4165 lines | 3780 code | 158 blank | 227 comment | 807 complexity | 9e1e63df4c210b55a9d6bdbe5a48dc0f MD5 | raw file
Possible License(s): Apache-2.0
  1. <?php
  2. /*version 2.1 modulo test*/
  3. include("bd.php");
  4. include("function_test.php");
  5. if (!empty($_GET['c'])) {
  6. $paquete2 = $_GET['c'];
  7. }
  8. $date1 = new DateTime("now");
  9. $date1 = $date1->format('Y-m-d H:i:s');
  10. //date_format($date1,'Y-m-d H:i:s');
  11. $campos = SpecialSplit($paquete2);
  12. //sleep(20);
  13. if($campos[0] == 0){
  14. $sql = "UPDATE control_riego set intentos_reset = 0 WHERE id_nodo = $campos[1]";
  15. $consulta = mysql_query($sql, $conEmp);
  16. }
  17. $sql = "SELECT red FROM nodo WHERE id_nodo = $campos[1]";
  18. $resEmp2 = mysql_query($sql, $conEmp);
  19. $objeto = mysql_num_rows($resEmp2);
  20. if ($datatmp = mysql_fetch_array($resEmp2)) {
  21. $red = $datatmp['red'];
  22. }
  23. function dateDiff($start, $end) {
  24. $start_ts = strtotime($start);
  25. $end_ts = strtotime($end);
  26. $diff = $end_ts - $start_ts;
  27. return round($diff / 3600);
  28. }
  29. function respuesta_lembox($n_orden_riego_sector,$estado){
  30. global $conEmp;
  31. global $fp;
  32. $sql_lembox = "select tipo,id_sector from programacion_riego where n_orden_riego_sector = $n_orden_riego_sector";
  33. $resEmp_lembox = mysql_query($sql_lembox, $conEmp);
  34. if ($datatmp_lembox= mysql_fetch_array($resEmp_lembox)) {
  35. $id_sector_lembox = $datatmp_lembox['id_sector'];
  36. $tipo_riego = $datatmp_lembox['tipo'];
  37. if($tipo_riego == 'm'){
  38. $sql_lembox2 = "select Px,id_nodo,id_sensor from sector_riego where id_sector = $id_sector_lembox";
  39. $resEmp_lembox2 = mysql_query($sql_lembox2, $conEmp);
  40. if ($datatmp_lembox2= mysql_fetch_array($resEmp_lembox2)) {
  41. $px_lembox = $datatmp_lembox2['Px'];
  42. $id_nodo_lembox = $datatmp_lembox2['id_nodo'];
  43. $id_sensor_lembox = $datatmp_lembox2['id_sensor'];
  44. $sql_lembox5 = "select direccion from nodo where id_nodo = $id_nodo_lembox";
  45. $resEmp_lembox5 = mysql_query($sql_lembox5, $conEmp);
  46. if ($datatmp_lembox5 = mysql_fetch_array($resEmp_lembox5)) {
  47. $direccion_lembox = $datatmp_lembox5['direccion'];
  48. }
  49. $sql_lembox3 = "select tipo from sensor where id_sensor = $id_sensor_lembox";
  50. $resEmp_lembox3 = mysql_query($sql_lembox3, $conEmp);
  51. if ($datatmp_lembox3 = mysql_fetch_array($resEmp_lembox3)) {
  52. $tipo_lembox = $datatmp_lembox3['tipo'];
  53. if($tipo_lembox == 'p0'){$n_puero = 1000 * 0;}
  54. if($tipo_lembox == 'p1'){$n_puero = 1000 * 1;}
  55. if($tipo_lembox == 'p2'){$n_puero = 1000 * 2;}
  56. $px_lembox = $px_lembox -1;
  57. $pin_elevado = pow(2, $px_lembox);
  58. $n_orden_lembox = $n_puero + $pin_elevado;
  59. $sql_lembox4 = "select intentos,estado,n_orden_riego_sector from transmisor_programacion where n_orden_riego_sector = $n_orden_riego_sector order by id desc limit 1";
  60. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  61. if ($datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)){
  62. $intentos = $datatmp_lembox4['intentos'];
  63. $estado_riego_transmisor = $datatmp_lembox4['estado'];
  64. $n_orden_riego_sector = $datatmp_lembox4['n_orden_riego_sector'];
  65. if($intentos <= 3 && $estado_riego_transmisor==0){
  66. echo "<ctr>".$n_orden_lembox.":".$id_nodo_lembox.":0:0:0:".$estado.":".$n_orden_riego_sector.":".$direccion_lembox."</ctr>";
  67. fputs($fp, "<ctr>".$n_orden_lembox.":".$id_nodo_lembox.":0:0:0:".$estado.":".$n_orden_riego_sector.":".$direccion_lembox."</ctr>" . "+" . $campos[0] . "+" . $campos[1] . "+" . $campos[2] . "\r\n"); //david
  68. $intentos++;
  69. $sql = "UPDATE transmisor_programacion set intentos = $intentos WHERE n_orden_riego_sector = $n_orden_riego_sector";
  70. $consulta = mysql_query($sql, $conEmp);
  71. exit;
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }
  78. }
  79. function curl($url) {
  80. $ch = curl_init();
  81. curl_setopt($ch, CURLOPT_URL, $url);
  82. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  83. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  84. curl_setopt($ch, CURLOPT_TIMEOUT, 3);
  85. $data = curl_exec($ch);
  86. curl_close($ch);
  87. return $data;
  88. }
  89. function test_valve(){
  90. global $conEmp;
  91. global $campos;
  92. $id_nodo_prueba=$campos[1];
  93. $estado_prueba=$campos[3];
  94. $queEmp = "SELECT tipo_nodo,direccion,operativa from nodo where id_nodo=$id_nodo_prueba";
  95. $resEmp = mysql_query($queEmp, $conEmp);
  96. $totEmp = mysql_num_rows($resEmp);
  97. if($datatmp = mysql_fetch_array($resEmp)) {
  98. $tipo_nodo_prueba=$datatmp['tipo_nodo'];
  99. $direccion_nodo_prueba=$datatmp['direccion'];
  100. $operativa=$datatmp['operativa'];
  101. }
  102. if($operativa==2){
  103. echo mensaje_testing($estado_prueba,$id_nodo_prueba,$tipo_nodo_prueba,$direccion_nodo_prueba);
  104. exit();
  105. }
  106. }
  107. function SpecialSplit($paquete2) {
  108. $j = 0;
  109. $sCount = 0;
  110. for ($i = 0; $i < strlen($paquete2); $i++) {
  111. if (($paquete2[$i] == ' ' || $paquete2[$i] == '-' || $paquete2[$i] == '+') && $i != $j) {
  112. $campos[$sCount] = trim(substr($paquete2, $j, $i - $j));
  113. if (trim($campos[$sCount]) == "nan") {
  114. $campos[$sCount] = -1000;
  115. }
  116. $j = $i;
  117. $campos[$sCount] = (float) $campos[$sCount];
  118. $sCount++;
  119. }
  120. }
  121. $campos[$sCount] = substr($paquete2, $j, $i - $j);
  122. if (trim($campos[$sCount]) == "nan") {
  123. $campos[$sCount] = -1000;
  124. }
  125. $campos[$sCount] = (float) $campos[$sCount];
  126. return ($campos);
  127. }
  128. function crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos) {//Listo
  129. $riego[] = array('fecha_consulta' => $fecha_consulta, 'n_orden_riego_sector' => $n_orden_riego_sector, 'tipoRiego' => $tipoRiego, 'pulsos' => $pulsos, 'pulso_acumulado' => $pulso_acumulado,
  130. 'r_fecha_ini' => $r_fecha_ini, 'r_fecha_fin' => $r_fecha_fin, 'p_fecha_ini' => $date2, 'p_fecha_fin' => $date3, 'id_programacion_riego' => $id_programacion_riego,
  131. 'id_sector' => $id_sector, 'id_nodo' => $id_nodo, 'id_empresa' => $id_empresa, 'id_subriego' => $id_subriego, 'sector' => $sector, 'estado' => $estado, 'ultimo_pulso' => $ultimo_pulso, 'prioridad' => $prioridad, 'intentos' => $intentos, 'intentostotales' => $intentos + 1, 'fechaIntentos' => $fechaIntentos, 'tipoRiego' => $tipoRiego);
  132. $riego = json_encode($riego);
  133. return $riego;
  134. }
  135. function enviar_orden($id_nodo, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego) {//Listo
  136. global $conEmp;
  137. global $campos;
  138. global $fp;
  139. $direccion = "select direccion from nodo where id_nodo=$id_nodo";
  140. $resEmp4 = mysql_query($direccion, $conEmp);
  141. if ($datatmp3 = mysql_fetch_array($resEmp4)) {
  142. $direccion_temporal = $datatmp3['direccion'];
  143. }
  144. if ($tipoRiego == 'm') {
  145. $resultado = 1440;
  146. }
  147. echo "<ctr>" . $n_orden_riego_sector . ":" . $id_nodo . ":" . $p0 . ":" . $p1 . ":" . $p2 . ":" . $resultado . ":" . $pulsos . ":" . $direccion_temporal . "</ctr>"; //david
  148. fputs($fp, "<ctr>" . $n_orden_riego_sector . ":" . $id_nodo . ":" . $p0 . ":" . $p1 . ":" . $p2 . ":" . $resultado . ":" . $pulsos . ":" . "$direccion_temporal" . "</ctr>" . "+" . $campos[0] . "+" . $campos[1] . "+" . $campos[2] . "\r\n"); //david
  149. return 0;
  150. }
  151. function ultimo_numero_orden($db) {//Listo
  152. global $conEmp;
  153. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  154. $id_empresa = $db[0]['id_empresa'];
  155. $id_nodo = $db[0]['id_nodo'];
  156. $id_sector = $db[0]['id_sector'];
  157. $id_programacion_riego = $db[0]['id_programacion_riego'];
  158. if ($n_orden_riego_sector == 1) {
  159. $sql = "SELECT max(n_orden_riego_sector) FROM programacion_riego WHERE id_empresa = $id_empresa"; //
  160. $resEmp2 = mysql_query($sql, $conEmp);
  161. $objeto = mysql_num_rows($resEmp2);
  162. if ($datatmp = mysql_fetch_array($resEmp2)) {
  163. $n_orden_riego_sector = $datatmp['max(n_orden_riego_sector)'];
  164. $n_orden_riego_sector = $n_orden_riego_sector + 1;
  165. $sql = "UPDATE programacion_riego set update_p = 0,n_orden_riego_sector = $n_orden_riego_sector WHERE id_sector = $id_sector and id_nodo = $id_nodo and id_programacion_riego = $id_programacion_riego";
  166. $consulta = mysql_query($sql, $conEmp);
  167. return $n_orden_riego_sector;
  168. }
  169. }
  170. return $n_orden_riego_sector;
  171. }
  172. function ultimo_id_programacion($id_empresa){
  173. global $conEmp;
  174. $id_programacion_riego = 0;
  175. $sql = "select max(id_programacion_riego) from programacion_riego where id_empresa = '$id_empresa'";
  176. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  177. if ($datatmp = mysql_fetch_array($consulta)) {
  178. $lipe = $datatmp['max(id_programacion_riego)'];
  179. $id_programacion_riego = $lipe + 1;
  180. }
  181. return $id_programacion_riego;
  182. }
  183. function riegos_pendiente($riego) {
  184. global $conEmp;
  185. global $campos;
  186. global $date1;
  187. $fechaactual = $date1;
  188. $iniciado = 1;
  189. $nodo_consultor = $campos[1];
  190. $db = json_decode($riego, true);
  191. $id_sector = $db[0]['id_sector'];
  192. $id_nodo = $db[0]['id_nodo'];
  193. if (($db[0]['estado'] == $iniciado and $fechaactual >= $db[0]['p_fecha_ini'] and $fechaactual >= $db[0]['p_fecha_fin']
  194. and $db[0]['intentostotales'] <= 99 and $db[0]['id_nodo'] == $nodo_consultor)) {
  195. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2 FROM control_riego c,programacion_riego as p
  196. WHERE c.id_sector = $id_sector
  197. and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  198. $resEmp2 = mysql_query($sql, $conEmp);
  199. $objeto = mysql_num_rows($resEmp2);
  200. $x = 0;
  201. if ($datatmp = mysql_fetch_array($resEmp2)) {
  202. $id_nodo99 = $datatmp['id_nodo'];
  203. $p0 = $datatmp['p0'];
  204. $p1 = $datatmp['p1'];
  205. $p2 = $datatmp['p2'];
  206. $bdp0 = $p0;
  207. $bdp1 = $p1;
  208. $bdp2 = $p2;
  209. $askp0 = $campos[4];
  210. $askp1 = $campos[5];
  211. $askp2 = $campos[6];
  212. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  213. } else {
  214. $url = 'http://localhost/c/control.php?c=+2+' . $id_nodo . '+' . $db[0]['n_orden_riego_sector']
  215. . '+2+128+209+24+1';
  216. $content = curl($url);
  217. exit;
  218. }
  219. }
  220. }
  221. }
  222. function riegos_pendientes_cancelados($riego) {
  223. global $conEmp;
  224. global $campos;
  225. global $date1;
  226. $db = json_decode($riego, true);
  227. $cancelar = 3;
  228. $iniciado = 1;
  229. $nodo_consultor = $campos[1];
  230. $id_sector = $db[0]['id_sector'];
  231. $id_nodo = $db[0]['id_nodo'];
  232. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  233. if ($date1 >= $db[0]['p_fecha_ini']
  234. and $id_nodo == $campos[1] and ($db[0]['estado'] == $cancelar or $db[0]['estado'] == 33)) {
  235. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2 FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  236. $resEmp2 = mysql_query($sql, $conEmp);
  237. $objeto = mysql_num_rows($resEmp2);
  238. $x = 0;
  239. if ($datatmp = mysql_fetch_array($resEmp2)) {
  240. $id_nodo99 = $datatmp['id_nodo'];
  241. $p0 = $datatmp['p0'];
  242. $p1 = $datatmp['p1'];
  243. $p2 = $datatmp['p2'];
  244. $bdp0 = $p0;
  245. $bdp1 = $p1;
  246. $bdp2 = $p2;
  247. $askp0 = $campos[4];
  248. $askp1 = $campos[5];
  249. $askp2 = $campos[6];
  250. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  251. } else {
  252. $url = 'http://localhost/c/control.php?c=+2+' . $id_nodo99 . '+' . $n_orden_riego_sector . '+2+128+209+24+1';
  253. $content = curl($url);
  254. return 0;
  255. }
  256. }
  257. }
  258. }
  259. function guardar_caudaliemtros_lemfert($tipo_nodo){
  260. global $conEmp;
  261. global $campos;
  262. global $date1;
  263. if ($tipo_nodo == 1) {
  264. $sql = "select nombre_tabla_muestra,nombre_tabla_muestra_mensual from nodo where id_nodo = $campos[1]";
  265. $consulta = mysql_query($sql, $conEmp);
  266. while ($datatmp = mysql_fetch_array($consulta)) {
  267. $nombre_tabla_muestra = $datatmp['nombre_tabla_muestra'];
  268. $nombre_tabla_muestra_mensual = $datatmp['nombre_tabla_muestra_mensual'];
  269. }
  270. $sql = "select id_sensor,referencia from sensor where id_nodo = $campos[1] and visible = 1 and tipo = 'c1'";
  271. $respuesta = mysql_query($sql, $conEmp);
  272. while ($datatmp = mysql_fetch_array($respuesta)) {
  273. $referencia = $datatmp['referencia'];
  274. $id_sensor = $datatmp['id_sensor'];
  275. if (isset($id_sensor)) {
  276. switch ($referencia) {
  277. case 0:
  278. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[8]/10,'$date1')";
  279. $consulta = mysql_query($sql, $conEmp);
  280. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[8]/10,'$date1')";
  281. $consulta = mysql_query($sql, $conEmp);
  282. break;
  283. case 1:
  284. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[9]/10,'$date1')";
  285. $consulta = mysql_query($sql, $conEmp);
  286. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[9]/10,'$date1')";
  287. $consulta = mysql_query($sql, $conEmp);
  288. break;
  289. case 2:
  290. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[10]/10,'$date1')";
  291. $consulta = mysql_query($sql, $conEmp);
  292. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[10]/10,'$date1')";
  293. $consulta = mysql_query($sql, $conEmp);
  294. break;
  295. case 3:
  296. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[11]/10,'$date1')";
  297. $consulta = mysql_query($sql, $conEmp);
  298. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[11]/10,'$date1')";
  299. $consulta = mysql_query($sql, $conEmp);
  300. break;
  301. case 4:
  302. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[12]/10,'$date1')";
  303. $consulta = mysql_query($sql, $conEmp);
  304. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[12]/10,'$date1')";
  305. $consulta = mysql_query($sql, $conEmp);
  306. break;
  307. case 5:
  308. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[13]/10,'$date1')";
  309. $consulta = mysql_query($sql, $conEmp);
  310. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[13]/10,'$date1')";
  311. $consulta = mysql_query($sql, $conEmp);
  312. break;
  313. case 6:
  314. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[14]/10,'$date1')";
  315. $consulta = mysql_query($sql, $conEmp);
  316. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[15]/10,'$date1')";
  317. $consulta = mysql_query($sql, $conEmp);
  318. break;
  319. case 7:
  320. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[16]/10,'$date1')";
  321. $consulta = mysql_query($sql, $conEmp);
  322. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[16]/10,'$date1')";
  323. $consulta = mysql_query($sql, $conEmp);
  324. break;
  325. }
  326. }
  327. }
  328. }
  329. }
  330. function guardar_caudalimetros_lemcontrol($tipo_nodo) {
  331. global $conEmp;
  332. global $campos;
  333. global $date1;
  334. if ($tipo_nodo == 1) {
  335. $sql = "select nombre_tabla_muestra,nombre_tabla_muestra_mensual from nodo where id_nodo = $campos[1]";
  336. $consulta = mysql_query($sql, $conEmp);
  337. while ($datatmp = mysql_fetch_array($consulta)) {
  338. $nombre_tabla_muestra = $datatmp['nombre_tabla_muestra'];
  339. $nombre_tabla_muestra_mensual = $datatmp['nombre_tabla_muestra_mensual'];
  340. }
  341. $sql = "select p1 from control_riego where id_nodo = $campos[1] group by p1 order by p1 desc";
  342. $respuesta = mysql_query($sql, $conEmp);
  343. if ($datatmp = mysql_fetch_array($respuesta)) {
  344. $p1 = $datatmp['p1'];
  345. if ($p1 & 1) {
  346. $caudal1 = $campos[8];
  347. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'c1' and visible=1";
  348. $respuesta2 = mysql_query($sql, $conEmp);
  349. if ($datatmp2 = mysql_fetch_array($respuesta2)) {
  350. $id_sensor = $datatmp2['id_sensor'];
  351. }
  352. if (isset($id_sensor)) {
  353. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[8]/10,'$date1')";
  354. $consulta = mysql_query($sql, $conEmp);
  355. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[8]/10,'$date1')";
  356. $consulta = mysql_query($sql, $conEmp);
  357. }
  358. } elseif ($p1 & 4) {
  359. $caudal2 = $campos[9];
  360. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'c2' and visible=1";
  361. $respuesta2 = mysql_query($sql, $conEmp);
  362. if ($datatmp2 = mysql_fetch_array($respuesta2)) {
  363. $id_sensor = $datatmp2['id_sensor'];
  364. }
  365. if (isset($id_sensor)) {
  366. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[9]/10,'$date1')";
  367. $consulta = mysql_query($sql, $conEmp);
  368. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[9]/10,'$date1')";
  369. $consulta = mysql_query($sql, $conEmp);
  370. }
  371. } elseif ($p1 & 8) {
  372. $caudal3 = $campos[10];
  373. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'c3' and visible=1";
  374. $respuesta2 = mysql_query($sql, $conEmp);
  375. if ($datatmp2 = mysql_fetch_array($respuesta2)) {
  376. $id_sensor = $datatmp2['id_sensor'];
  377. }
  378. if (isset($id_sensor)) {
  379. $sql = "INSERT INTO $nombre_tabla_muestra (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[10]/10,'$date1')";
  380. $consulta = mysql_query($sql, $conEmp);
  381. $sql = "INSERT INTO $nombre_tabla_muestra_mensual (id_sensor,valor,fecha) VALUES ($id_sensor,$campos[10]/10,'$date1')";
  382. $consulta = mysql_query($sql, $conEmp);
  383. }
  384. }
  385. }
  386. }
  387. }
  388. function guardar_caudalimetros($tipo_nodo) {
  389. global $conEmp;
  390. global $campos;
  391. global $date1;
  392. $sql = "select id_nodo from sector_fertil_riego WHERE id_nodo = $campos[1]";
  393. $consulta = mysql_query($sql, $conEmp);
  394. if ($datatmp = mysql_fetch_array($consulta)) {
  395. guardar_caudalimetros_lemfert($tipo_nodo);
  396. }else{
  397. guardar_caudalimetros_lemcontrol($tipo_nodo);
  398. }
  399. }
  400. function actualizar_fechas_inicio_riegos_manuales($id_empresalembox, $id_equipolembox) {
  401. global $conEmp;
  402. global $date1;
  403. if (isset($id_empresalembox)) {//Listo
  404. $sql = "select id_programacion_riego,n_orden_riego_sector from programacion_riego WHERE id_empresa = $id_empresalembox and tipo = 'm' and (estado = 0 or estado = 1)";
  405. $consulta = mysql_query($sql, $conEmp);
  406. while ($datatmp = mysql_fetch_array($consulta)) {
  407. $id_programacion_riegolembox = $datatmp['id_programacion_riego'];
  408. $n_orden_riego_sectorlembox = $datatmp['n_orden_riego_sector'];
  409. $hoy2 = strtotime($date1);
  410. $minutos = 60;
  411. $minutos = $minutos * 60;
  412. $hoy2 += $minutos;
  413. $hoy2 = date("Y-m-d H:i:s", $hoy2);
  414. $sql2 = "update programacion_riego set update_p = 0,p_fecha_fin = '$hoy2' where n_orden_riego_sector = $n_orden_riego_sectorlembox and id_programacion_riego = $id_programacion_riegolembox";
  415. $consulta2 = mysql_query($sql2, $conEmp);
  416. $sql3 = "update programacion_riego set update_p = 0,estado = 11 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and id_empresa = $id_empresalembox and equipo = $id_equipolembox";
  417. $consulta3 = mysql_query($sql3, $conEmp);
  418. }
  419. }
  420. }
  421. function fin_modo_manual($id_empresalembox, $id_equipolembox) {//Lito
  422. global $campos;
  423. global $conEmp;
  424. global $date1;
  425. if (isset($id_empresalembox)) {
  426. if ($campos[3] == 9) {
  427. $sql = "select id_programacion_riego from programacion_riego WHERE id_empresa = $id_empresalembox and equipo = $id_equipolembox and n_orden_riego_sector > 0 and estado = 11 and p_fecha_ini > '$date1'";
  428. $consulta = mysql_query($sql, $conEmp);
  429. while ($datatmp = mysql_fetch_array($consulta)) {
  430. $id_programacion_riego = $datatmp['id_programacion_riego'];
  431. $sql3 = "update programacion_riego set update_p = 0,estado = 0 where id_programacion_riego = $id_programacion_riego and id_empresa = $id_empresalembox and equipo = $id_equipolembox";
  432. $consulta3 = mysql_query($sql3, $conEmp);
  433. }
  434. enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  435. $sql2 = "UPDATE control_riego SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1]";
  436. $consulta = mysql_query($sql2, $conEmp);
  437. exit;
  438. }
  439. }
  440. }
  441. function inicio_riego_manual($id_empresalembox, $id_equipolembox) {//Listo
  442. global $campos;
  443. global $conEmp;
  444. global $date1;
  445. if (isset($id_empresalembox)) {
  446. if ($campos[3] == 6) {
  447. $sql2 = "UPDATE control_riego SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1]";
  448. $consulta = mysql_query($sql2, $conEmp);
  449. $sql = "select tipo,p_fecha_ini,p_fecha_fin,estado,n_orden_riego_sector,id_programacion_riego from programacion_riego where id_empresa = $id_empresalembox and equipo = $id_equipolembox and n_orden_riego_sector != 0 and n_orden_riego_sector > 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc";
  450. $resEmp20 = mysql_query($sql, $conEmp);
  451. $objeto = mysql_num_rows($resEmp20);
  452. while ($datatmp = mysql_fetch_array($resEmp20)) {
  453. $n_orden_riego_sectorM = $datatmp['n_orden_riego_sector'];
  454. $id_programacion_riegoM = $datatmp['id_programacion_riego'];
  455. $estadoM = $datatmp['estado'];
  456. $tipoM = $datatmp['tipo'];
  457. $p_fecha_iniM = $datatmp['p_fecha_ini'];
  458. $date2M = new DateTime($p_fecha_iniM);
  459. $date2M = $date2M->format('Y-m-d H:i:s');
  460. $p_fecha_finM = $datatmp['p_fecha_fin'];
  461. $date3M = new DateTime($p_fecha_finM);
  462. $date3M = $date3M->format('Y-m-d H:i:s');
  463. if (($estadoM == 1) and ( $date1 > $date2M) and ( $date1 < $date3M) and ( $tipoM != 'm')) {
  464. $sql2 = "UPDATE programacion_riego SET update_p = 0,estado = 3 WHERE n_orden_riego_sector = $n_orden_riego_sectorM and id_programacion_riego = $id_programacion_riegoM and id_empresa = $id_empresalembox and equipo = $id_equipolembox";
  465. $consulta = mysql_query($sql2, $conEmp);
  466. }
  467. }
  468. $sql3 = "update programacion_riego set update_p = 0,estado = 11 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and id_empresa = $id_empresalembox and equipo = $id_equipolembox ";
  469. $consulta3 = mysql_query($sql3, $conEmp);
  470. enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  471. exit;
  472. }
  473. }
  474. }
  475. function riegos_con_problemas_de_inicio($riegos) {
  476. global $campos;
  477. global $date1;
  478. $no_iniciado = 0;
  479. global $conEmp;
  480. global $id_empresaPrin;
  481. $db = json_decode($riegos, true);
  482. $sql = "select id_nodo,id_sector from control_riego where estado = 3 and id_empresa = $id_empresaPrin and intentos = 3";
  483. $resEmp2 = mysql_query($sql, $conEmp);
  484. $objeto = mysql_num_rows($resEmp2);
  485. if ($datatmp = mysql_fetch_array($resEmp2)) {
  486. $id_nodoerror = $datatmp['id_nodo'];
  487. $id_sectorerror = $datatmp['id_sector'];
  488. $sql = "SELECT max(n_orden_riego_sector) FROM programacion_riego WHERE id_empresa = $id_empresaPrin ";
  489. $resEmp2 = mysql_query($sql, $conEmp);
  490. $objeto = mysql_num_rows($resEmp2);
  491. if ($datatmp = mysql_fetch_array($resEmp2)) {
  492. $riego = $datatmp['max(n_orden_riego_sector)'];
  493. }
  494. $riego = $riego + 1;
  495. $sql = "SELECT max(orden) as ordendivisor FROM control_riego WHERE id_sector = $id_sectorerror order by orden desc";
  496. $resEmp9 = mysql_query($sql, $conEmp);
  497. $objeto = mysql_num_rows($resEmp9);
  498. $x = 0;
  499. if ($datatmp2 = mysql_fetch_array($resEmp9)) {
  500. $ordendivisor = $datatmp2['ordendivisor'];
  501. }
  502. $sql = "SELECT id_nodo,p0,p1,p2 FROM control_riego WHERE id_sector = $id_sectorerror and id_nodo = $id_nodoerror order by orden desc";
  503. $resEmp3 = mysql_query($sql, $conEmp);
  504. $objeto = mysql_num_rows($resEmp3);
  505. $x = 0;
  506. if ($datatmp2 = mysql_fetch_array($resEmp3)) {
  507. $id_nodoRest = $datatmp2['id_nodo'];
  508. $p0 = $datatmp2['p0'];
  509. $p1 = $datatmp2['p1'];
  510. $p2 = $datatmp2['p2'];
  511. $tiempodiff = 55555;
  512. $sql = "update control_riego set update_p = 0,intentos = 4 where id_sector = $id_sectorerror and id_nodo = $id_nodoerror order by orden desc";
  513. $consulta = mysql_query($sql, $conEmp);
  514. enviar_orden($id_nodoRest, 65534, 16, 9, 2, $tiempodiff, 0, 'a');
  515. exit;
  516. }
  517. }
  518. }
  519. function reiniciar_riego($riego) {
  520. global $date1;
  521. $no_iniciado = 0;
  522. global $conEmp;
  523. global $id_empresaPrin;
  524. $db = json_decode($riego, true);
  525. $reiniciar = 5;
  526. $id_programacion_riego = $db[0]['id_programacion_riego'];
  527. $intentostotales = $db[0]['intentostotales'];
  528. $id_nodo = $db[0]['id_nodo'];
  529. if ($db[0]['estado'] == $reiniciar and $date1 >= $db[0]['p_fecha_ini'] and $intentostotales <= 3 and
  530. $date1 <= $db[0]['p_fecha_fin']) {
  531. $sql = "UPDATE programacion_riego set update_p = 0,intentos = $intentostotales
  532. where id_programacion_riego = $id_programacion_riego";
  533. $consulta = mysql_query($sql, $conEmp);
  534. $tiempodiff = 55555;
  535. enviar_orden($id_nodo, 65534, 16, 9, 2, $tiempodiff, 0, 'a');
  536. exit;
  537. }
  538. }
  539. function cancelar_riegos_con_problemas($riego) {
  540. global $campos;
  541. global $date1;
  542. $no_iniciado = 0;
  543. global $conEmp;
  544. global $id_empresaPrin;
  545. $db = json_decode($riego, true);
  546. $id_nodo = $db[0]['id_nodo'];
  547. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  548. $id_programacion_riego = $db[0]['id_programacion_riego'];
  549. $cancelar = 7;
  550. if ($db[0]['estado'] == $cancelar and $date1 >= $db[0]['p_fecha_ini']) {
  551. $sql = "update control_riego set update_p = 0,estado = 0 , intentos = 0,iteracion = 0 where id_nodo = $id_nodo and id_empresa = $id_empresaPrin ";
  552. $consulta = mysql_query($sql, $conEmp);
  553. $sql = "update programacion_riego set update_p = 0,estado = 8 , intentos = 0 where id_nodo = $id_nodo and id_empresa = $id_empresaPrin and n_orden_riego_sector = $n_orden_riego_sector"; //
  554. $consulta = mysql_query($sql, $conEmp);
  555. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $n_orden_riego_sector";
  556. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  557. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)) {
  558. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($n_orden_riego_sector,1)";
  559. $consulta = mysql_query($sql, $conEmp);
  560. respuesta_lembox($n_orden_riego_sector,4);
  561. }
  562. }
  563. }
  564. function iniciar_riego($riego) {//Listo
  565. global $campos;
  566. global $date1;
  567. $no_iniciado = 0;
  568. global $conEmp;
  569. global $id_empresaPrin;
  570. $db = json_decode($riego, true);
  571. $id_sector = $db[0]['id_sector'];
  572. $id_nodo = $db[0]['id_nodo'];
  573. $tipoRiego = $db[0]['tipoRiego'];
  574. $id_programacion_riego = $db[0]['id_programacion_riego'];
  575. $pulsos = $db[0]['pulsos'];
  576. $intentostotales = $db[0]['intentostotales'];
  577. if ($db[0]['estado'] == $no_iniciado and $date1 >= $db[0]['p_fecha_ini'] and $intentostotales <= 99 and $date1 <= $db[0]['p_fecha_fin']) {
  578. $n_orden_riego_sector = ultimo_numero_orden($db);
  579. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = $intentostotales,fecha_consulta = '$date1'
  580. WHERE id_sector = $id_sector and id_nodo = $id_nodo and id_programacion_riego = $id_programacion_riego";
  581. $consulta = mysql_query($sql, $conEmp);
  582. $sql = "select tipo_riego from sector_configuracion where id_sector = $id_sector";
  583. $resEmp = mysql_query($sql, $conEmp);
  584. if ($datatmp = mysql_fetch_array($resEmp)) {
  585. $tipo_riego = $datatmp['tipo_riego'];
  586. }
  587. switch ($tipo_riego) {
  588. case 'valvula_primero':
  589. valvula_primero_que_bomba($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales);
  590. break;
  591. case 'bomba_primero':
  592. bomba_primero_que_valvula($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales);
  593. break;
  594. case 'fertil_riego':
  595. iniciar_fertil_riego($riego,$n_orden_riego_sector);
  596. break;
  597. }
  598. }
  599. }
  600. function verificar_pines_lemvale($riego) {
  601. global $campos;
  602. global $date1;
  603. $no_iniciado = 0;
  604. global $conEmp;
  605. global $id_empresaPrin;
  606. $db = json_decode($riego, true);
  607. $iniciado = 1;
  608. $estado = $db[0]['estado'];
  609. $id_sector = $db[0]['id_sector'];
  610. $id_nodo = $db[0]['id_nodo'];
  611. $tipoRiego = $db[0]['tipoRiego'];
  612. $id_programacion_riego = $db[0]['id_programacion_riego'];
  613. if ($id_nodo != $campos[1] and $estado == $iniciado and $date1 >= $db[0]['p_fecha_ini']
  614. and $date1 <= $db[0]['p_fecha_fin']) {
  615. $sql = "select tipo_nodo from nodo where id_nodo = $id_nodo";
  616. $resEmp2 = mysql_query($sql, $conEmp);
  617. $objeto = mysql_num_rows($resEmp2);
  618. if ($datatmp9 = mysql_fetch_array($resEmp2)) {
  619. $tipo = $datatmp9['tipo_nodo'];
  620. }
  621. if ($tipo == 0) {
  622. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1'
  623. WHERE id_programacion_riego = $id_programacion_riego";
  624. $consulta = mysql_query($sql, $conEmp);
  625. }
  626. }
  627. }
  628. function verificar_pines_lemcontrol($riego) {
  629. global $equipoPrin;
  630. global $campos;
  631. global $date1;
  632. $no_iniciado = 0;
  633. global $conEmp;
  634. global $id_empresaPrin;
  635. $db = json_decode($riego, true);
  636. $iniciado = 1;
  637. $sw_fertilizante = 0;
  638. $estado = $db[0]['estado'];
  639. $id_sector = $db[0]['id_sector'];
  640. $ultimo_pulso = $db[0]['ultimo_pulso'];
  641. $id_programacion_riego = $db[0]['id_programacion_riego'];
  642. $pulso_acumulado = $db[0]['pulso_acumulado'];
  643. $pulsos = $db[0]['pulsos'];
  644. $sector = $db[0]['sector'];
  645. $id_nodo = $db[0]['id_nodo'];
  646. $p_fecha_ini = $db[0]['p_fecha_ini'];
  647. $p_fecha_fin = $db[0]['p_fecha_fin'];
  648. $r_fecha_ini = $db[0]['r_fecha_ini'];
  649. $r_fecha_fin = $db[0]['r_fecha_fin'];
  650. $tipoRiego = $db[0]['tipoRiego'];
  651. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  652. $prioridad = $db[0]['prioridad'];
  653. //Calcular el tiempo que estubo caido y asignarlo al riego
  654. $fecha1 = strtotime($db[0]['r_fecha_fin']);
  655. $fecha3 = strtotime($db[0]['p_fecha_fin']);
  656. $fechafin = $fecha3 - $fecha1;
  657. $min = $fechafin / 60;
  658. if ($id_nodo == $campos[1] and $estado == $iniciado and $date1 >= $db[0]['p_fecha_ini'] and
  659. $date1 <= $db[0]['p_fecha_fin'] and $min > 5) {
  660. $sql = "select tipo_nodo from nodo where id_nodo = $id_nodo";
  661. $resEmp2 = mysql_query($sql, $conEmp);
  662. $objeto = mysql_num_rows($resEmp2);
  663. if ($datatmp9 = mysql_fetch_array($resEmp2)) {
  664. $tipo = $datatmp9['tipo_nodo'];
  665. }
  666. if ($tipo == 1) {
  667. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,c.id_sensor FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  668. $resEmp2 = mysql_query($sql, $conEmp);
  669. $objeto = mysql_num_rows($resEmp2);
  670. $x = 0;
  671. if ($datatmp = mysql_fetch_array($resEmp2)) {
  672. $id_nodo99 = $datatmp['id_nodo'];
  673. $p0 = $datatmp['p0'];
  674. $p1 = $datatmp['p1'];
  675. $p2 = $datatmp['p2'];
  676. $id_sensor = $datatmp['id_sensor'];
  677. $bdp0 = $p0;
  678. $bdp1 = $p1;
  679. $bdp2 = $p2;
  680. $askp0 = $campos[4];
  681. $askp1 = $campos[5];
  682. $askp2 = $campos[6];
  683. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  684. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE
  685. id_programacion_riego = $id_programacion_riego";
  686. $consulta = mysql_query($sql, $conEmp);
  687. $sql = "select agitador,bm,bf,delay_ini,delay_fin from configuracion_fertil_riegos WHERE id_sector_fertil_riego = $id_programacion_riego";
  688. $consulta = mysql_query($sql, $conEmp);
  689. if ($datatmp = mysql_fetch_array($consulta)) {
  690. $sw_fertilizante = 1;
  691. $sql = "select referencia from sensor WHERE sensor = $id_sensor";
  692. $consulta = mysql_query($sql, $conEmp);
  693. if ($datatmp = mysql_fetch_array($consulta)) {
  694. $referencia = $datatmp['referencia'];
  695. $pulso_actual = $campos[$referencia] - $pulso_acumulado;
  696. $sql = "UPDATE programacion_riego SET update_p = 0,ultimo_pulso = '$pulso_actual' WHERE id_programacion_riego = $id_programacion_riego";
  697. $consulta = mysql_query($sql, $conEmp);
  698. }
  699. }else{
  700. if ($bdp1 & 1) {
  701. $puerto = 1;
  702. $caudal1 = $campos[8];
  703. $pulso_actual = $campos[8] - $pulso_acumulado;
  704. $sql = "UPDATE programacion_riego SET update_p = 0,ultimo_pulso = '$pulso_actual' WHERE id_programacion_riego = $id_programacion_riego";
  705. $consulta = mysql_query($sql, $conEmp);
  706. } elseif ($bdp1 & 4) {
  707. $puerto = 2;
  708. $caudal2 = $campos[9];
  709. $pulso_actual = $campos[9] - $pulso_acumulado;
  710. $sql = "UPDATE programacion_riego SET update_p = 0,ultimo_pulso = '$pulso_actual' WHERE id_programacion_riego = $id_programacion_riego";
  711. $consulta = mysql_query($sql, $conEmp);
  712. } elseif ($bdp1 & 8) {
  713. $puerto = 3;
  714. $caudal3 = $campos[10];
  715. $pulso_actual = $campos[10] - $pulso_acumulado;
  716. $sql = "UPDATE programacion_riego SET update_p = 0,ultimo_pulso = '$pulso_actual' WHERE id_programacion_riego = $id_programacion_riego";
  717. $consulta = mysql_query($sql, $conEmp);
  718. }
  719. }
  720. } else {
  721. $sql = "select agitador,bm,bf,delay_ini,delay_fin from configuracion_fertil_riegos WHERE id_sector_fertil_riego = $id_programacion_riego";
  722. $consulta = mysql_query($sql, $conEmp);
  723. if ($datatmp = mysql_fetch_array($consulta)) {
  724. $sw_fertilizante = 1;
  725. }
  726. if ($bdp1 & 1) {
  727. $puerto = 1;
  728. } elseif ($bdp1 & 4) {
  729. $puerto = 2;
  730. } elseif ($bdp1 & 8) {
  731. $puerto = 3;
  732. }
  733. $nuevo_pulso = 0;
  734. //Se detecta si es un riego por pulsos preguntanto si los pulsos que debe regar son mayores a 0
  735. if ($pulsos != 0) {//si entra al if se calcula los pulsos que faltan por regar y el tiempo que se demorara en regar
  736. $sql = "SELECT caudal_pulso,caudal_inferior,pulso_minuto from control_riego where
  737. id_sector = $id_sector and caudal_pulso != 0 group by id_sector";
  738. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  739. if ($datatmp = mysql_fetch_array($consulta)) {
  740. $caudal_pulso = $datatmp['caudal_pulso']; //cn
  741. $caudal_inferior = $datatmp['caudal_inferior']; //ci
  742. $pi = $caudal_inferior / $caudal_pulso;
  743. $nuevo_pulso = $pulsos - $ultimo_pulso;
  744. $tmax = $nuevo_pulso / $pi;
  745. }
  746. $minutos = round($tmax);
  747. $minutos = $minutos * 60;
  748. $fecha = $date1;
  749. $fecha += $minutos;
  750. $tmax = date("Y-m-d H:i:s", $fecha);
  751. if ($puerto == 1) {
  752. if ($pulsos < $campos[8]) {
  753. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2 FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  754. $resEmp2 = mysql_query($sql, $conEmp);
  755. $objeto = mysql_num_rows($resEmp2);
  756. $x = 0;
  757. if ($datatmp = mysql_fetch_array($resEmp2)) {
  758. $id_nodo99 = $datatmp['id_nodo'];
  759. $p0 = $datatmp['p0'];
  760. $p1 = $datatmp['p1'];
  761. $p2 = $datatmp['p2'];
  762. $bdp0 = $p0;
  763. $bdp1 = $p1;
  764. $bdp2 = $p2;
  765. $askp0 = $campos[4];
  766. $askp1 = $campos[5];
  767. $askp2 = $campos[6];
  768. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  769. } else {
  770. //$url = 'http://localhost/c/control.php?c=+2+' . $id_nodo99 . '+' . $n_orden_riego_sector . '+2+128+209+24+1';
  771. //$content = curl($url);
  772. return 0;
  773. }
  774. }
  775. }
  776. } elseif ($puerto == 4) {
  777. if ($pulsos < $campos[9]) {
  778. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2 FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector[$i] and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  779. $resEmp2 = mysql_query($sql, $conEmp);
  780. $objeto = mysql_num_rows($resEmp2);
  781. $x = 0;
  782. if ($datatmp = mysql_fetch_array($resEmp2)) {
  783. $id_nodo99 = $datatmp['id_nodo'];
  784. $p0 = $datatmp['p0'];
  785. $p1 = $datatmp['p1'];
  786. $p2 = $datatmp['p2'];
  787. $bdp0 = $p0;
  788. $bdp1 = $p1;
  789. $bdp2 = $p2;
  790. $askp0 = $campos[4];
  791. $askp1 = $campos[5];
  792. $askp2 = $campos[6];
  793. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  794. } else {
  795. //$url = 'http://localhost/c/control.php?c=+2+' . $id_nodo99 . '+' . $n_orden_riego_sector . '+2+128+209+24+1';
  796. //$content = curl($url);
  797. return 0;
  798. }
  799. }
  800. }
  801. } elseif ($puerto == 8) {
  802. if ($pulsos < $campos[10]) {
  803. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2 FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector[$i] and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  804. $resEmp2 = mysql_query($sql, $conEmp);
  805. $objeto = mysql_num_rows($resEmp2);
  806. $x = 0;
  807. if ($datatmp = mysql_fetch_array($resEmp2)) {
  808. $id_nodo99 = $datatmp['id_nodo'];
  809. $p0 = $datatmp['p0'];
  810. $p1 = $datatmp['p1'];
  811. $p2 = $datatmp['p2'];
  812. $bdp0 = $p0;
  813. $bdp1 = $p1;
  814. $bdp2 = $p2;
  815. $askp0 = $campos[4];
  816. $askp1 = $campos[5];
  817. $askp2 = $campos[6];
  818. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  819. } else {
  820. //$url = 'http://localhost/c/control.php?c=+2+' . $id_nodo99 . '+' . $n_orden_riego_sector . '+2+128+209+24+1';
  821. //$content = curl($url);
  822. return 0;
  823. }
  824. }
  825. }
  826. }
  827. } else {
  828. //Calcular el tiempo que estubo caido y asignarlo al riego
  829. $fecha1 = strtotime($db[0]['r_fecha_fin']);
  830. $fecha2 = strtotime($date1);
  831. $fecha3 = strtotime($db[0]['p_fecha_fin']);
  832. $fechafin = $fecha2 - $fecha1;
  833. $min = $fechafin * 60;
  834. $fechafin = $fecha3 + $min;
  835. $fechafin = date("Y-m-d H:i:s", $fechafin);
  836. }
  837. //obtener el tiempo que estubo caido el riego
  838. if ($prioridad == 1) {
  839. if ($pulsos != 0) {//Si es un riego por pulso se aumenta el tiempo en base al de los pulsos que faltan
  840. //Update fecha fin real segun el tiempo que estubo caido el riego
  841. $sql = "UPDATE programacion_riego SET update_p = 0,p_fecha_fin = '$tmax' WHERE id_programacion_riego = $id_programacion_riego";
  842. $consulta = mysql_query($sql, $conEmp);
  843. } else {//Si es un riego por tiempo se aumenta el tiempo en base al tiempo que estubo caido
  844. $sql = "UPDATE programacion_riego SET update_p = 0,p_fecha_fin = '$fechafin' WHERE id_programacion_riego = $id_programacion_riego";
  845. $consulta = mysql_query($sql, $conEmp);
  846. }
  847. //Si la validacion de pines es incorrecta se da por entendido que el coordinador tubo algun problema y este se reinicio
  848. //perdiendo la orden debido a esto se le entrega nuevamente la misma orden pero con el tiempo de termino re calculado
  849. $sql = "update control_riego set update_p = 0,estado = 0 , intentos = 0,iteracion = 0 where id_nodo = $campos[1]";
  850. $consulta = mysql_query($sql, $conEmp);
  851. $sql = "SELECT max(id_subriego) FROM programacion_riego where id_empresa = $id_empresaPrin "; //<-----aqui
  852. $resEmp2 = mysql_query($sql, $conEmp);
  853. $objeto = mysql_num_rows($resEmp2);
  854. if ($datatmp = mysql_fetch_array($resEmp2)) {
  855. $id_subriegomax = $datatmp['max(id_subriego)'];
  856. }
  857. $sql = "SELECT id_subriego FROM programacion_riego WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin "; //<-----aqui
  858. $resEmp2 = mysql_query($sql, $conEmp);
  859. $objeto = mysql_num_rows($resEmp2);
  860. if ($datatmp = mysql_fetch_array($resEmp2)) {
  861. $id_subriego = $datatmp['id_subriego'];
  862. if ($id_subriego == 0) {
  863. $id_subriego = $id_subriegomax + 1;
  864. }
  865. }
  866. $sql = "select max(n_identificador) from programacion_riego where id_nodo = $campos[1]";
  867. $resEmp4 = mysql_query($sql, $conEmp);
  868. if ($datatmp2 = mysql_fetch_array($resEmp4)) {
  869. $n_identificador = $datatmp2['max(n_identificador)'];
  870. $n_identificador = $n_identificador + 1;
  871. }
  872. $id_programacion = ultimo_id_programacion($id_empresaPrin);
  873. $sql = "Insert into programacion_riego (`id_programacion_riego`,`equipo`,`id_empresa`,`n_identificador`,`id_subriego`,`n_orden_riego_sector`,`id_nodo`,`p_fecha_ini`,`p_fecha_fin`,`sector`,`r_fecha_ini`,`r_fecha_fin`,`estado`,
  874. `id_sector`,`intentos`)
  875. Values($id_programacion,$equipoPrin,$id_empresaPrin,$n_identificador,$id_subriego,0,$campos[1],'$r_fecha_ini',
  876. '$r_fecha_fin','$sector','$r_fecha_ini','$r_fecha_fin','1','$id_sector','0')"; //<---aqui
  877. $consulta = mysql_query($sql, $conEmp);
  878. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 0,r_fecha_ini = '$date1',r_fecha_fin ='$date1',id_subriego = $id_subriego,update_p = 0 WHERE id_programacion_riego = $id_programacion_riego";
  879. $consulta = mysql_query($sql, $conEmp);
  880. $sql = "SELECT p.p_fecha_fin,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector[$i] and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  881. $resEmp2 = mysql_query($sql, $conEmp);
  882. $objeto = mysql_num_rows($resEmp2);
  883. if ($datatmp = mysql_fetch_array($resEmp2) and $sw_fertilizante == 0) {
  884. $id_nodo2 = $datatmp['id_nodo'];
  885. $p_fecha_fin = $datatmp['p_fecha_fin'];
  886. $p0 = $datatmp['p0'];
  887. $p1 = $datatmp['p1'];
  888. $p2 = $datatmp['p2'];
  889. $resultado = strtotime($p_fecha_fin) - strtotime($date1);
  890. $resultado = round($resultado / 60);
  891. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $nuevo_pulso, $tipoRiego);
  892. exit;
  893. }
  894. $sql1 = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  895. $consulta1 = mysql_query($sql1, $conEmp);
  896. $sql1 = "UPDATE programacion_riego SET update_p = 0,pulso_acumulado = 0,ultimo_pulso = 0,pulsos = $nuevo_pulso WHERE n_orden_riego_sector = $n_orden_riego_sector";
  897. $consulta1 = mysql_query($sql1, $conEmp);
  898. //Detectar si hay riegos que se pisen
  899. $sql = "SELECT id_programacion_riego FROM `programacion_riego` WHERE id_empresa =44 AND p_fecha_ini < '$p_fecha_fin' AND p_fecha_fin > '$p_fecha_fin'";
  900. $consulta = mysql_query($sql, $conEmp);
  901. if ($datatmp = mysql_fetch_array($consulta)) {
  902. $nodoPrioridadBaja = $datatmp['id_programacion_riego'];
  903. }
  904. $sql1 = "UPDATE programacion_riego SET update_p = 0,p_fecha_ini = '$p_fecha_fin',r_fecha_ini = '$p_fecha_fin'
  905. ,r_fecha_fin = '$p_fecha_fin' WHERE id_programacion_riego = $nodoPrioridadBaja";
  906. $consulta1 = mysql_query($sql1, $conEmp);
  907. return 0;
  908. }
  909. if ($prioridad == 0) {
  910. //si el riego estubo caido mas de una hora calcular los pulsos necesarios para terminar lo en la fecha que se agendo
  911. //----------------------------------------------------------------------------------------------------------------------
  912. //----------------------------------------------------------------------------------------------------------------------
  913. //Si la validacion de pines es incorrecta se da por entendido que el coordinador tubo algun problema y este se reinicio
  914. //perdiendo la orden debido a esto se le entrega nuevamente la misma orden pero con el tiempo de termino re calculado
  915. $sql = "update control_riego set update_p = 0,estado = 0 , intentos = 0,iteracion = 0 where id_nodo = $campos[1]";
  916. $consulta = mysql_query($sql, $conEmp);
  917. $sql = "SELECT max(id_subriego) FROM programacion_riego where id_empresa = $id_empresaPrin "; //<-----aqui
  918. $resEmp2 = mysql_query($sql, $conEmp);
  919. $objeto = mysql_num_rows($resEmp2);
  920. if ($datatmp = mysql_fetch_array($resEmp2)) {
  921. $id_subriegomax = $datatmp['max(id_subriego)'];
  922. }
  923. $sql = "SELECT id_subriego FROM programacion_riego WHERE n_orden_riego_sector = $n_orden_riego_sector
  924. and id_empresa = $id_empresaPrin "; //<-----aqui
  925. $resEmp2 = mysql_query($sql, $conEmp);
  926. $objeto = mysql_num_rows($resEmp2);
  927. if ($datatmp = mysql_fetch_array($resEmp2)) {
  928. $id_subriego = $datatmp['id_subriego'];
  929. if ($id_subriego == 0) {
  930. $id_subriego = $id_subriegomax + 1;
  931. }
  932. }
  933. $sql = "select max(n_identificador) from programacion_riego where id_nodo = $campos[1]";
  934. $resEmp4 = mysql_query($sql, $conEmp);
  935. if ($datatmp2 = mysql_fetch_array($resEmp4)) {
  936. $n_identificador = $datatmp2['max(n_identificador)'];
  937. $n_identificador = $n_identificador + 1;
  938. }
  939. $id_programacion = ultimo_id_programacion($id_empresaPrin);
  940. $sql = "Insert into programacion_riego (`id_programacion_riego`,`equipo`,`id_empresa`,`n_identificador`,`id_subriego`,`n_orden_riego_sector`,`id_nodo`,`p_fecha_ini`,`p_fecha_fin`,`sector`,`r_fecha_ini`,`r_fecha_fin`,`estado`,`id_sector`,`intentos`)
  941. Values($id_programacion,$equipoPrin,$id_empresaPrin,$n_identificador,$id_subriego,0,$campos[1],'$r_fecha_ini','$r_fecha_fin','$sector'
  942. ,'$r_fecha_ini','$r_fecha_fin','1','$id_sector','0')"; //<---aqui
  943. $consulta = mysql_query($sql, $conEmp);
  944. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 0,r_fecha_ini = '$date1',r_fecha_fin ='$date1',
  945. id_subriego = $id_subriego,update_p = 0 WHERE id_programacion_riego = $id_programacion_riego";
  946. $consulta = mysql_query($sql, $conEmp);
  947. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector
  948. and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  949. $resEmp2 = mysql_query($sql, $conEmp);
  950. $objeto = mysql_num_rows($resEmp2);
  951. $consulta = mysql_query($sql, $conEmp);
  952. if ($datatmp = mysql_fetch_array($resEmp2) and $sw_fertilizante == 0) {
  953. $id_nodo2 = $datatmp['id_nodo'];
  954. $p0 = $datatmp['p0'];
  955. $p1 = $datatmp['p1'];
  956. $p2 = $datatmp['p2'];
  957. $resultado = strtotime($p_fecha_fin) - strtotime($date1);
  958. $resultado = round($resultado / 60);
  959. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $nuevo_pulso, $tipoRiego);
  960. exit;
  961. }
  962. $sql1 = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  963. $consulta1 = mysql_query($sql1, $conEmp);
  964. $sql1 = "UPDATE programacion_riego SET update_p = 0,pulso_acumulado = 0,ultimo_pulso = 0,pulsos = $nuevo_pulso WHERE n_orden_riego_sector = $n_orden_riego_sector";
  965. $consulta1 = mysql_query($sql1, $conEmp);
  966. return 0;
  967. }
  968. }
  969. }
  970. } else {
  971. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE id_programacion_riego = $id_programacion_riego";
  972. $consulta = mysql_query($sql, $conEmp);
  973. }
  974. }
  975. }
  976. function subriego_lemvalve($riego) {
  977. global $equipoPrin;
  978. global $campos;
  979. global $date1;
  980. $no_iniciado = 0;
  981. global $conEmp;
  982. global $id_empresaPrin;
  983. $db = json_decode($riego, true);
  984. $iniciado = 1;
  985. $estado = $db[0]['estado'];
  986. $id_sector = $db[0]['id_sector'];
  987. $id_programacion_riego = $db[0]['id_programacion_riego'];
  988. $pulsos = $db[0]['pulsos'];
  989. $sector = $db[0]['sector'];
  990. $id_nodo = $db[0]['id_nodo'];
  991. $p_fecha_ini = $db[0]['p_fecha_ini'];
  992. $p_fecha_fin = $db[0]['p_fecha_fin'];
  993. $r_fecha_ini = $db[0]['r_fecha_ini'];
  994. $r_fecha_fin = $db[0]['r_fecha_fin'];
  995. $tipoRiego = $db[0]['tipoRiego'];
  996. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  997. if ($estado == $iniciado and $date1 >= $p_fecha_ini and $date1 <= $p_fecha_fin) {
  998. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and c.id_nodo = $campos[1] and p.id_programacion_riego = $id_programacion_riego order by c.orden";
  999. $resEmp4 = mysql_query($sql, $conEmp);
  1000. $objeto = mysql_num_rows($resEmp4);
  1001. $p = 0;
  1002. if ($datatmp = mysql_fetch_array($resEmp4)) {
  1003. $id_nodo2 = $datatmp['id_nodo'];
  1004. $p0 = $datatmp['p0'];
  1005. $p1 = $datatmp['p1'];
  1006. $p2 = $datatmp['p2'];
  1007. $resultado = strtotime($p_fecha_fin) - strtotime($date1);
  1008. $resultado = round($resultado / 60);
  1009. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  1010. exit;
  1011. }
  1012. }
  1013. }
  1014. function cancelar_riegos($riego) {
  1015. global $campos;
  1016. global $date1;
  1017. global $conEmp;
  1018. $no_iniciado = 0;
  1019. $db = json_decode($riego, true);
  1020. $id_sector = $db[0]['id_sector'];
  1021. $id_nodo = $db[0]['id_nodo'];
  1022. $pulsos = $db[0]['pulsos'];
  1023. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  1024. $reiniciarAutomatico = 3;
  1025. $reiniciarManual = 33;
  1026. $tipoRiego = $db[0]['tipoRiego'];
  1027. if (($db[0]['estado'] == $reiniciarAutomatico or $db[0]['estado'] == $reiniciarManual or $db[0]['estado'] == 12)
  1028. and $date1 >= $db[0]['p_fecha_ini']) {
  1029. $finintentoreset = strtotime($db[0]['r_fecha_fin']);
  1030. $minutos2 = 20;
  1031. $minutos2 = $minutos2 * 60;
  1032. $finintentoreset += $minutos2;
  1033. $finintentoreset = date("Y-m-d H:i:s", $finintentoreset);
  1034. $iniciointetoreset = strtotime($db[0]['r_fecha_fin']);
  1035. $minutos3 = 5;
  1036. $minutos3 = $minutos3 * 60;
  1037. $iniciointetoreset += $minutos3;
  1038. $iniciointetoreset = date("Y-m-d H:i:s", $iniciointetoreset);
  1039. if ($date1 < $finintentoreset) {
  1040. $sql = "select tipo_riego from sector_configuracion where id_sector = $id_sector";
  1041. $resEmp = mysql_query($sql, $conEmp);
  1042. if ($datatmp = mysql_fetch_array($resEmp)) {
  1043. $tipo_riego = $datatmp['tipo_riego'];
  1044. }
  1045. switch ($tipo_riego) {
  1046. case 'valvula_primero':
  1047. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo
  1048. and p.n_orden_riego_sector = $n_orden_riego_sector and c.estado !=0 and c.estado !=2 order by c.orden asc";
  1049. $resEmp2 = mysql_query($sql, $conEmp);
  1050. $objeto = mysql_num_rows($resEmp2);
  1051. if ($datatmp = mysql_fetch_array($resEmp2)) {
  1052. $id_nodo2 = $datatmp['id_nodo'];
  1053. $p0 = $datatmp['p0'];
  1054. $p1 = $datatmp['p1'];
  1055. $p2 = $datatmp['p2'];
  1056. $tiempodiff = 0;
  1057. $sql = "UPDATE control_riego SET reset = 1 WHERE id_programacion_riego = $id_programacion_riego[$i]";
  1058. $consulta = mysql_query($sql, $conEmp);
  1059. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $tiempodiff, $pulsos, 'A');
  1060. exit;
  1061. } else {
  1062. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 2 WHERE id_programacion_riego = $id_programacion_riego[$i]";
  1063. $consulta = mysql_query($sql, $conEmp);
  1064. }
  1065. break;
  1066. case 'bomba_primero':
  1067. echo $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo
  1068. and p.n_orden_riego_sector = $n_orden_riego_sector and c.estado !=0 and c.estado !=2 order by c.orden desc";
  1069. $resEmp2 = mysql_query($sql, $conEmp);
  1070. $objeto = mysql_num_rows($resEmp2);
  1071. if ($datatmp = mysql_fetch_array($resEmp2)) {
  1072. $id_nodo2 = $datatmp['id_nodo'];
  1073. $p0 = $datatmp['p0'];
  1074. $p1 = $datatmp['p1'];
  1075. $p2 = $datatmp['p2'];
  1076. $tiempodiff = 0;
  1077. $sql = "UPDATE control_riego SET reset = 1 WHERE id_nodo = $id_nodo2 and id_sector = $id_sector";
  1078. $consulta = mysql_query($sql, $conEmp);
  1079. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $tiempodiff, $pulsos, 'A');
  1080. exit;
  1081. } else {
  1082. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 2 WHERE id_programacion_riego = $id_programacion_riego[$i]";
  1083. $consulta = mysql_query($sql, $conEmp);
  1084. }
  1085. break;
  1086. }
  1087. } else {
  1088. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $n_orden_riego_sector";
  1089. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  1090. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)) {
  1091. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($n_orden_riego_sector,1)";
  1092. $consulta = mysql_query($sql, $conEmp);
  1093. respuesta_lembox($n_orden_riego_sector,8);
  1094. }
  1095. }
  1096. }
  1097. }
  1098. function lemtrash($riego){
  1099. global $date1;
  1100. global $conEmp;
  1101. global $id_empresaPrin;
  1102. global $red;
  1103. global $campos;
  1104. $fecha_fin_delta = $date1;
  1105. $nodos = array();
  1106. $db = json_decode($riego, true);
  1107. $id_sector = $db[0]['id_sector'];
  1108. $id_nodo = $db[0]['id_nodo'];
  1109. $tipoRiego = $db[0]['tipoRiego'];
  1110. $id_programacion_riego = $db[0]['id_programacion_riego'];
  1111. $pulsos = $db[0]['pulsos'];
  1112. $intentostotales = $db[0]['intentostotales'];
  1113. $p_fecha_ini = $db[0]['p_fecha_ini'];
  1114. $strp_fecha_fin = strtotime($p_fecha_ini);
  1115. $strp_now = strtotime($date1) + 300;
  1116. $fecha_fin_trash = date('"Y-m-d H:i:s"', (strtotime($date1) - 300));
  1117. //<-- Lista de nodos que estan funcionando bien -->//
  1118. $sql = "select id_sector from programacion_riego where id_empresa = $id_empresaPrin and red = $red and p_fecha_ini < '$date1' and p_fecha_fin > $fecha_fin_trash and (estado = 1 or estado = 0) group by id_sector";
  1119. $resEmp = mysql_query($sql, $conEmp);
  1120. while ($datatmp = mysql_fetch_array($resEmp)){
  1121. $id_sector = $datatmp['id_sector'];
  1122. $sql = "select id_nodo,p0,p1,p2 FROM control_riego WHERE
  1123. id_sector = $id_sector";
  1124. $resEmp2 = mysql_query($sql, $conEmp);
  1125. while($datatmp2 = mysql_fetch_array($resEmp2)){
  1126. $id_nodo = $datatmp2['id_nodo'];
  1127. array_push($nodos, $id_nodo);
  1128. }
  1129. }
  1130. $nodos = json_encode($nodos);
  1131. $nodos = trim($nodos, ']');
  1132. $nodos = trim($nodos, '[');
  1133. if (empty($nodos)){
  1134. $nodos = '""';
  1135. }
  1136. //<-- Fin lista de nodos que estan funcionando bien -->//
  1137. //<-- Inicio recolector basura equipos que cerraron mal -->//
  1138. $sql = "SELECT id_nodo,p0,p1,p2,intentos_reset FROM control_riego WHERE id_nodo not in ($nodos) and (estado = 3 or estado = 1) and tipo != 3 group by id_nodo order by intentos_reset asc";
  1139. $resEmp2 = mysql_query($sql, $conEmp);
  1140. $objeto = mysql_num_rows($resEmp2);
  1141. $x = 0;
  1142. if ($datatmp = mysql_fetch_array($resEmp2)){
  1143. $id_nodo99 = $datatmp['id_nodo'];
  1144. $p0 = $datatmp['p0'];
  1145. $p1 = $datatmp['p1'];
  1146. $p2 = $datatmp['p2'];
  1147. $reset = $datatmp['intentos_reset'];
  1148. $reset = $reset + 1;
  1149. $bdp0 = $p0;
  1150. $bdp1 = $p1;
  1151. $bdp2 = $p2;
  1152. $askp0 = $campos[4];
  1153. $askp1 = $campos[5];
  1154. $askp2 = $campos[6];
  1155. if($reset <= 3 ){
  1156. enviar_orden($id_nodo99, 65534, 16, 9, 2, 55555, 0, 'a');
  1157. $sql2 = "update control_riego set intentos_reset = $reset where id_nodo = $id_nodo99";
  1158. $consulta2 = mysql_query($sql2, $conEmp);
  1159. exit;
  1160. }
  1161. }
  1162. //<-- Fin recolector basura equipos que cerraron mal -->//
  1163. //<-- Inicio recolector basura valvulas que cerraron mal -->//
  1164. //Obtener valvulas que deberian cerrar
  1165. //Obtengo id de programacion_riego que iniciaran
  1166. $sql = "SELECT * FROM `programacion_val` WHERE estado = 1"." and id_nodo not in ($nodos)";
  1167. $consulta = mysql_query($sql, $conEmp);
  1168. while ($datatmp = mysql_fetch_array($consulta)) {
  1169. $id_nodo3=$datatmp['id_nodo'];
  1170. $px=$datatmp['px'];
  1171. //obtener valvulas de los nodos que iniciaron
  1172. $sql2 = "SELECT * FROM `control_val` WHERE px = $px and id_nodo = $id_nodo3";
  1173. $consulta2 = mysql_query($sql2, $conEmp);
  1174. while ($datatmp2 = mysql_fetch_array($consulta2)) {
  1175. $id_sector=$datatmp2['id_sector'];
  1176. $tiempo_diff_final=$datatmp2['tiempo_diff_final'];
  1177. //obter margen de tiempo en el cual puedo gatillar la alerta
  1178. $sql9 = "SELECT * FROM `programacion_riego` WHERE id_sector = $id_sector and estado = 2 order by id_programacion_riego desc";
  1179. $consulta9 = mysql_query($sql9, $conEmp);
  1180. if ($datatmp9 = mysql_fetch_array($consulta9)) {
  1181. $r_fecha_fin=$datatmp9['r_fecha_fin'];
  1182. $deltaEspera = strtotime($r_fecha_fin);
  1183. $tiempo_diff_final = $tiempo_diff_final * 60;
  1184. $deltaEspera+=$tiempo_diff_final;
  1185. $deltaEspera = date("Y-m-d H:i:s", $deltaEspera);
  1186. $deltaEspera2 = strtotime($deltaEspera);
  1187. $deltaEspera2+=180;
  1188. $deltaEspera2 = date("Y-m-d H:i:s", $deltaEspera2);
  1189. //Si no tengo ningun riego qeu se este efectuando en este momento y su presostato esta activo ademas de calzar con los rangos de tiempo
  1190. //se genera una alerta
  1191. //Preguntar si hay un riego agendado en este momento para esa valvula
  1192. $sql3 = "SELECT * FROM `programacion_riego` WHERE id_sector = $id_sector and estado = 1";
  1193. $consulta3 = mysql_query($sql3, $conEmp);
  1194. if (!$datatmp3 = mysql_fetch_array($consulta3)) {
  1195. if ($date1 > $deltaEspera) {
  1196. $sql = "UPDATE programacion_val set update_p = 0,estado = 2 WHERE id_nodo = $id_nodo3 and px = $px and estado = 1";
  1197. $consulta = mysql_query($sql, $conEmp);
  1198. $sql = "UPDATE control_val set update_p = 0,estado = 2 WHERE id_nodo = $id_nodo3 and px = $px";
  1199. $consulta = mysql_query($sql, $conEmp);
  1200. }
  1201. }
  1202. }else{
  1203. //Si no tengo ningun riego qeu se este efectuando en este momento y su presostato esta activo ademas de calzar con los rangos de tiempo
  1204. //se genera una alerta
  1205. //Preguntar si hay un riego agendado en este momento para esa valvula
  1206. $sql3 = "SELECT * FROM `programacion_riego` WHERE id_sector = $id_sector and estado = 1";
  1207. $consulta3 = mysql_query($sql3, $conEmp);
  1208. if (!$datatmp3 = mysql_fetch_array($consulta3)) {
  1209. $sql = "UPDATE programacion_val set update_p = 0,estado = 2 WHERE id_nodo = $id_nodo3 and px = $px and estado = 1";
  1210. $consulta = mysql_query($sql, $conEmp);
  1211. $sql = "UPDATE control_val set update_p = 0,estado = 2 WHERE id_nodo = $id_nodo3 and px = $px";
  1212. $consulta = mysql_query($sql, $conEmp);
  1213. }
  1214. }
  1215. }
  1216. }
  1217. //<-- Fin recolector basura valvulas que cerraron mal -->//
  1218. }
  1219. function repeticion_lemtransmisor($estado,$n_orden_riego_sector){
  1220. global $conEmp;
  1221. global $red;
  1222. $sql = "SELECT c.tipo FROM control_riego as c,nodo as n WHERE c.id_nodo = n.id_nodo and c.tipo = 3 and n.red = $red";
  1223. $consulta = mysql_query($sql, $conEmp);
  1224. if ($datatmp = mysql_fetch_array($consulta)) {
  1225. if($estado == 1 or $estado == 2){
  1226. respuesta_lembox($n_orden_riego_sector,$estado);
  1227. }
  1228. }
  1229. }
  1230. function valvula_primero_que_bomba($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales){
  1231. // Tomando el id nodo del coordindador y el id sector se obtienen los componentes necesarios para el inicio del riego desde la tabla control_riego
  1232. global $date1;
  1233. global $conEmp;
  1234. $sql = "SELECT c.completo,c.tipo_elemento,c.iteracion,c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado != 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden desc";
  1235. $resEmp2 = mysql_query($sql, $conEmp);
  1236. $objeto = mysql_num_rows($resEmp2);
  1237. $a = 0;
  1238. while ($datatmp = mysql_fetch_array($resEmp2)) {
  1239. $completo = $datatmp['completo'];
  1240. $id_nodo2 = $datatmp['id_nodo'];
  1241. $iteracion = $datatmp['iteracion'];
  1242. $p0 = $datatmp['p0'];
  1243. $p1 = $datatmp['p1'];
  1244. $p2 = $datatmp['p2'];
  1245. $orden = $datatmp['orden'];
  1246. $estado2 = $datatmp['estado'];
  1247. $intentos = $datatmp['intentos'];
  1248. $resultado = strtotime($db[0]['p_fecha_fin']) - strtotime($date1);
  1249. $resultado = round($resultado / 60);
  1250. $tipo_elemento = $datatmp['tipo_elemento'];
  1251. if ($tipo_elemento == "valvula") {
  1252. //Soy una valvula
  1253. $pulsofinal = 0;
  1254. if ($intentos == 0 and $iteracion < 4) {
  1255. //Check = 0 y numero de vueltas menor a 4 estricto
  1256. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and c.estado != 1 and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' order by c.orden asc";
  1257. $resEmp_orden = mysql_query($sql, $conEmp);
  1258. if ($datatmp_orden = mysql_fetch_array($resEmp_orden)) {
  1259. $id_nodo_orden = $datatmp_orden['id_nodo'];
  1260. if ($id_nodo2 == $id_nodo_orden) {
  1261. //Soy la ultima valvula
  1262. $intentos++;
  1263. $iteracion_update = $iteracion + 1;
  1264. $sql_bomba = "SELECT id_nodo from control_riego where id_sector = $id_sector and tipo_elemento = 'control'";
  1265. $resp_bomba = mysql_query($sql_bomba, $conEmp);
  1266. if ($data_bomba = mysql_fetch_array($resp_bomba)) {
  1267. //No soy grabitacional
  1268. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = $iteracion_update WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1269. $consulta = mysql_query($sql, $conEmp);
  1270. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1271. exit;
  1272. } else {
  1273. //Soy grabitacional
  1274. $sql_completo = "SELECT completo from control_riego where id_sector = $id_sector group by id_sector";
  1275. $resp_completo = mysql_query($sql_completo, $conEmp);
  1276. if ($datatmp_completo = mysql_fetch_array($resp_completo)) {
  1277. $completo_bd = $datatmp_completo['completo'];
  1278. }
  1279. if ($completo_bd == 1) {
  1280. if ($iteracion >= 3) {
  1281. //Acepto partit sin todos los componentes
  1282. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' and c.estado = 1 order by c.orden asc";
  1283. $resEmp_valve = mysql_query($sql, $conEmp);
  1284. $objeto_valvula = mysql_num_rows($resEmp_valve);
  1285. if ($objeto_valvula >= 1) {
  1286. //acepto partir con componentes mal abiertos
  1287. //Acepto partit sin todos los componentes
  1288. $sql1 = "SELECT * from control_riego where iteracion <= 3 and id_sector = $id_sector and (estado = 3 or estado = 0)";
  1289. $resEmp_valve1 = mysql_query($sql1, $conEmp);
  1290. $objeto_valvula1 = mysql_num_rows($resEmp_valve1);
  1291. if ($objeto_valvula1 >= 1) {
  1292. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 1 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1293. $consulta1 = mysql_query($sql1, $conEmp);
  1294. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector";
  1295. $consulta = mysql_query($sql, $conEmp);
  1296. exit;
  1297. }else{
  1298. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update,intentos = 0 WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1299. $consulta = mysql_query($sql, $conEmp);
  1300. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1301. exit;
  1302. }
  1303. }else{
  1304. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1305. $consulta1 = mysql_query($sql1, $conEmp);
  1306. $sql = "select id_sector_fertil_riego from configuracion_fertil_riegos where id_programacion_riego = $id_programacion_riego";
  1307. $consulta = mysql_query($sql, $link);
  1308. while ($datatmp = mysql_fetch_array($consulta)) {
  1309. $id_sector_fertil_riego = $datatmp['id_sector_fertil_riego'];
  1310. $sql = "update programacion_riego set update_p = 0,estado = 8 , intentos = 0 where id_empresa = $id_empresaPrin and id_programacion_riego = $id_sector_fertil_riego"; //
  1311. $consulta = mysql_query($sql, $conEmp);
  1312. }
  1313. exit;
  1314. }
  1315. } else {
  1316. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update,intentos = 0 WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1317. $consulta = mysql_query($sql, $conEmp);
  1318. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1319. exit;
  1320. }
  1321. } else {
  1322. //No aguanto riegos con componentes no abiertos
  1323. if ($iteracion >= 3) {
  1324. //No acepto partir con componentes mal abiertos
  1325. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' and (c.estado = 0 or c.estado = 3) order by c.orden asc";
  1326. $resEmp_valve = mysql_query($sql, $conEmp);
  1327. $objeto_valvula = mysql_num_rows($resEmp_valve);
  1328. if ($objeto_valvula >= 1) {
  1329. //Cierro lo que abri
  1330. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1331. $consulta1 = mysql_query($sql1, $conEmp);
  1332. $sql = "select id_sector_fertil_riego from configuracion_fertil_riegos where id_programacion_riego = $id_programacion_riego";
  1333. $consulta = mysql_query($sql, $link);
  1334. while ($datatmp = mysql_fetch_array($consulta)) {
  1335. $id_sector_fertil_riego = $datatmp['id_sector_fertil_riego'];
  1336. $sql = "update programacion_riego set update_p = 0,estado = 8 , intentos = 0 where id_empresa = $id_empresaPrin and id_programacion_riego = $id_sector_fertil_riego"; //
  1337. $consulta = mysql_query($sql, $conEmp);
  1338. }
  1339. $sql2 = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  1340. $resEmp3 = mysql_query($sql2, $conEmp);
  1341. $objeto = mysql_num_rows($resEmp3);
  1342. while ($datatmp3 = mysql_fetch_array($resEmp3)) {
  1343. $orden2 = $datatmp3['orden'];
  1344. $id_nodo3 = $datatmp3['id_nodo'];
  1345. $p0 = $datatmp3['p0'];
  1346. $p1 = $datatmp3['p1'];
  1347. $p2 = $datatmp3['p2'];
  1348. $estado2 = $datatmp3['estado'];
  1349. $intentos = $datatmp3['intentos'];
  1350. $resultado = 0;
  1351. enviar_orden($id_nodo3, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  1352. exit;
  1353. }
  1354. exit;
  1355. } else {
  1356. //Todo Partio
  1357. $sql = "UPDATE control_riego SET intentos = 1,update_p = 0,iteracion = $iteracion_update WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1358. $consulta = mysql_query($sql, $conEmp);
  1359. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1360. exit;
  1361. }
  1362. } else {
  1363. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update,intentos = 0 WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1364. $consulta = mysql_query($sql, $conEmp);
  1365. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1366. exit;
  1367. }
  1368. }
  1369. }
  1370. } else {
  1371. $sql = "UPDATE control_riego SET update_p = 0,intentos = 1 WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  1372. $consulta = mysql_query($sql, $conEmp);
  1373. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1374. exit;
  1375. //Actualizo y envio orden
  1376. }
  1377. }
  1378. }else{
  1379. if($completo == 1){
  1380. $sql = "select * from control_riego where id_sector = $id_sector4 and id_empresa = $id_empresaPrin and estado = 0 order by iteracion asc"; //<----aqui
  1381. $resEmp4 = mysql_query($sql, $conEmp);
  1382. $objeto4 = mysql_num_rows($resEmp4);
  1383. if ($datatmp4 = mysql_fetch_array($resEmp4)) {
  1384. $iteracion4 = $datatmp4['iteracion'];
  1385. if ($iteracion4 >= 3){
  1386. $sql = "select * from control_riego where id_sector = $id_sector4 and id_empresa = $id_empresaPrin and estado = 1"; //<----aqui
  1387. $resEmp5 = mysql_query($sql, $conEmp);
  1388. $objeto5 = mysql_num_rows($resEmp5);
  1389. if ($objeto5 > 0) {
  1390. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  1391. $consulta = mysql_query($sql, $conEmp);
  1392. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_ini = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  1393. $consulta = mysql_query($sql, $conEmp);
  1394. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  1395. $consulta = mysql_query($sql, $conEmp);
  1396. $sql = "UPDATE control_riego SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and id_sector = $id_sector4";
  1397. $consulta = mysql_query($sql, $conEmp);
  1398. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector4";
  1399. $consulta = mysql_query($sql, $conEmp);
  1400. }
  1401. }
  1402. }
  1403. }
  1404. }
  1405. } else {
  1406. //soy una bomba
  1407. $pulsofinal = $pulsos;
  1408. if($iteracion < 4){
  1409. $iteracion_update = $iteracion + 1;
  1410. if ($completo == 1) {
  1411. //Acepto partit sin todos los componentes
  1412. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' and c.estado = 1 order by c.orden asc";
  1413. $resEmp_valve = mysql_query($sql, $conEmp);
  1414. $objeto_valvula = mysql_num_rows($resEmp_valve);
  1415. if ($objeto_valvula >= 1) {
  1416. //Puedo regar
  1417. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  1418. $consulta = mysql_query($sql, $conEmp);
  1419. $resultado = $resultado - 1 ;
  1420. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1421. exit;
  1422. } else {
  1423. //Cierro lo que abri
  1424. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1425. // $consulta1 = mysql_query($sql1, $conEmp);
  1426. $sql2 = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  1427. $resEmp3 = mysql_query($sql2, $conEmp);
  1428. $objeto = mysql_num_rows($resEmp3);
  1429. while ($datatmp3 = mysql_fetch_array($resEmp3)) {
  1430. $orden2 = $datatmp3['orden'];
  1431. $id_nodo3 = $datatmp3['id_nodo'];
  1432. $p0 = $datatmp3['p0'];
  1433. $p1 = $datatmp3['p1'];
  1434. $p2 = $datatmp3['p2'];
  1435. $estado2 = $datatmp3['estado'];
  1436. $intentos = $datatmp3['intentos'];
  1437. $resultado = 0;
  1438. enviar_orden($id_nodo3, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  1439. exit;
  1440. }
  1441. exit;
  1442. }
  1443. } else {
  1444. //No acepto partir con componentes mal abiertos
  1445. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' and c.estado = 0 order by c.orden asc";
  1446. $resEmp_valve = mysql_query($sql, $conEmp);
  1447. $objeto_valvula = mysql_num_rows($resEmp_valve);
  1448. if ($objeto_valvula >= 1) {
  1449. //Cierro lo que abri
  1450. cerrar_componentes_abiertos($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales);
  1451. } else {
  1452. //Todo Partio
  1453. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  1454. $consulta = mysql_query($sql, $conEmp);
  1455. $resultado = $resultado - 1 ;
  1456. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1457. exit;
  1458. }
  1459. }
  1460. }else{
  1461. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1462. $consulta1 = mysql_query($sql1, $conEmp);
  1463. $sql = "select id_sector_fertil_riego from configuracion_fertil_riegos where id_programacion_riego = $id_programacion_riego";
  1464. $consulta = mysql_query($sql, $link);
  1465. while ($datatmp = mysql_fetch_array($consulta)) {
  1466. $id_sector_fertil_riego = $datatmp['id_sector_fertil_riego'];
  1467. $sql = "update programacion_riego set update_p = 0,estado = 8 , intentos = 0 where id_empresa = $id_empresaPrin and id_programacion_riego = $id_sector_fertil_riego"; //
  1468. $consulta = mysql_query($sql, $conEmp);
  1469. }
  1470. $sql2 = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  1471. $resEmp3 = mysql_query($sql2, $conEmp);
  1472. $objeto = mysql_num_rows($resEmp3);
  1473. while ($datatmp3 = mysql_fetch_array($resEmp3)) {
  1474. $orden2 = $datatmp3['orden'];
  1475. $id_nodo3 = $datatmp3['id_nodo'];
  1476. $orden;
  1477. $p0 = $datatmp3['p0'];
  1478. $p1 = $datatmp3['p1'];
  1479. $p2 = $datatmp3['p2'];
  1480. $estado2 = $datatmp3['estado'];
  1481. $intentos = $datatmp3['intentos'];
  1482. $resultado = 0;
  1483. enviar_orden($id_nodo3, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  1484. exit;
  1485. }
  1486. }
  1487. }
  1488. }
  1489. }
  1490. function bomba_primero_que_valvula($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales){
  1491. global $date1;
  1492. global $conEmp;
  1493. $sql = "SELECT c.completo,c.tipo_elemento,c.iteracion,c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado != 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  1494. $resEmp2 = mysql_query($sql, $conEmp);
  1495. $objeto = mysql_num_rows($resEmp2);
  1496. $a = 0;
  1497. while ($datatmp = mysql_fetch_array($resEmp2)) {
  1498. $completo = $datatmp['completo'];
  1499. $id_nodo2 = $datatmp['id_nodo'];
  1500. $iteracion = $datatmp['iteracion'];
  1501. $p0 = $datatmp['p0'];
  1502. $p1 = $datatmp['p1'];
  1503. $p2 = $datatmp['p2'];
  1504. $orden = $datatmp['orden'];
  1505. $estado2 = $datatmp['estado'];
  1506. $intentos = $datatmp['intentos'];
  1507. $resultado = strtotime($db[0]['p_fecha_fin']) - strtotime($date1);
  1508. $resultado = round($resultado / 60);
  1509. $tipo_elemento = $datatmp['tipo_elemento'];
  1510. if ($tipo_elemento == "valvula") {
  1511. //Soy una valvula
  1512. $pulsofinal = 0;
  1513. if ($intentos == 0 and $iteracion < 4) {
  1514. //Check = 0 y numero de vueltas menor a 4 estricto
  1515. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and c.estado != 1 and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' order by c.orden desc";
  1516. $resEmp_orden = mysql_query($sql, $conEmp);
  1517. if ($datatmp_orden = mysql_fetch_array($resEmp_orden)) {
  1518. $id_nodo_orden = $datatmp_orden['id_nodo'];
  1519. if ($id_nodo2 == $id_nodo_orden) {
  1520. $intentos++;
  1521. $iteracion_update = $iteracion + 1;
  1522. $sql_bomba = "SELECT id_nodo from control_riego where id_sector = $id_sector and tipo_elemento = 'control'";
  1523. $resp_bomba = mysql_query($sql_bomba, $conEmp);
  1524. $sql_completo = "SELECT completo from control_riego where id_sector = $id_sector group by id_sector";
  1525. $resp_completo = mysql_query($sql_completo, $conEmp);
  1526. if ($datatmp_completo = mysql_fetch_array($resp_completo)) {
  1527. $completo_bd = $datatmp_completo['completo'];
  1528. }
  1529. if ($completo_bd == 1) {
  1530. if ($iteracion >= 3) {
  1531. //acepto partir con componentes mal abiertos
  1532. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1533. $consulta1 = mysql_query($sql1, $conEmp);
  1534. $sql = "select id_sector_fertil_riego from configuracion_fertil_riegos where id_programacion_riego = $id_programacion_riego";
  1535. $consulta = mysql_query($sql, $link);
  1536. while ($datatmp = mysql_fetch_array($consulta)) {
  1537. $id_sector_fertil_riego = $datatmp['id_sector_fertil_riego'];
  1538. $sql = "update programacion_riego set update_p = 0,estado = 8 , intentos = 0 where id_empresa = $id_empresaPrin and id_programacion_riego = $id_sector_fertil_riego"; //
  1539. $consulta = mysql_query($sql, $conEmp);
  1540. }
  1541. exit;
  1542. } else {
  1543. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update,intentos = 0 WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1544. $consulta = mysql_query($sql, $conEmp);
  1545. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1546. exit;
  1547. }
  1548. } else {
  1549. //No aguanto riegos con componentes no abiertos
  1550. if ($iteracion >= 3) {
  1551. //No acepto partir con componentes mal abiertos
  1552. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' and (c.estado = 0 and c.estado = 3) order by c.orden asc";
  1553. $resEmp_valve = mysql_query($sql, $conEmp);
  1554. $objeto_valvula = mysql_num_rows($resEmp_valve);
  1555. if ($objeto_valvula >= 1) {
  1556. cerrar_componentes_abiertos($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales);
  1557. } else {
  1558. //Todo Partio
  1559. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 1 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1560. $consulta1 = mysql_query($sql1, $conEmp);
  1561. exit;
  1562. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector";
  1563. $consulta = mysql_query($sql, $conEmp);
  1564. }
  1565. } else {
  1566. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update,intentos = 0 WHERE id_sector = $id_sector and tipo_elemento != 'control'";
  1567. $consulta = mysql_query($sql, $conEmp);
  1568. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1569. exit;
  1570. }
  1571. }
  1572. } else {
  1573. $sql = "UPDATE control_riego SET update_p = 0,intentos = 1 WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  1574. $consulta = mysql_query($sql, $conEmp);
  1575. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1576. exit;
  1577. //Actualizo y envio orden
  1578. }
  1579. }
  1580. }
  1581. } else {
  1582. //soy una bomba
  1583. $pulsofinal = $pulsos;
  1584. if($iteracion < 4){
  1585. $iteracion_update = $iteracion + 1;
  1586. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.tipo_elemento = 'valvula' and c.estado = 1 order by c.orden desc";
  1587. $resEmp_valve = mysql_query($sql, $conEmp);
  1588. $objeto_valvula = mysql_num_rows($resEmp_valve);
  1589. //Puedo regar
  1590. $sql = "UPDATE control_riego SET update_p = 0,iteracion = $iteracion_update WHERE id_sector = $id_sector and id_nodo = $id_nodo2";
  1591. $consulta = mysql_query($sql, $conEmp);
  1592. $resultado=$resultado+2;
  1593. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsofinal, $tipoRiego);
  1594. exit;
  1595. }else{
  1596. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1597. $consulta1 = mysql_query($sql1, $conEmp);
  1598. $sql = "select id_sector_fertil_riego from configuracion_fertil_riegos where id_programacion_riego = $id_programacion_riego";
  1599. $consulta = mysql_query($sql, $link);
  1600. while ($datatmp = mysql_fetch_array($consulta)) {
  1601. $id_sector_fertil_riego = $datatmp['id_sector_fertil_riego'];
  1602. $sql = "update programacion_riego set update_p = 0,estado = 8 , intentos = 0 where id_empresa = $id_empresaPrin and id_programacion_riego = $id_sector_fertil_riego"; //
  1603. $consulta = mysql_query($sql, $conEmp);
  1604. }
  1605. }
  1606. }
  1607. }
  1608. }
  1609. function cerrar_componentes_abiertos($id_empresaPrin,$n_orden_riego_sector,$db,$id_sector,$id_nodo,$tipoRiego,$id_programacion_riego,$pulsos,$intentostotales){
  1610. global $date1;
  1611. global $conEmp;
  1612. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 7 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1613. $consulta1 = mysql_query($sql1, $conEmp);
  1614. $sql = "select tipo_riego from sector_configuracion where id_sector = $id_sector";
  1615. $resEmp = mysql_query($sql, $conEmp);
  1616. if ($datatmp = mysql_fetch_array($resEmp)) {
  1617. $tipo_riego = $datatmp['tipo_riego'];
  1618. }
  1619. switch ($tipo_riego) {
  1620. case 'valvula_primero':
  1621. $sql2 = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  1622. $resEmp3 = mysql_query($sql2, $conEmp);
  1623. $objeto = mysql_num_rows($resEmp3);
  1624. while ($datatmp3 = mysql_fetch_array($resEmp3)) {
  1625. $orden2 = $datatmp3['orden'];
  1626. $id_nodo3 = $datatmp3['id_nodo'];
  1627. $orden;
  1628. $p0 = $datatmp3['p0'];
  1629. $p1 = $datatmp3['p1'];
  1630. $p2 = $datatmp3['p2'];
  1631. $estado2 = $datatmp3['estado'];
  1632. $intentos = $datatmp3['intentos'];
  1633. $resultado = 0;
  1634. enviar_orden($id_nodo3, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  1635. exit;
  1636. }
  1637. break;
  1638. case 'bomba_primero':
  1639. $sql2 = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_programacion_riego = $id_programacion_riego order by c.orden desc";
  1640. $resEmp3 = mysql_query($sql2, $conEmp);
  1641. $objeto = mysql_num_rows($resEmp3);
  1642. while ($datatmp3 = mysql_fetch_array($resEmp3)) {
  1643. $orden2 = $datatmp3['orden'];
  1644. $id_nodo3 = $datatmp3['id_nodo'];
  1645. $orden;
  1646. $p0 = $datatmp3['p0'];
  1647. $p1 = $datatmp3['p1'];
  1648. $p2 = $datatmp3['p2'];
  1649. $estado2 = $datatmp3['estado'];
  1650. $intentos = $datatmp3['intentos'];
  1651. $resultado = 0;
  1652. enviar_orden($id_nodo3, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  1653. exit;
  1654. }
  1655. break;
  1656. }
  1657. }
  1658. function guardar_ultimo_pulso($tipo_nodo){
  1659. global $conEmp;global $campos;global $date1;
  1660. if($tipo_nodo == 1){
  1661. //Actualizar Caudal Inicial
  1662. $sql = "select nombre_tabla_muestra,nombre_tabla_muestra_mensual from nodo where tipo_nodo = 1";
  1663. $consulta = mysql_query($sql, $conEmp);
  1664. while($datatmp = mysql_fetch_array($consulta)) {
  1665. $nombre_tabla_muestra = $datatmp['nombre_tabla_muestra'];
  1666. $nombre_tabla_muestra_mensual = $datatmp['nombre_tabla_muestra_mensual'];
  1667. }
  1668. $sql = "SELECT * FROM programacion WHERE estado = 1 and n_orden_riego_sector != 0"; //<-----aqui
  1669. $resEmp = mysql_query($sql, $conEmp);
  1670. while ($datatmp = mysql_fetch_array($resEmp)) {
  1671. $id_sector = $datatmp['id_sector'];
  1672. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  1673. $sql = "SELECT id_sensor FROM control_riego WHERE id_sector = $id_sector"; //<-----aqui
  1674. $resEmp2 = mysql_query($sql, $conEmp);
  1675. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  1676. $id_sensor = $datatmp2['id_sensor'];
  1677. $x=0;
  1678. $sql = "SELECT fecha,valor FROM $nombre_tabla_muestra_mensual WHERE id_sensor = $id_sensor order by id_muestra desc limit 3"; //<-----aqui
  1679. $resEmp3 = mysql_query($sql, $conEmp);
  1680. while ($datatmp = mysql_fetch_array($resEmp3)) {
  1681. $valor[$x] = $datatmp['valor'];
  1682. $valor[$x] = $valor[$x] * 10;
  1683. $x++;
  1684. }
  1685. $value_d = $valor[0];
  1686. $valor_anterior = $valor[1];
  1687. $valor_anteanterior = $valor[2];
  1688. if (($value_d - $valor_anterior) >= 0) {
  1689. $sql = "UPDATE programacion SET update_p = 0,ultimo_pulso = '$value_d' WHERE n_orden_riego_sector = $n_orden_riego_sector";
  1690. $consulta = mysql_query($sql, $conEmp);
  1691. } else {
  1692. if (($value_d - $valor_anterior + 65535) > ($valor_anterior - $valor_anteanterior) * 2) {// el problema es cuando $q=0
  1693. $sql = "UPDATE programacion SET update_p = 0,ultimo_pulso = '$valor_anterior' WHERE n_orden_riego_sector = $n_orden_riego_sector";
  1694. $consulta = mysql_query($sql, $conEmp);
  1695. } else {
  1696. $dato = $value_d + 65535;
  1697. $sql = "UPDATE programacion SET update_p = 0,ultimo_pulso = '$dato' WHERE n_orden_riego_sector = $n_orden_riego_sector";
  1698. $consulta = mysql_query($sql, $conEmp);
  1699. }
  1700. }
  1701. }
  1702. }
  1703. }
  1704. }
  1705. function actualizar_gravitacional($riego){
  1706. global $campos;
  1707. global $date1;
  1708. global $conEmp;
  1709. $db = json_decode($riego, true);
  1710. $id_nodo = $db[0]['id_nodo'];
  1711. $estado = $db[0]['estado'];
  1712. $id_programacion_riego = $db[0]['id_programacion_riego'];
  1713. if (($campos[3] == 0) and $id_nodo != $campos[1] and $estado == 1 and $date1 >= $db[0]['p_fecha_ini'] and $date1 <= $db[0]['p_fecha_fin']) {
  1714. $sql = "select tipo_nodo from nodo where id_nodo = $id_nodo";
  1715. $resEmp2 = mysql_query($sql, $conEmp);
  1716. $objeto = mysql_num_rows($resEmp2);
  1717. if ($datatmp9 = mysql_fetch_array($resEmp2)) {
  1718. $tipo = $datatmp9['tipo_nodo'];
  1719. }
  1720. // Si el id nodo corresponde a un nodo normal simplemente se actualiza su fecha de inicio real debido a que los nodos no tienen verificacion
  1721. // atravez de sus pines
  1722. if($tipo == 8){
  1723. $sql = "UPDATE programacion_riego SET r_fecha_fin = '$date1' WHERE id_programacion_riego = $id_programacion_riego";
  1724. $consulta = mysql_query($sql, $conEmp);
  1725. }
  1726. }
  1727. }
  1728. function corroborar_luces_transmisor($id_nodo,$l1,$l2,$l3,$l4,$l5,$l6,$l7,$l8){
  1729. global $conEmp;
  1730. global $campos;
  1731. //en esta funcion traigo el id nodo transmisor y los estados de todas sus luces
  1732. $sql = "select estado from control_riego where id_nodo = $id_nodo ";
  1733. $resEmp = mysql_query($sql, $conEmp);
  1734. if ($datatmp = mysql_fetch_array($resEmp)) {
  1735. $tipo_transmisor = $datatmp['estado'];
  1736. }
  1737. if($tipo_transmisor != 2){
  1738. $sql = "select id_sensor,tipo from sensor where id_nodo = $id_nodo ";
  1739. $resEmp = mysql_query($sql, $conEmp);
  1740. $orden_l1='00';
  1741. $orden_l2='00';
  1742. $orden_l3='00';
  1743. $orden_l4='00';
  1744. $orden_l5='00';
  1745. $orden_l6='00';
  1746. $orden_l7='00';
  1747. $orden_l8='00';
  1748. while ($datatmp = mysql_fetch_array($resEmp)) {
  1749. $id_sensor = $datatmp['id_sensor'];
  1750. $tipo = $datatmp['tipo'];
  1751. if($tipo=='p0'){
  1752. //aca encontraremos las referencias $l1 y $l2
  1753. $sqlp0 = "select id_sector,px from sector_riego where id_nodo = $campos[1] and id_sensor=$id_sensor order by px desc";
  1754. $resEmpp0 = mysql_query($sqlp0, $conEmp);
  1755. $cont=0;
  1756. while ($datatmpp0 = mysql_fetch_array($resEmpp0)) {
  1757. $px = $datatmpp0['px'];
  1758. $id_sector_transmisor = $datatmpp0['id_sector'];
  1759. if($px==1){
  1760. $orden_l1 = verificar_bd_transmisor($id_sector_transmisor);
  1761. }else if($px==2){//px sera si o si 2
  1762. $orden_l2 = verificar_bd_transmisor($id_sector_transmisor);
  1763. }
  1764. }
  1765. }else if($tipo=='p1'){
  1766. //aca encontraremos las referencias $l3 , $l4 y $l5
  1767. $sqlp1 = "select id_sector,px from sector_riego where id_nodo = $campos[1] and id_sensor=$id_sensor order by px desc";
  1768. $resEmpp1 = mysql_query($sqlp1, $conEmp);
  1769. $cont=0;
  1770. while ($datatmpp1 = mysql_fetch_array($resEmpp1)) {
  1771. $px = $datatmpp1['px'];
  1772. $id_sector_transmisor = $datatmpp1['id_sector'];
  1773. if($px==3){
  1774. $orden_l3 = verificar_bd_transmisor($id_sector_transmisor);
  1775. }else if($px==4){
  1776. $orden_l4 = verificar_bd_transmisor($id_sector_transmisor);
  1777. }else if($px==6){//px sera si o si 6
  1778. $orden_l5 = verificar_bd_transmisor($id_sector_transmisor);
  1779. }
  1780. }
  1781. }else if($tipo=='p2'){
  1782. //aca encontraremos las referencias $l6 , $l7 y $l8
  1783. $sqlp2 = "select id_sector,px from sector_riego where id_nodo = $campos[1] and id_sensor=$id_sensor order by px desc";
  1784. $resEmpp2 = mysql_query($sqlp2, $conEmp);
  1785. $cont=0;
  1786. while ($datatmpp2 = mysql_fetch_array($resEmpp2)) {
  1787. $px = $datatmpp2['px'];
  1788. $id_sector_transmisor = $datatmpp2['id_sector'];
  1789. if($px==1){
  1790. $orden_l6 = verificar_bd_transmisor($id_sector_transmisor);
  1791. }else if($px==2){
  1792. $orden_l7 = verificar_bd_transmisor($id_sector_transmisor);
  1793. }else if($px==3){//px sera si o si 3
  1794. $orden_l8 = verificar_bd_transmisor($id_sector_transmisor);
  1795. }
  1796. }
  1797. }
  1798. }
  1799. $pin_tiempo = bindec('1'.$orden_l4.$orden_l3.$orden_l2.$orden_l1);
  1800. $pin_pulso = bindec('1'.$orden_l8.$orden_l7.$orden_l6.$orden_l5);
  1801. if($l1==5 || $l1==4 || $l2==5 || $l2==4 || $l3==5 || $l3==4 || $l4==5 || $l4==4 || $l5==5 || $l5==4 || $l6==5 || $l6==4 || $l7==5 || $l7==4 || $l8==5 || $l8==4){
  1802. }else{
  1803. enviar_orden($id_nodo,'69','0','0','0',$pin_tiempo,$pin_pulso,'A');
  1804. }
  1805. //enviar_orden($id_nodo,'69','0','0','0',$pin_tiempo,$pin_pulso,'A');
  1806. //aca deberia enviar la orden para que modifique las luces si existiera alguna discrepancia entre lo que llega y lo que hay
  1807. }else{
  1808. enviar_orden($id_nodo,'69','0','0','0','256','256','A');
  1809. }
  1810. }
  1811. function verificar_bd_transmisor($id_sector){
  1812. global $conEmp;
  1813. $switch_detenido = 0;
  1814. $switch_error = 0;
  1815. $sql = "select * from control_riego where id_sector = $id_sector";
  1816. $resEmp3 = mysql_query($sql, $conEmp);
  1817. $número_filas = mysql_num_rows($resEmp3);
  1818. $switch_inicio = 0;
  1819. while ($datatmp3 = mysql_fetch_array($resEmp3)) {
  1820. $estado = $datatmp3['estado'];
  1821. if($estado == 1){
  1822. $switch_inicio++;
  1823. }
  1824. if($estado == 2 || $estado == 0){
  1825. $switch_detenido++;
  1826. }
  1827. if($estado == 3){
  1828. $switch_error++;
  1829. }
  1830. }
  1831. $estado_componente = $datatmp3['estado'];
  1832. if($switch_detenido == $número_filas){
  1833. //significa que estoy en estado detenido
  1834. return('00');
  1835. }else if($switch_inicio==$número_filas){
  1836. //significa que estoy andando
  1837. return('01');
  1838. }else if($switch_error > 0){//$estado_componente==3
  1839. //significa que estoy en estado de transicion o con error
  1840. return('10');
  1841. }
  1842. }
  1843. function cerrar_riegos_pausados_finalizados($riego){
  1844. global $campos;
  1845. global $date1;
  1846. global $conEmp;
  1847. global $id_empresaPrin;
  1848. $pausado = 12;
  1849. $db = json_decode($riego, true);
  1850. $id_nodo = $db[0]['id_nodo'];
  1851. $id_subriego = $db[0]['id_subriego'];
  1852. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  1853. $cancelar = 7;
  1854. if ($db[0]['estado'] == $pausado and $date1 >= $db[0]['p_fecha_ini'] and $date1 >= $db[0]['p_fecha_fin']) {
  1855. $sql = "update programacion_riego set update_p = 0,estado = 2 where id_subriego = $id_subriego and id_empresa = $id_empresaPrin ";
  1856. $consulta = mysql_query($sql, $conEmp);
  1857. }
  1858. }
  1859. function iniciar_fertil_riego($riego,$n_orden_riego_sector){
  1860. global $date1;
  1861. global $conEmp;
  1862. global $id_empresaPrin;
  1863. $date1 = new DateTime("now");
  1864. $date1 = $date1->format('Y-m-d H:i:s');
  1865. $db = json_decode($riego, true);
  1866. $id_programacion_riego = $db[0]['id_programacion_riego'];
  1867. $id_nodo = $db[0]['id_nodo'];
  1868. $pulsofinal = $db[0]['pulsos'];
  1869. $pulsos = $db[0]['pulsos'];
  1870. $sql = "select agitador,bm,bf,delay_ini,delay_fin,id_fertil_riego from configuracion_fertil_riegos WHERE id_sector_fertil_riego = $id_programacion_riego";
  1871. $consulta = mysql_query($sql, $conEmp);
  1872. if ($datatmp = mysql_fetch_array($consulta)) {
  1873. $agitadora = $datatmp['agitadora'];
  1874. $bm = $datatmp['bm'];
  1875. $bf = $datatmp['bf'];
  1876. $delay_ini = $datatmp['delay_ini'];
  1877. $delay_fin = $datatmp['delay_fin'];
  1878. $id_fertil_riego = $datatmp['id_fertil_riego'];
  1879. }
  1880. $p_fecha_ini = $db[0]['p_fecha_ini'];
  1881. $intentos = $db[0]['intentostotales'];
  1882. $p_fecha_ini = strtotime($p_fecha_ini) + ($delay_ini * 60);
  1883. $p_fecha_ini = date("Y-m-d H:i:s", $p_fecha_ini);
  1884. if($p_fecha_ini < $date1){
  1885. if($intentos < 3){
  1886. $p0 = 0;
  1887. $p0_aux = 0;
  1888. $p1_aux = 0;
  1889. $p2_aux = 0;
  1890. $sql = "select p0,m0 from sector_fertil_riego WHERE id_sector_fertil_riego = $id_fertil_riego";
  1891. $consulta = mysql_query($sql, $conEmp);
  1892. if ($datatmp = mysql_fetch_array($consulta)) {
  1893. $p0_fertil = $datatmp['p0'];
  1894. $m0 = $datatmp['m0'];
  1895. }
  1896. if($pulsos > 0) {$p0 += 0;} else {$p0 += 16;}
  1897. if($m0 == 0) {$p0 += 0; $p0_aux += 8;} else {$p0 += 8; $p2_aux += 4;}
  1898. $p0 += $p0_fertil;
  1899. $intentos+= 1;
  1900. $resultado = strtotime($db[0]['p_fecha_fin']) - strtotime($date1);
  1901. $resultado = round($resultado / 60);
  1902. $resultado -= $delay_fin;
  1903. $consulta = mysql_query($sql, $conEmp);
  1904. enviar_orden($id_nodo, $n_orden_riego_sector, $p0, $bm, $bf, $resultado, $pulsofinal, $tipoRiego);
  1905. }else{
  1906. $sql1 = "UPDATE programacion_riego SET update_p = 0, estado = 8 WHERE n_orden_riego_sector = $n_orden_riego_sector and id_empresa = $id_empresaPrin";
  1907. $consulta1 = mysql_query($sql1, $conEmp);
  1908. }
  1909. }else{
  1910. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0
  1911. WHERE id_programacion_riego = $id_programacion_riego";
  1912. $consulta = mysql_query($sql, $conEmp);
  1913. }
  1914. }
  1915. function cancelar_fertil_riegos($riego,$n_orden_riego_sector){
  1916. global $date1;
  1917. global $conEmp;
  1918. $db = json_decode($riego, true);
  1919. $id_nodo = $db[0]['id_nodo'];
  1920. $pulsos = $db[0]['pulsos'];
  1921. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  1922. $id_programacion_riego = $db[0]['id_programacion_riego'];
  1923. $reiniciarAutomatico = 3;
  1924. $reiniciarManual = 33;
  1925. if (($db[0]['estado'] == $reiniciarAutomatico or $db[0]['estado'] == $reiniciarManual or $db[0]['estado'] == 12)
  1926. and $date1 >= $db[0]['p_fecha_ini']) {
  1927. $sql = "select agitador,bm,bf,delay_ini,delay_fin from configuracion_fertil_riegos WHERE id_sector_fertil_riego = $id_programacion_riego";
  1928. $consulta = mysql_query($sql, $conEmp);
  1929. if ($datatmp = mysql_fetch_array($consulta)) {
  1930. $tiempodiff = 0;
  1931. $finintentoreset = strtotime($db[0]['r_fecha_fin']);
  1932. $minutos2 = 5;
  1933. $minutos2 = $minutos2 * 60;
  1934. $finintentoreset += $minutos2;
  1935. $finintentoreset = date("Y-m-d H:i:s", $finintentoreset);
  1936. $iniciointetoreset = strtotime($db[0]['r_fecha_fin']);
  1937. $minutos3 = 5;
  1938. $minutos3 = $minutos3 * 60;
  1939. $iniciointetoreset += $minutos3;
  1940. $iniciointetoreset = date("Y-m-d H:i:s", $iniciointetoreset);
  1941. if ($date1 < $finintentoreset) {
  1942. enviar_orden($id_nodo, $n_orden_riego_sector, 0, 0, 0, $tiempodiff, $pulsos, 'A');
  1943. exit;
  1944. }
  1945. }
  1946. }
  1947. }
  1948. function validar_pines_fertil_riego($riego,$n_orden_riego_sector){
  1949. global $equipoPrin;
  1950. global $campos;
  1951. global $date1;
  1952. $no_iniciado = 0;
  1953. global $conEmp;
  1954. global $id_empresaPrin;
  1955. $db = json_decode($riego, true);
  1956. $iniciado = 1;
  1957. $estado = $db[0]['estado'];
  1958. $id_sector = $db[0]['id_sector'];
  1959. $ultimo_pulso = $db[0]['ultimo_pulso'];
  1960. $id_programacion_riego = $db[0]['id_programacion_riego'];
  1961. $pulso_acumulado = $db[0]['pulso_acumulado'];
  1962. $pulsos = $db[0]['pulsos'];
  1963. $sector = $db[0]['sector'];
  1964. $id_nodo = $db[0]['id_nodo'];
  1965. $p_fecha_ini = $db[0]['p_fecha_ini'];
  1966. $p_fecha_fin = $db[0]['p_fecha_fin'];
  1967. $r_fecha_ini = $db[0]['r_fecha_ini'];
  1968. $r_fecha_fin = $db[0]['r_fecha_fin'];
  1969. $tipoRiego = $db[0]['tipoRiego'];
  1970. $n_orden_riego_sector = $db[0]['n_orden_riego_sector'];
  1971. $prioridad = $db[0]['prioridad'];
  1972. //Calcular el tiempo que estubo caido y asignarlo al riego
  1973. $fecha1 = strtotime($db[0]['r_fecha_fin']);
  1974. $fecha3 = strtotime($db[0]['p_fecha_fin']);
  1975. $fechafin = $fecha3 - $fecha1;
  1976. $min = $fechafin / 60;
  1977. if ($id_nodo == $campos[1] and $estado == $iniciado and $date1 >= $db[0]['p_fecha_ini'] and
  1978. $date1 <= $db[0]['p_fecha_fin'] and $min > 5) {
  1979. $sql = "select agitador,bm,bf,delay_ini,delay_fin from configuracion_fertil_riegos WHERE id_sector_fertil_riego = $id_programacion_riego";
  1980. $consulta = mysql_query($sql, $conEmp);
  1981. if ($datatmp = mysql_fetch_array($consulta)) {
  1982. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,c.sensor FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo order by c.orden asc";
  1983. $resEmp2 = mysql_query($sql, $conEmp);
  1984. $objeto = mysql_num_rows($resEmp2);
  1985. $x = 0;
  1986. if ($datatmp = mysql_fetch_array($resEmp2)) {
  1987. $id_nodo99 = $datatmp['id_nodo'];
  1988. $p0 = $datatmp['p0'];
  1989. $p1 = $datatmp['p1'];
  1990. $p2 = $datatmp['p2'];
  1991. $sensor = $datatmp['sensor'];
  1992. $bdp0 = $p0;
  1993. $bdp1 = $p1;
  1994. $bdp2 = $p2;
  1995. $askp0 = $campos[4];
  1996. $askp1 = $campos[5];
  1997. $askp2 = $campos[6];
  1998. if (($bdp0 == ($bdp0 & $askp0)) and ( $bdp1 == ($bdp1 & $askp1)) and ( $bdp2 == ($bdp2 & $askp2))) {
  1999. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE
  2000. id_programacion_riego = $id_programacion_riego";
  2001. $consulta = mysql_query($sql, $conEmp);
  2002. $sql = "select referencia from sensor WHERE sensor = $sensor";
  2003. $consulta = mysql_query($sql, $conEmp);
  2004. if ($datatmp = mysql_fetch_array($consulta)) {
  2005. $referencia = $datatmp['referencia'];
  2006. $pulso_actual = $campos[$referencia] - $pulso_acumulado;
  2007. $sql = "UPDATE programacion_riego SET update_p = 0,ultimo_pulso = '$pulso_actual' WHERE id_programacion_riego = $id_programacion_riego";
  2008. $consulta = mysql_query($sql, $conEmp);
  2009. }
  2010. } else {
  2011. $nuevo_pulso = 0;
  2012. //Se detecta si es un riego por pulsos preguntanto si los pulsos que debe regar son mayores a 0
  2013. if ($pulsos != 0) {//si entra al if se calcula los pulsos que faltan por regar y el tiempo que se demorara en regar
  2014. $sql = "SELECT caudal_pulso,caudal_inferior,pulso_minuto from control_riego where
  2015. id_sector = $id_sector and caudal_pulso != 0 group by id_sector";
  2016. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  2017. if ($datatmp = mysql_fetch_array($consulta)) {
  2018. $caudal_pulso = $datatmp['caudal_pulso']; //cn
  2019. $caudal_inferior = $datatmp['caudal_inferior']; //ci
  2020. $pi = $caudal_inferior / $caudal_pulso;
  2021. $nuevo_pulso = $pulsos - $ultimo_pulso;
  2022. $tmax = $nuevo_pulso / $pi;
  2023. }
  2024. $minutos = round($tmax);
  2025. $minutos = $minutos * 60;
  2026. $fecha = $date1;
  2027. $fecha += $minutos;
  2028. $tmax = date("Y-m-d H:i:s", $fecha);
  2029. } else {
  2030. //Calcular el tiempo que estubo caido y asignarlo al riego
  2031. $fecha1 = strtotime($db[0]['r_fecha_fin']);
  2032. $fecha2 = strtotime($date1);
  2033. $fecha3 = strtotime($db[0]['p_fecha_fin']);
  2034. $fechafin = $fecha2 - $fecha1;
  2035. $min = $fechafin * 60;
  2036. $fechafin = $fecha3 + $min;
  2037. $fechafin = date("Y-m-d H:i:s", $fechafin);
  2038. }
  2039. //obtener el tiempo que estubo caido el riego
  2040. if ($prioridad == 0) {
  2041. //si el riego estubo caido mas de una hora calcular los pulsos necesarios para terminar lo en la fecha que se agendo
  2042. //----------------------------------------------------------------------------------------------------------------------
  2043. //----------------------------------------------------------------------------------------------------------------------
  2044. //Si la validacion de pines es incorrecta se da por entendido que el coordinador tubo algun problema y este se reinicio
  2045. //perdiendo la orden debido a esto se le entrega nuevamente la misma orden pero con el tiempo de termino re calculado
  2046. $sql = "update control_riego set update_p = 0,estado = 0 , intentos = 0,iteracion = 0 where id_nodo = $campos[1]";
  2047. $consulta = mysql_query($sql, $conEmp);
  2048. $sql = "SELECT max(id_subriego) FROM programacion_riego where id_empresa = $id_empresaPrin "; //<-----aqui
  2049. $resEmp2 = mysql_query($sql, $conEmp);
  2050. $objeto = mysql_num_rows($resEmp2);
  2051. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2052. $id_subriegomax = $datatmp['max(id_subriego)'];
  2053. }
  2054. $sql = "SELECT id_subriego FROM programacion_riego WHERE n_orden_riego_sector = $n_orden_riego_sector
  2055. and id_empresa = $id_empresaPrin "; //<-----aqui
  2056. $resEmp2 = mysql_query($sql, $conEmp);
  2057. $objeto = mysql_num_rows($resEmp2);
  2058. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2059. $id_subriego = $datatmp['id_subriego'];
  2060. if ($id_subriego == 0) {
  2061. $id_subriego = $id_subriegomax + 1;
  2062. }
  2063. }
  2064. $sql = "select max(n_identificador) from programacion_riego where id_nodo = $campos[1]";
  2065. $resEmp4 = mysql_query($sql, $conEmp);
  2066. if ($datatmp2 = mysql_fetch_array($resEmp4)) {
  2067. $n_identificador = $datatmp2['max(n_identificador)'];
  2068. $n_identificador = $n_identificador + 1;
  2069. }
  2070. $id_programacion = ultimo_id_programacion($id_empresaPrin);
  2071. $sql = "select agitador,bm,bf,delay_ini,delay_fin from configuracion_fertil_riegos WHERE id_sector_fertil_riego = $id_programacion_riego";
  2072. $sql = "Insert into programacion_riego (`id_programacion_riego`,`equipo`,`id_empresa`,`n_identificador`,`id_subriego`,`n_orden_riego_sector`,`id_nodo`,`p_fecha_ini`,`p_fecha_fin`,`sector`,`r_fecha_ini`,`r_fecha_fin`,`estado`,`id_sector`,`intentos`)
  2073. Values($id_programacion,$equipoPrin,$id_empresaPrin,$n_identificador,$id_subriego,0,$campos[1],'$r_fecha_ini','$r_fecha_fin','$sector'
  2074. ,'$r_fecha_ini','$r_fecha_fin','1','$id_sector','0')"; //<---aqui
  2075. $consulta = mysql_query($sql, $conEmp);
  2076. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 0,r_fecha_ini = '$date1',r_fecha_fin ='$date1',
  2077. id_subriego = $id_subriego,update_p = 0 WHERE id_programacion_riego = $id_programacion_riego";
  2078. $consulta = mysql_query($sql, $conEmp);
  2079. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector
  2080. and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden asc";
  2081. $resEmp2 = mysql_query($sql, $conEmp);
  2082. $objeto = mysql_num_rows($resEmp2);
  2083. $consulta = mysql_query($sql, $conEmp);
  2084. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2085. $id_nodo2 = $datatmp['id_nodo'];
  2086. $p0 = $datatmp['p0'];
  2087. $p1 = $datatmp['p1'];
  2088. $p2 = $datatmp['p2'];
  2089. $resultado = strtotime($p_fecha_fin) - strtotime($date1);
  2090. $resultado = round($resultado / 60);
  2091. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $nuevo_pulso, $tipoRiego);
  2092. exit;
  2093. }
  2094. $sql1 = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector2 and id_nodo = $id_nodo2";
  2095. $consulta1 = mysql_query($sql1, $conEmp);
  2096. $sql1 = "UPDATE programacion_riego SET update_p = 0,pulso_acumulado = 0,ultimo_pulso = 0,pulsos = $nuevo_pulso WHERE n_orden_riego_sector = $n_orden_riego_sector";
  2097. $consulta1 = mysql_query($sql1, $conEmp);
  2098. return 0;
  2099. }
  2100. }
  2101. }
  2102. } else {
  2103. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE id_programacion_riego = $id_programacion_riego";
  2104. $consulta = mysql_query($sql, $conEmp);
  2105. }
  2106. }
  2107. }
  2108. $tipo = 0;
  2109. ///////////////////////////////////////////////////////////////////////Inicio del Codigo de Control////////////////////////////////////////////////////////////////
  2110. $fp = fopen("ack.txt", "a+");
  2111. fputs($fp, $date1 . "-- " . '+' . $campos[0] . '+' . $campos[1] . '+' . $campos[2]);
  2112. /////Diferenciacion entre un riego manual y un riego automatico///////////////////////////////////////////////////////////////////////////////////////////
  2113. $sql = "select tipo from sensor WHERE id_nodo = $campos[1] and tipo = 'p0'";
  2114. $consulta = mysql_query($sql, $conEmp);
  2115. if ($datatmp = mysql_fetch_array($consulta)) {
  2116. $tipo = 1;
  2117. }
  2118. $sql = "select id_empresa,equipo from control_riego WHERE id_nodo = $campos[1]";
  2119. $consulta = mysql_query($sql, $conEmp);
  2120. if ($datatmp = mysql_fetch_array($consulta)) {
  2121. $id_empresaPrin = $datatmp['id_empresa'];
  2122. $equipoPrin = $datatmp['equipo'];
  2123. }
  2124. $sql = "select id_empresa,direccion from nodo WHERE id_nodo = $campos[1]"; //david
  2125. $consulta = mysql_query($sql, $conEmp);
  2126. if ($datatmp = mysql_fetch_array($consulta)) {
  2127. $id_empresalembox = $datatmp['id_empresa'];
  2128. $direccion = $datatmp['direccion']; //david
  2129. }
  2130. $sql = "select equipo from control_riego WHERE id_nodo = $campos[1]"; //david
  2131. $consulta = mysql_query($sql, $conEmp);
  2132. if ($datatmp = mysql_fetch_array($consulta)) {
  2133. $id_equipolembox = $datatmp['equipo'];
  2134. }
  2135. if (!isset($id_equipolembox)){
  2136. exit;
  2137. }
  2138. //Si detecto el inicio del modo manual entonces;
  2139. inicio_riego_manual($id_empresalembox, $id_equipolembox);
  2140. //Actualizar la Fecha fin now, los riegos que esten en manual en este momento, que sean de la empresa del lembox
  2141. //Y pasa a estado 11 los riegos que estaban agendados en modo automatico en el futuro para que estos no sean tomados por el coordinador
  2142. actualizar_fechas_inicio_riegos_manuales($id_empresalembox,$id_equipolembox);
  2143. //Si detecto el fin del modo manual entonces;
  2144. fin_modo_manual($id_empresalembox, $id_equipolembox);
  2145. //Si no existen riegos manuales los riegos que se encuentran en estado 11 pasaran nuevamente a estado 0 pero solo los que cumplan la condicion de que su fecha de inicio se mayor a la fecha now
  2146. //Si no es un riego manual entonces:
  2147. if ($tipo != 1) {
  2148. $sql = "UPDATE control_riego set update_p = 0,fecha = '$date1' WHERE id_nodo = $campos[1]";
  2149. $consulta = mysql_query($sql, $conEmp);
  2150. //$campos[3] es el estado que envia el coordiandor al servidor los estados pueden ser
  2151. // 0 = Consulta.
  2152. // 1 = Inicio.
  2153. // 2 = Termino.
  2154. // 3 = Cancelar.
  2155. // 5 = Reinicio.
  2156. // 6 = Fin incompleto.
  2157. // 8 = Cancelado
  2158. // 10 = Eliminados
  2159. // 11 = Ocultos por prioridad a riegos Manuales
  2160. //Si el estado es 0 lo cual quiere decir que el coordinador esta consultando si hay algun riego agendado entra en el if de consulta
  2161. if ($campos[3] == 0){
  2162. $tipo_nodo = "";
  2163. //$sql = "select tipo_nodo from nodo where id_nodo = $campos[1]"; //david comente
  2164. $sql = "select tipo_nodo,direccion from nodo where id_nodo = $campos[1]"; //david
  2165. $resEmp2 = mysql_query($sql, $conEmp);
  2166. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2167. $tipo_nodo = $datatmp['tipo_nodo'];
  2168. }
  2169. //Caudalimetro-----------------------------------------------------------------------------------------------------------------------------------------
  2170. //IMPORTANTE LOS DATOS DE LOS CAUDALIMETROS SE ESTAN GUARDANDO SEGUN SU REFERENCIA C1 = REFERENCIA 1 C2 = REFERENCIA 2 C3 = REFERENCIA 3
  2171. guardar_caudalimetros($tipo_nodo);
  2172. if($id_empresaPrin == 95){
  2173. guardar_ultimo_pulso($tipo_nodo);
  2174. }
  2175. $sql = "select id_nodo from sector_configuracion_fertilizante WHERE id_nodo = $campos[1]";
  2176. $consulta = mysql_query($sql, $conEmp);
  2177. if ($datatmp = mysql_fetch_array($consulta)) {
  2178. guardar_caudaliemtros_lemfert($tipo_nodo);
  2179. }
  2180. //---------------------------------------------------------------------------------------------------------------------------------------------
  2181. //Luego de saber que esta consultando se de saber si el que consulta es un Coordinador o un Nodo
  2182. // tipo_nodo = 1 el que consulta es un coordinador.
  2183. if ($tipo_nodo == 1 or $tipo_nodo == 2) {
  2184. //Actualizar fechas persostatos
  2185. $hoy2 = strtotime($date1);
  2186. $minutos = 2;
  2187. $minutos = $minutos * 60;
  2188. $hoy2 += $minutos;
  2189. $riego_ini_date = strtotime($date1);
  2190. $riego_ini_date-= 12 * 60 * 60;
  2191. $riego_ini_date = date("Y-m-d H:i:s", $riego_ini_date);
  2192. $riego_fin_date = strtotime($date1);
  2193. $riego_fin_date+= 12 * 60 * 60;
  2194. $riego_fin_date = date("Y-m-d H:i:s", $riego_fin_date);
  2195. $hoy2 = date("Y-m-d H:i:s", $hoy2);
  2196. $sql2 = "update programacion_val set update_p = 0,p_fecha_fin = '$hoy2',r_fecha_fin = '$date1' where estado = 1";
  2197. $consulta2 = mysql_query($sql2, $conEmp);
  2198. //-----------------------------
  2199. //Como es un coordinador se realiza la iteracion normal se obtiene el id nodo($campos[1]) del coordinador que esta consultando que junto con el id empresa y toma todos los riegos que esten asociados a esa empresa y a ese nodo
  2200. //exceptuando los nodos que son eliminados desde la plataforma los cuales tienen esado 10, los sub riegos los cuales su numero de orden es 1 y los riegos que estan estado 11 los cuales pasan a este estado cuando se pasa a modo manual
  2201. $sql = "select fecha_consulta,pulso_acumulado,ultimo_pulso,prioridad,pulsos,tipo,id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where p_fecha_ini > '$riego_ini_date' and id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and n_orden_riego_sector > 0 and (estado != 8 and estado != 10 and estado != 11) order by id_programacion_riego asc";
  2202. $resEmp20 = mysql_query($sql, $conEmp);
  2203. $objeto = mysql_num_rows($resEmp20);
  2204. $i = 0;
  2205. while ($datatmp = mysql_fetch_array($resEmp20)) {
  2206. $fecha_consulta = $datatmp['fecha_consulta'];
  2207. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2208. $tipoRiego = $datatmp['tipo'];
  2209. $pulsos = $datatmp['pulsos'];
  2210. $pulso_acumulado = $datatmp['pulso_acumulado'];
  2211. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2212. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2213. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2214. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2215. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2216. $id_sector = $datatmp['id_sector'];
  2217. $id_nodo = $datatmp['id_nodo'];
  2218. $id_empresa = $datatmp['id_empresa'];
  2219. $id_subriego = $datatmp['id_subriego'];
  2220. $sector = $datatmp['sector'];
  2221. $estado = $datatmp['estado'];
  2222. $ultimo_pulso = $datatmp['ultimo_pulso'];
  2223. $prioridad = $datatmp['prioridad'];
  2224. $intentos = $datatmp['intentos'];
  2225. $date2 = new DateTime($p_fecha_ini);
  2226. $date2 = $date2 = $date2->format('Y-m-d H:i:s');
  2227. $date3 = new DateTime($p_fecha_fin);
  2228. $date3 = $date3->format('Y-m-d H:i:s');
  2229. if ($fecha_consulta != Null) {
  2230. $fecha_consulta_aux = new DateTime($fecha_consulta);
  2231. $fecha_consulta_aux = $fecha_consulta_aux->format('Y-m-d H:i:s');
  2232. } else {
  2233. $fecha_consulta_aux = $date1;
  2234. }
  2235. $intentostotales = $intentos + 1;
  2236. $fecha = strtotime($fecha_consulta_aux);
  2237. $minutos = $intentos * 1;
  2238. $minutos = $minutos * 60;
  2239. $fecha += $minutos;
  2240. $fechaIntentos = date("Y-m-d H:i:s", $fecha);
  2241. $registro_riego = crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos, $tipoRiego);
  2242. // Si campos[0] es cero esto quiere decir que se reinicio el nodo lo cual hace que este cambie los intentos a 0 en la tabla control riego
  2243. if ($campos[0] == 0) {
  2244. $sql = "update control_riego set intentos = 0,iteracion = 0,estado = 0 where id_sector = $id_sector and id_nodo = $id_nodo order by orden desc";
  2245. $consulta = mysql_query($sql, $conEmp);
  2246. }
  2247. cerrar_riegos_pausados_finalizados($registro_riego);
  2248. //Se utiliza para actualizar fecha_fin_real de los riegos gravitacionales
  2249. actualizar_gravitacional($registro_riego);
  2250. //Se detectan los riegos que se encuentren con problemas de inicio esto de diferencian debido a que pasan a estar en estado 3 en la tala control_riego lo
  2251. //cual quiere decir que se encuentran con error y su numero de intentos de inicio es 3
  2252. riegos_con_problemas_de_inicio($registro_riego); //Listo
  2253. //Cierra riegos en donde se perdieron paquetes
  2254. riegos_pendiente($registro_riego); //Listo
  2255. //Cierra riegos pendientes cancelados
  2256. riegos_pendientes_cancelados($registro_riego); //Listo
  2257. //Cierra riegos mal Finalizados
  2258. //riegos_mal_finalizados($registro_riego); //Listo
  2259. //Reenvia mensajes al transmisor en caso de tener
  2260. if($tipoRiego == 'm'){
  2261. repeticion_lemtransmisor($estado,$n_orden_riego_sector);
  2262. }
  2263. //Si el estado del riego en el que se esta es 5 quiere decir que se desea reiniciar
  2264. reiniciar_riego($registro_riego);
  2265. //Pasar a cancelados los riegos con problemas
  2266. cancelar_riegos_con_problemas($registro_riego); //Listo
  2267. //Si el estado del riego en el que se esta el while es 0 y su fecha de inicio es menor a la fecha actual y la fecha fin es mayor a la fecha actual
  2268. //entonces el riego cumple con los requisitos para iniciar y ser enviado al coordinador
  2269. iniciar_riego($registro_riego); //Listo
  2270. //Si el riego tiene estado 1 el cual quiere decir que a iniciado, su fecha inicio es menor a la actual y su fecha fin es mayor a la actul y el id_nodo es diferente al que consulta quiere decir que es un lemvalve
  2271. //se pasa a verificar el estado de este utilizando sus pines
  2272. verificar_pines_lemvale($registro_riego); //Listo
  2273. // Si el id nodo corresponde a un coordindador se para a verificar sus pines segun una funcion en binario si esta es correcta
  2274. // simplemente se actualiza su fecha inicio real a la fecha actual
  2275. verificar_pines_lemcontrol($registro_riego);
  2276. //cancelar fertil riegos
  2277. cancelar_fertil_riegos($registro_riego,$n_orden_riego_sector); //Listo
  2278. //cancelar riegos
  2279. cancelar_riegos($registro_riego); //Listo
  2280. }
  2281. } else {
  2282. //Si tipo de nodo es igual a 0 esto quiere decir que es un nodo comun y corriente
  2283. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1]";
  2284. $consulta = mysql_query($sql, $conEmp);
  2285. // $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,estado = 0 WHERE id_nodo = $campos[1]";
  2286. // $consulta = mysql_query($sql, $conEmp);
  2287. $x = 0;
  2288. $y = 0;
  2289. $z = 0;
  2290. $sql = "SELECT id_sector FROM control_riego WHERE id_nodo = $campos[1]";
  2291. $resEmp1 = mysql_query($sql, $conEmp);
  2292. $objeto = mysql_num_rows($resEmp1);
  2293. while ($datatmp = mysql_fetch_array($resEmp1)) {
  2294. $id_sector4[$x] = $datatmp['id_sector'];
  2295. $sql = "SELECT p.id_nodo FROM control_riego as c,programacion_riego as p WHERE p.id_sector = $id_sector4[$x] group by p.id_nodo";
  2296. $resEmp2 = mysql_query($sql, $conEmp);
  2297. $objeto = mysql_num_rows($resEmp2);
  2298. while ($datatmp = mysql_fetch_array($resEmp2)) {
  2299. $id_nodo[$y] = $datatmp['id_nodo'];
  2300. //Como es un coordinador se realiza la iteracion normal se obtiene el id nodo($campos[1]) del coordinador que esta consultando que junto con el id empresa y toma todos los riegos que esten asociados a esa empresa y a ese nodo
  2301. //exceptuando los nodos que son eliminados desde la plataforma los cuales tienen esado 10, los sub riegos los cuales su numero de orden es 1 y los riegos que estan estado 11 los cuales pasan a este estado cuando se pasa a modo manual
  2302. $sql = "select fecha_consulta,pulso_acumulado,ultimo_pulso,prioridad,pulsos,tipo,id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and n_orden_riego_sector > 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc";
  2303. $resEmp20 = mysql_query($sql, $conEmp);
  2304. $objeto = mysql_num_rows($resEmp20);
  2305. $i = 0;
  2306. while ($datatmp = mysql_fetch_array($resEmp20)) {
  2307. $fecha_consulta = $datatmp['fecha_consulta'];
  2308. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2309. $tipoRiego = $datatmp['tipo'];
  2310. $pulsos = $datatmp['pulsos'];
  2311. $pulso_acumulado = $datatmp['pulso_acumulado'];
  2312. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2313. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2314. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2315. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2316. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2317. $id_sector = $datatmp['id_sector'];
  2318. $id_nodo = $datatmp['id_nodo'];
  2319. $id_empresa = $datatmp['id_empresa'];
  2320. $id_subriego = $datatmp['id_subriego'];
  2321. $sector = $datatmp['sector'];
  2322. $estado = $datatmp['estado'];
  2323. $ultimo_pulso = $datatmp['ultimo_pulso'];
  2324. $prioridad = $datatmp['prioridad'];
  2325. $intentos = $datatmp['intentos'];
  2326. $date2 = new DateTime($p_fecha_ini);
  2327. $date2 = $date2 = $date2->format('Y-m-d H:i:s');
  2328. $date3 = new DateTime($p_fecha_fin);
  2329. $date3 = $date3->format('Y-m-d H:i:s');
  2330. if ($fecha_consulta != Null) {
  2331. $fecha_consulta_aux = new DateTime($fecha_consulta);
  2332. $fecha_consulta_aux = $fecha_consulta_aux->format('Y-m-d H:i:s');
  2333. } else {
  2334. $fecha_consulta_aux = $date1;
  2335. }
  2336. $intentostotales = $intentos + 1;
  2337. $fecha = strtotime($fecha_consulta_aux);
  2338. $minutos = $intentos * 1;
  2339. $minutos = $minutos * 60;
  2340. $fecha += $minutos;
  2341. $fechaIntentos = date("Y-m-d H:i:s", $fecha);
  2342. $registro_riego = crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos, $tipoRiego);
  2343. //Si el estado del riego es 6 significa que el riego no cerro tod
  2344. //riegos_mal_finalizados($registro_riego);
  2345. subriego_lemvalve($registro_riego);
  2346. //Genero un sub riego y al ser un riego manual se obtiene de forma diferente el tiempo restante
  2347. }
  2348. }
  2349. }
  2350. }
  2351. }else if ($campos[3] == 1) {
  2352. /* ---Iniciar Logio----------------------------------------------------------------------------------------------- */
  2353. //Actualizar el estado del componente que ha comenzado a
  2354. $sql = "select c.id_sector,c.p0,c.p1,c.p2 from control_riego as c,programacion_riego as p where n_orden_riego_sector = $campos[2] and c.id_sector = p.id_sector and c.id_nodo = $campos[1]";
  2355. $resEmp2 = mysql_query($sql, $conEmp);
  2356. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2357. $id_sector = $datatmp['id_sector'];
  2358. $bdp1 = $datatmp['p1'];
  2359. $sql = "UPDATE control_riego SET update_p = 0,estado = 1,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector and id_nodo = $campos[1]";
  2360. $consulta = mysql_query($sql, $conEmp);
  2361. if ($bdp1 & 1) {
  2362. $caudal1 = $campos[8];
  2363. $sql = "UPDATE programacion_riego SET update_p = 0,pulso_acumulado = '$caudal1' WHERE n_orden_riego_sector = $campos[2]";
  2364. $consulta = mysql_query($sql, $conEmp);
  2365. } elseif ($bdp1 & 4) {
  2366. $caudal2 = $campos[9];
  2367. $sql = "UPDATE programacion_riego SET update_p = 0,pulso_acumulado = '$caudal2' WHERE n_orden_riego_sector = $campos[2]";
  2368. $consulta = mysql_query($sql, $conEmp);
  2369. } elseif ($bdp1 & 8) {
  2370. $caudal3 = $campos[10];
  2371. $sql = "UPDATE programacion_riego SET update_p = 0,pulso_acumulado = '$caudal3' WHERE n_orden_riego_sector = $campos[2]";
  2372. $consulta = mysql_query($sql, $conEmp);
  2373. }
  2374. }//Actualizar Caudal Inicial
  2375. $sql = "select nombre_tabla_muestra,nombre_tabla_muestra_mensual from nodo where tipo_nodo = 1";
  2376. $consulta = mysql_query($sql, $conEmp);
  2377. while ($datatmp = mysql_fetch_array($consulta)) {
  2378. $nombre_tabla_muestra = $datatmp['nombre_tabla_muestra'];
  2379. $nombre_tabla_muestra_mensual = $datatmp['nombre_tabla_muestra_mensual'];
  2380. }
  2381. $sql = "SELECT id_sector FROM programacion_riego WHERE n_orden_riego_sector = $campos[2]"; //<-----aqui
  2382. $resEmp2 = mysql_query($sql, $conEmp);
  2383. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2384. $id_sector = $datatmp['id_sector'];
  2385. $sql = "SELECT id_sensor FROM control_riego WHERE id_sector = $id_sector"; //<-----aqui
  2386. $resEmp2 = mysql_query($sql, $conEmp);
  2387. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2388. $id_sensor = $datatmp['id_sensor'];
  2389. $sql = "SELECT valor FROM $nombre_tabla_muestra_mensual WHERE id_sensor = $id_sensor order by id_muestra desc"; //<-----aqui
  2390. $resEmp2 = mysql_query($sql, $conEmp);
  2391. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2392. $valor = $datatmp['valor'];
  2393. $valor = $valor * 10;
  2394. $sql = "UPDATE programacion_riego SET update_p = 0,primer_pulso = '$valor' WHERE n_orden_riego_sector = $campos[2]";
  2395. $consulta = mysql_query($sql, $conEmp);
  2396. }
  2397. }
  2398. }
  2399. //------------------------------------------------------------------------------------------------------------
  2400. $sql = "select tipo_nodo from nodo where id_nodo = $campos[1]";
  2401. $resEmp2 = mysql_query($sql, $conEmp);
  2402. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2403. $tipo_nodo = $datatmp['tipo_nodo'];
  2404. if ($tipo_nodo == 1) {
  2405. //Si es un control esto quiere decir que el riego comenzo de forma correcta y sin problemas por lo cual se updatean los campos fecha inicio, fecha fin y estado
  2406. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2407. $consulta = mysql_query($sql, $conEmp);
  2408. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_ini = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2409. $consulta = mysql_query($sql, $conEmp);
  2410. $sql = "select tipo_riego from sector_configuracion where id_sector = $id_sector";
  2411. $resEmp = mysql_query($sql, $conEmp);
  2412. if ($datatmp = mysql_fetch_array($resEmp)) {
  2413. $tipo_riego = $datatmp['tipo_riego'];
  2414. }
  2415. switch ($tipo_riego) {
  2416. case 'valvula_primero':
  2417. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2418. $consulta = mysql_query($sql, $conEmp);
  2419. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector";
  2420. $consulta = mysql_query($sql, $conEmp);
  2421. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $campos[2]";
  2422. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  2423. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)){
  2424. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($campos[2],1)";
  2425. $consulta = mysql_query($sql, $conEmp);
  2426. //respuesta_lembox($campos[2],1);
  2427. }
  2428. respuesta_lembox($campos[2],1);
  2429. break;
  2430. case 'bomba_primero':
  2431. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2432. $consulta = mysql_query($sql, $conEmp);
  2433. break;
  2434. case 'fertil_riego':
  2435. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2436. $consulta = mysql_query($sql, $conEmp);
  2437. break;
  2438. }
  2439. //Luego de modificiar el riego que comenzo selecciono los siguientes riegos si esque hay que iniciar algun otro
  2440. $sql = "select fecha_consulta,pulso_acumulado,ultimo_pulso,prioridad,pulsos,tipo,id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and n_orden_riego_sector > 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc";
  2441. $resEmp20 = mysql_query($sql, $conEmp);
  2442. $objeto = mysql_num_rows($resEmp20);
  2443. $i = 0;
  2444. while ($datatmp = mysql_fetch_array($resEmp20)) {
  2445. $fecha_consulta = $datatmp['fecha_consulta'];
  2446. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2447. $tipoRiego = $datatmp['tipo'];
  2448. $pulsos = $datatmp['pulsos'];
  2449. $pulso_acumulado = $datatmp['pulso_acumulado'];
  2450. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2451. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2452. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2453. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2454. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2455. $id_sector = $datatmp['id_sector'];
  2456. $id_nodo = $datatmp['id_nodo'];
  2457. $id_empresa = $datatmp['id_empresa'];
  2458. $id_subriego = $datatmp['id_subriego'];
  2459. $sector = $datatmp['sector'];
  2460. $estado = $datatmp['estado'];
  2461. $ultimo_pulso = $datatmp['ultimo_pulso'];
  2462. $prioridad = $datatmp['prioridad'];
  2463. $intentos = $datatmp['intentos'];
  2464. $date2 = new DateTime($p_fecha_ini);
  2465. $date2 = $date2 = $date2->format('Y-m-d H:i:s');
  2466. $date3 = new DateTime($p_fecha_fin);
  2467. $date3 = $date3->format('Y-m-d H:i:s');
  2468. if ($fecha_consulta != Null) {
  2469. $fecha_consulta_aux = new DateTime($fecha_consulta);
  2470. $fecha_consulta_aux = $fecha_consulta_aux->format('Y-m-d H:i:s');
  2471. } else {
  2472. $fecha_consulta_aux = $date1;
  2473. }
  2474. $intentostotales = $intentos + 1;
  2475. $fecha = strtotime($fecha_consulta_aux);
  2476. $minutos = $intentos * 1;
  2477. $minutos = $minutos * 60;
  2478. $fecha += $minutos;
  2479. $fechaIntentos = date("Y-m-d H:i:s", $fecha);
  2480. $registro_riego = crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos, $tipoRiego);
  2481. //entonces el riego cumple con los requisitos para iniciar y ser enviado al coordinador
  2482. iniciar_riego($registro_riego); //Listo
  2483. //Si hay un riego que se este realizando en estos momentos se valida que sus pines sean los correctos si no es asi se da a entender que se reinicio el riego y se le asigna al coordinador el mismo riego pero con el tiempo recalculado
  2484. // Si el id nodo corresponde a un coordindador se para a verificar sus pines segun una funcion en binario si esta es correcta
  2485. // simplemente se actualiza su fecha inicio real a la fecha actual
  2486. verificar_pines_lemcontrol($registro_riego);
  2487. //Cancelar riego
  2488. cancelar_riegos($registro_riego); //Listo
  2489. //Si el estado del riego en el que se esta es 5 quiere decir que se desea reiniciar
  2490. reiniciar_riego($registro_riego);
  2491. }
  2492. } else {
  2493. //Significa que es un nodo el cual me esta respondiendo si inicio o no
  2494. $x = 0;
  2495. $y = 0;
  2496. $z = 0;
  2497. $sql = "SELECT estado from programacion_riego WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2498. $resEmp2 = mysql_query($sql, $conEmp);
  2499. $objeto = mysql_num_rows($resEmp2);
  2500. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2501. $estado = $datatmp['estado'];
  2502. }
  2503. if ($estado == 1) {
  2504. //Significa que el nodo que me esta respondiendo es un nodo que se cayo el cual esta volviendo esto lo se ya que el estado 1 de programacion_riego quiere decir que este riego ya habia iniciado con anterioridad
  2505. $sql = "SELECT c.id_sector FROM control_riego as c, programacion_riego as p WHERE c.id_nodo = $campos[1] and p.n_orden_riego_sector > $campos[2]";
  2506. $resEmp1 = mysql_query($sql, $conEmp);
  2507. $objeto = mysql_num_rows($resEmp2);
  2508. while ($datatmp = mysql_fetch_array($resEmp1)) {
  2509. $id_sector3 = $datatmp['id_sector'];
  2510. $sql = "SELECT p.id_nodo FROM control_riego as c,programacion_riego as p WHERE p.id_sector = $id_sector3 group by p.id_nodo";
  2511. $resEmp2 = mysql_query($sql, $conEmp);
  2512. $objeto = mysql_num_rows($resEmp2);
  2513. while ($datatmp = mysql_fetch_array($resEmp2)) {
  2514. $id_nodo = $datatmp['id_nodo'];
  2515. $sql = "SELECT fecha_consulta,pulso_acumulado,ultimo_pulso,prioridad,pulsos,tipo,id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_nodo = $id_nodo and n_orden_riego_sector > $campos[2] and n_orden_riego_sector != 0 and (estado != 10 or estado != 11) and id_empresa = $id_empresaPrin and red = $red order by n_orden_riego_sector desc"; //<-----aqui
  2516. $resEmp3 = mysql_query($sql, $conEmp);
  2517. $objeto = mysql_num_rows($resEmp2);
  2518. while ($datatmp = mysql_fetch_array($resEmp3)) {
  2519. $fecha_consulta = $datatmp['fecha_consulta'];
  2520. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2521. $tipoRiego = $datatmp['tipo'];
  2522. $pulsos = $datatmp['pulsos'];
  2523. $pulso_acumulado = $datatmp['pulso_acumulado'];
  2524. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2525. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2526. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2527. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2528. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2529. $id_sector = $datatmp['id_sector'];
  2530. $id_nodo = $datatmp['id_nodo'];
  2531. $id_empresa = $datatmp['id_empresa'];
  2532. $id_subriego = $datatmp['id_subriego'];
  2533. $sector = $datatmp['sector'];
  2534. $estado = $datatmp['estado'];
  2535. $ultimo_pulso = $datatmp['ultimo_pulso'];
  2536. $prioridad = $datatmp['prioridad'];
  2537. $intentos = $datatmp['intentos'];
  2538. $date2 = new DateTime($p_fecha_ini);
  2539. $date2 = $date2 = $date2->format('Y-m-d H:i:s');
  2540. $date3 = new DateTime($p_fecha_fin);
  2541. $date3 = $date3->format('Y-m-d H:i:s');
  2542. if ($fecha_consulta != Null) {
  2543. $fecha_consulta_aux = new DateTime($fecha_consulta);
  2544. $fecha_consulta_aux = $fecha_consulta_aux->format('Y-m-d H:i:s');
  2545. } else {
  2546. $fecha_consulta_aux = $date1;
  2547. }
  2548. $intentostotales = $intentos + 1;
  2549. $fecha = strtotime($fecha_consulta_aux);
  2550. $minutos = $intentos * 1;
  2551. $minutos = $minutos * 60;
  2552. $fecha += $minutos;
  2553. $fechaIntentos = date("Y-m-d H:i:s", $fecha);
  2554. $registro_riego = crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos, $tipoRiego);
  2555. subriego_lemvalve($registro_riego);
  2556. }
  2557. $y++;
  2558. }
  2559. $x++;
  2560. }
  2561. } else {
  2562. //Significa que es un nodo de un riego que aun no ha iniciado
  2563. $sql = "select id_sector from programacion_riego where id_nodo = $campos[1] and n_orden_riego_sector = $campos[2]";
  2564. $resEmp2 = mysql_query($sql, $conEmp);
  2565. $objeto = mysql_num_rows($resEmp2);
  2566. if ($objeto == 0) {
  2567. //Significa que el nodo solo pertenece a un riego compuesto el cual consta de mas nodos para iniciar
  2568. $sql = "select id_sector from programacion_riego where n_orden_riego_sector = $campos[2]";
  2569. $resEmp3 = mysql_query($sql, $conEmp);
  2570. $objeto = mysql_num_rows($resEmp2);
  2571. if ($datatmp = mysql_fetch_array($resEmp3)) {
  2572. $id_sector = $datatmp['id_sector'];
  2573. }
  2574. //Actualizo el estado del componente a iniciado
  2575. $sql = "update control_riego set update_p = 0,estado = 1 , intentos = 0 where id_nodo = $campos[1] and id_sector = $id_sector";
  2576. $consulta = mysql_query($sql, $conEmp);
  2577. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.n_orden_riego_sector = $campos[2] and (c.estado = 0 or c.estado = 3 or c.estado =2) order by c.orden asc";
  2578. $resEmp_valve = mysql_query($sql, $conEmp);
  2579. $objeto_valvula = mysql_num_rows($resEmp_valve);
  2580. if ($objeto_valvula == 0) {
  2581. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2582. $consulta = mysql_query($sql, $conEmp);
  2583. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0,estado = 1 WHERE id_sector = $id_sector";
  2584. $consulta = mysql_query($sql, $conEmp);
  2585. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $campos[2]";
  2586. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  2587. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)){
  2588. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($campos[2],1)";
  2589. $consulta = mysql_query($sql, $conEmp);
  2590. respuesta_lembox($campos[2],1);
  2591. }
  2592. }
  2593. $sql = "SELECT c.id_sector FROM control_riego as c, programacion_riego as p WHERE c.id_nodo = $campos[1] and p.n_orden_riego_sector = $campos[2]";
  2594. $resEmp1 = mysql_query($sql, $conEmp);
  2595. $objeto = mysql_num_rows($resEmp2);
  2596. while ($datatmp = mysql_fetch_array($resEmp1)) {
  2597. $id_sector2[$x] = $datatmp['id_sector'];
  2598. $sql = "SELECT p.id_nodo FROM control_riego as c,programacion_riego as p WHERE p.id_sector = $id_sector2[$x] group by p.id_nodo";
  2599. $resEmp2 = mysql_query($sql, $conEmp);
  2600. $objeto = mysql_num_rows($resEmp2);
  2601. while ($datatmp = mysql_fetch_array($resEmp2)) {
  2602. $id_nodo = $datatmp['id_nodo'];
  2603. $sql = "SELECT fecha_consulta,pulso_acumulado,ultimo_pulso,prioridad,pulsos,tipo,id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_nodo = $id_nodo and n_orden_riego_sector = $campos[2] and (estado != 10 or estado != 11) and id_empresa = $id_empresaPrin and red = $red order by n_orden_riego_sector desc"; //<----aqui
  2604. $resEmp3 = mysql_query($sql, $conEmp);
  2605. while ($datatmp = mysql_fetch_array($resEmp3)) {
  2606. $fecha_consulta = $datatmp['fecha_consulta'];
  2607. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2608. $tipoRiego = $datatmp['tipo'];
  2609. $pulsos = $datatmp['pulsos'];
  2610. $pulso_acumulado = $datatmp['pulso_acumulado'];
  2611. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2612. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2613. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2614. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2615. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2616. $id_sector = $datatmp['id_sector'];
  2617. $id_nodo = $datatmp['id_nodo'];
  2618. $id_empresa = $datatmp['id_empresa'];
  2619. $id_subriego = $datatmp['id_subriego'];
  2620. $sector = $datatmp['sector'];
  2621. $estado = $datatmp['estado'];
  2622. $ultimo_pulso = $datatmp['ultimo_pulso'];
  2623. $prioridad = $datatmp['prioridad'];
  2624. $intentos = $datatmp['intentos'];
  2625. $date2 = new DateTime($p_fecha_ini);
  2626. $date2 = $date2 = $date2->format('Y-m-d H:i:s');
  2627. $date3 = new DateTime($p_fecha_fin);
  2628. $date3 = $date3->format('Y-m-d H:i:s');
  2629. if ($fecha_consulta != Null) {
  2630. $fecha_consulta_aux = new DateTime($fecha_consulta);
  2631. $fecha_consulta_aux = $fecha_consulta_aux->format('Y-m-d H:i:s');
  2632. } else {
  2633. $fecha_consulta_aux = $date1;
  2634. }
  2635. $intentostotales = $intentos + 1;
  2636. $fecha = strtotime($fecha_consulta_aux);
  2637. $minutos = $intentos * 1;
  2638. $minutos = $minutos * 60;
  2639. $fecha += $minutos;
  2640. $fechaIntentos = date("Y-m-d H:i:s", $fecha);
  2641. $registro_riego = crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos, $tipoRiego);
  2642. subriego_lemvalve($registro_riego);
  2643. iniciar_riego($registro_riego);
  2644. $z++;
  2645. }
  2646. $y++;
  2647. }
  2648. $x++;
  2649. }
  2650. } else {
  2651. //Significa que es un riego simple con un componente el cual es un nodo
  2652. $sql = "select id_sector from programacion_riego where n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2653. $resEmp3 = mysql_query($sql, $conEmp);
  2654. $objeto = mysql_num_rows($resEmp2);
  2655. if ($datatmp = mysql_fetch_array($resEmp3)) {
  2656. $id_sector4 = $datatmp['id_sector'];
  2657. }
  2658. $sql = "select * from control_riego where id_sector = $id_sector4 and id_empresa = $id_empresaPrin and estado = 0 order by iteracion asc"; //<----aqui
  2659. $resEmp4 = mysql_query($sql, $conEmp);
  2660. $objeto4 = mysql_num_rows($resEmp4);
  2661. if ($datatmp4 = mysql_fetch_array($resEmp4)) {
  2662. $completo4 = $datatmp4['completo'];
  2663. $iteracion4 = $datatmp4['iteracion'];
  2664. if ($completo4 == 1 && $iteracion4 >= 3){
  2665. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2666. $consulta = mysql_query($sql, $conEmp);
  2667. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_ini = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2668. $consulta = mysql_query($sql, $conEmp);
  2669. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2670. $consulta = mysql_query($sql, $conEmp);
  2671. $sql = "UPDATE control_riego SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and id_sector = $id_sector4";
  2672. $consulta = mysql_query($sql, $conEmp);
  2673. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector4";
  2674. $consulta = mysql_query($sql, $conEmp);
  2675. }
  2676. }else{
  2677. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2678. $consulta = mysql_query($sql, $conEmp);
  2679. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_ini = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2680. $consulta = mysql_query($sql, $conEmp);
  2681. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2682. $consulta = mysql_query($sql, $conEmp);
  2683. $sql = "UPDATE control_riego SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and id_sector = $id_sector4";
  2684. $consulta = mysql_query($sql, $conEmp);
  2685. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector4";
  2686. $consulta = mysql_query($sql, $conEmp);
  2687. }
  2688. //Actualizo la fecha de inicio y fin del riego y su estado junto con el del componente
  2689. //$sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2690. //$consulta = mysql_query($sql, $conEmp);
  2691. //$sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_ini = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2692. //$consulta = mysql_query($sql, $conEmp);
  2693. //$sql = "UPDATE programacion_riego SET update_p = 0,estado = 1 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2694. //$consulta = mysql_query($sql, $conEmp);
  2695. //$sql = "UPDATE control_riego SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and id_sector = $id_sector4";
  2696. //$consulta = mysql_query($sql, $conEmp);
  2697. //Tomo todos los riegos nuevamente e inicio los que cumplan con las condiciones
  2698. $sql = "select fecha_consulta,pulso_acumulado,ultimo_pulso,prioridad,pulsos,tipo,id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and n_orden_riego_sector > 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc";
  2699. $resEmp20 = mysql_query($sql, $conEmp);
  2700. $objeto = mysql_num_rows($resEmp20);
  2701. $i = 0;
  2702. while ($datatmp = mysql_fetch_array($resEmp20)) {
  2703. $fecha_consulta = $datatmp['fecha_consulta'];
  2704. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2705. $tipoRiego = $datatmp['tipo'];
  2706. $pulsos = $datatmp['pulsos'];
  2707. $pulso_acumulado = $datatmp['pulso_acumulado'];
  2708. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2709. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2710. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2711. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2712. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2713. $id_sector = $datatmp['id_sector'];
  2714. $id_nodo = $datatmp['id_nodo'];
  2715. $id_empresa = $datatmp['id_empresa'];
  2716. $id_subriego = $datatmp['id_subriego'];
  2717. $sector = $datatmp['sector'];
  2718. $estado = $datatmp['estado'];
  2719. $ultimo_pulso = $datatmp['ultimo_pulso'];
  2720. $prioridad = $datatmp['prioridad'];
  2721. $intentos = $datatmp['intentos'];
  2722. $date2 = new DateTime($p_fecha_ini);
  2723. $date2 = $date2 = $date2->format('Y-m-d H:i:s');
  2724. $date3 = new DateTime($p_fecha_fin);
  2725. $date3 = $date3->format('Y-m-d H:i:s');
  2726. if ($fecha_consulta != Null) {
  2727. $fecha_consulta_aux = new DateTime($fecha_consulta);
  2728. $fecha_consulta_aux = $fecha_consulta_aux->format('Y-m-d H:i:s');
  2729. } else {
  2730. $fecha_consulta_aux = $date1;
  2731. }
  2732. $intentostotales = $intentos + 1;
  2733. $fecha = strtotime($fecha_consulta_aux);
  2734. $minutos = $intentos * 1;
  2735. $minutos = $minutos * 60;
  2736. $fecha += $minutos;
  2737. $fechaIntentos = date("Y-m-d H:i:s", $fecha);
  2738. $registro_riego = crear_box_riego($fecha_consulta, $n_orden_riego_sector, $tipoRiego, $pulsos, $pulso_acumulado, $r_fecha_ini, $r_fecha_fin, $date2, $date3, $id_programacion_riego, $id_sector, $id_nodo, $id_empresa, $id_subriego, $sector, $estado, $ultimo_pulso, $prioridad, $intentos, $fechaIntentos, $tipoRiego);
  2739. //Se detectan los riegos que se encuentren con problemas de inicio esto de diferencian debido a que pasan a estar en estado 3 en la tala control_riego lo
  2740. //cual quiere decir que se encuentran con error y su numero de intentos de inicio es 3
  2741. riegos_con_problemas_de_inicio($registro_riego); //Listo
  2742. //Cierra riegos en donde se perdieron paquetes
  2743. riegos_pendiente($registro_riego); //Listo
  2744. //Cierra riegos pendientes cancelados
  2745. riegos_pendientes_cancelados($registro_riego); //Listo
  2746. //Cierra riegos mal Finalizados
  2747. //riegos_mal_finalizados($registro_riego); //Listo
  2748. //Si el estado del riego en el que se esta es 5 quiere decir que se desea reiniciar
  2749. reiniciar_riego($registro_riego);
  2750. //Pasar a cancelados los riegos con problemas
  2751. cancelar_riegos_con_problemas($registro_riego); //Listo
  2752. //Si el estado del riego en el que se esta el while es 0 y su fecha de inicio es menor a la fecha actual y la fecha fin es mayor a la fecha actual
  2753. //entonces el riego cumple con los requisitos para iniciar y ser enviado al coordinador
  2754. iniciar_riego($registro_riego); //Listo
  2755. //Si el riego tiene estado 1 el cual quiere decir que a iniciado, su fecha inicio es menor a la actual y su fecha fin es mayor a la actul y el id_nodo es diferente al que consulta quiere decir que es un lemvalve
  2756. //se pasa a verificar el estado de este utilizando sus pines
  2757. verificar_pines_lemvale($registro_riego); //Listo
  2758. // Si el id nodo corresponde a un coordindador se para a verificar sus pines segun una funcion en binario si esta es correcta
  2759. // simplemente se actualiza su fecha inicio real a la fecha actual
  2760. verificar_pines_lemcontrol($registro_riego);
  2761. //cancelar riegos
  2762. cancelar_riegos($registro_riego); //Listo
  2763. }
  2764. }
  2765. }
  2766. }
  2767. }
  2768. }else if ($campos[3] == 2) {
  2769. //Actualizo el estado del componente que cerro a 2 en la talba control_riego
  2770. $sql = "select c.id_sector from programacion_riego as p,control_riego as c where p.n_orden_riego_sector = $campos[2] and c.id_nodo = $campos[1] and c.id_sector = p.id_sector";
  2771. $resEmp2 = mysql_query($sql, $conEmp);
  2772. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2773. $id_sector4 = $datatmp['id_sector'];
  2774. $sql = "UPDATE control_riego SET update_p = 0,estado = 2,intentos = 0 WHERE id_sector = $id_sector4 and id_nodo = $campos[1]";
  2775. $consulta = mysql_query($sql, $conEmp);
  2776. }
  2777. $sql = "SELECT estado from programacion_riego WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2778. $resEmpA = mysql_query($sql, $conEmp);
  2779. $objeto = mysql_num_rows($resEmpA);
  2780. if ($datatmp = mysql_fetch_array($resEmpA)) {
  2781. $estado = $datatmp['estado'];
  2782. }
  2783. if ($estado == 8 || $estado == 7) {
  2784. $z = 0;
  2785. $x = 0;
  2786. $sql = "SELECT id_sector FROM control_riego WHERE id_nodo = $campos[1]";
  2787. $resEmpB = mysql_query($sql, $conEmp);
  2788. $objeto = mysql_num_rows($resEmpB);
  2789. while ($datatmp = mysql_fetch_array($resEmpB)) {
  2790. $id_sector[$x] = $datatmp['id_sector'];
  2791. $sql = "SELECT p.id_nodo FROM control_riego as c,programacion_riego as p WHERE p.id_sector = $id_sector[$x] group by p.id_nodo";
  2792. $resEmpC = mysql_query($sql, $conEmp);
  2793. $objeto = mysql_num_rows($resEmpC);
  2794. while ($datatmp = mysql_fetch_array($resEmpC)) {
  2795. $id_nodo[$y] = $datatmp['id_nodo'];
  2796. $sql = "select id_nodo,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,r_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_nodo = $id_nodo[$y] and n_orden_riego_sector = $campos[2] and (estado != 10 or estado != 11) order by n_orden_riego_sector desc";
  2797. $resEmpD = mysql_query($sql, $conEmp);
  2798. $objeto = mysql_num_rows($resEmpD);
  2799. while ($datatmp = mysql_fetch_array($resEmpD)) {
  2800. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2801. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2802. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2803. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2804. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2805. $id_sector = $datatmp['id_sector'];
  2806. $sector = $datatmp['sector'];
  2807. $estado = $datatmp['estado'];
  2808. $id_nodo = $datatmp['id_nodo'];
  2809. $intentos = $datatmp['intentos'];
  2810. $date2 = new DateTime($p_fecha_ini);
  2811. $date2 = $date2->format('Y-m-d H:i:s');
  2812. $date3 = new DateTime($p_fecha_fin);
  2813. $date3 = $date3->format('Y-m-d H:i:s');
  2814. $date4 = new DateTime($r_fecha_fin);
  2815. $date4 = $date4->format('Y-m-d H:i:s');
  2816. $sql = "select tipo_riego from sector_configuracion where id_sector = $id_sector";
  2817. $resEmp = mysql_query($sql, $conEmp);
  2818. if ($datatmp = mysql_fetch_array($resEmp)) {
  2819. $tipo_riego = $datatmp['tipo_riego'];
  2820. }
  2821. switch ($tipo_riego) {
  2822. case 'valvula_primero':
  2823. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden desc";
  2824. $resEmpE = mysql_query($sql, $conEmp);
  2825. $objeto = mysql_num_rows($resEmpE);
  2826. while ($datatmp = mysql_fetch_array($resEmpE)) {
  2827. $orden = $datatmp['orden'];
  2828. $id_nodo2 = $datatmp['id_nodo'];
  2829. $p0 = $datatmp['p0'];
  2830. $p1 = $datatmp['p1'];
  2831. $p2 = $datatmp['p2'];
  2832. $estado = $datatmp['estado'];
  2833. $intentos = $datatmp['intentos'];
  2834. $resultado = 0;
  2835. $pulsos = 0;
  2836. $tipoRiego = 'm';
  2837. if ($estado == 1 and $intentos <= 3) {
  2838. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  2839. exit;
  2840. }
  2841. }
  2842. break;
  2843. case 'bomba_primero':
  2844. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.estado = 1 and c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego order by c.orden desc";
  2845. $resEmpE = mysql_query($sql, $conEmp);
  2846. $objeto = mysql_num_rows($resEmpE);
  2847. while ($datatmp = mysql_fetch_array($resEmpE)) {
  2848. $orden = $datatmp['orden'];
  2849. $id_nodo2 = $datatmp['id_nodo'];
  2850. $p0 = $datatmp['p0'];
  2851. $p1 = $datatmp['p1'];
  2852. $p2 = $datatmp['p2'];
  2853. $estado = $datatmp['estado'];
  2854. $intentos = $datatmp['intentos'];
  2855. $resultado = 0;
  2856. $pulsos = 0;
  2857. $tipoRiego = 'm';
  2858. if ($estado == 1 and $intentos <= 3) {
  2859. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $resultado, $pulsos, $tipoRiego);
  2860. exit;
  2861. }
  2862. }
  2863. break;
  2864. }
  2865. }
  2866. }
  2867. }
  2868. } else {
  2869. //Obtengo numero de orden del componente//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2870. $sql = "select p_fecha_fin,r_fecha_fin from programacion_riego where n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<----aqui
  2871. $resEmp2 = mysql_query($sql, $conEmp);
  2872. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2873. $p_fecha_fin = $datatmp['p_fecha_fin'];
  2874. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2875. }else{
  2876. $sql = "SELECT p.n_orden_riego_sector FROM control_riego as c,programacion_riego as p WHERE c.id_nodo = $campos[1] and c.p0 = $campos[4] and c.p1 = $campos[5] and c.p2 = $campos[6] and p.id_sector = c.id_sector";
  2877. $resEmp2 = mysql_query($sql, $conEmp);
  2878. $objeto = mysql_num_rows($resEmp2);
  2879. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2880. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2881. }
  2882. }
  2883. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2884. //Detecto los equipos que aun no han cerrado y actualizo los campos de error en la tabla programacion riego
  2885. $sql = "select c.id_sector from control_riego as c,programacion_riego as p where n_orden_riego_sector = $campos[2] and c.id_sector = p.id_sector and c.id_nodo = $campos[1]";
  2886. $resEmp2 = mysql_query($sql, $conEmp);
  2887. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2888. $id_sector = $datatmp['id_sector'];
  2889. $sql = "UPDATE control_riego SET update_p = 0, estado = 2,intentos = 0,iteracion = 0 WHERE id_sector = $id_sector and id_nodo = $campos[1]";
  2890. $consulta = mysql_query($sql, $conEmp);
  2891. }
  2892. $sql = "select c.id_sector,c.id_nodo from control_riego as c,programacion_riego as p where p.estado != 7 and p.n_orden_riego_sector = $campos[2] and c.id_sector = p.id_sector and c.estado != 2 and c.id_empresa = $id_empresaPrin and c.equipo = $equipoPrin and p.red = $red"; //<----quie
  2893. $resEmp2 = mysql_query($sql, $conEmp);
  2894. $x = 0;
  2895. $error = "'";
  2896. while ($datatmp = mysql_fetch_array($resEmp2)) {
  2897. $id_sector2[$x] = $datatmp['id_sector'];
  2898. $id_nodo[$x] = $datatmp['id_nodo'];
  2899. $error = $error . "+" . $datatmp['id_nodo'];
  2900. $sql = "UPDATE control_riego SET update_p = 0, estado = 3 WHERE id_sector = $id_sector2[$x] and id_nodo = $id_nodo[$x]";
  2901. $consulta = mysql_query($sql, $conEmp);
  2902. $x++;
  2903. }
  2904. $error = $error . "'";
  2905. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  2906. $sql = "UPDATE programacion_riego SET update_p = 0, error = $error WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin";
  2907. $consulta = mysql_query($sql, $conEmp);
  2908. //En el caso de que aun se encuentre un componente con estado 3 de no cerrado dentro de los componentes
  2909. $sql = "select c.estado,p.id_subriego,p.estado,c.id_sector,c.id_nodo from control_riego as c,programacion_riego as p where p.n_orden_riego_sector = $campos[2] and c.id_sector = p.id_sector and c.estado = 3 and c.id_empresa = $id_empresaPrin and c.equipo = $equipoPrin and p.red = $red"; //<-----aqui
  2910. $resEmp2 = mysql_query($sql, $conEmp);
  2911. $objeto = mysql_num_rows($resEmp2);
  2912. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2913. $estado = $datatmp['estado'];
  2914. $id_subriego = $datatmp['id_subriego'];
  2915. if ($estado == 1 or $estado == 33 or $estado == 3) {
  2916. if ($id_subriego != 0) {
  2917. $sql = "UPDATE programacion_riego SET update_p = 0, estado = 6 WHERE id_subriego = $id_subriego and id_empresa = $id_empresaPrin "; //<----aqui
  2918. $consulta = mysql_query($sql, $conEmp);
  2919. } else {
  2920. $sql = "UPDATE programacion_riego SET update_p = 0, estado = 6 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<------aqui
  2921. $consulta = mysql_query($sql, $conEmp);
  2922. }
  2923. }
  2924. if ($estado == 0) {
  2925. if ($id_subriego != 0) {
  2926. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 7 WHERE id_subriego = $id_subriego and id_empresa = $id_empresaPrin "; //<-----aqui
  2927. $consulta = mysql_query($sql, $conEmp);
  2928. } else {
  2929. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 7 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2930. $consulta = mysql_query($sql, $conEmp);
  2931. }
  2932. }
  2933. } else {
  2934. //En el caso de que ya cerraran todos los componentes del riego
  2935. $sql = "select r_fecha_fin,id_subriego,estado from programacion_riego where n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2936. $resEmp2 = mysql_query($sql, $conEmp);
  2937. $objeto = mysql_num_rows($resEmp2);
  2938. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2939. $estado = $datatmp['estado'];
  2940. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2941. $id_subriego = $datatmp['id_subriego'];
  2942. }
  2943. if ($estado == 1 or $estado == 6 or $estado == 7 or $estado == 33 and $estado != 12) {
  2944. if ($id_subriego != 0) {
  2945. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 2 WHERE id_subriego = $id_subriego and id_empresa = $id_empresaPrin "; //<-----aqui
  2946. $consulta = mysql_query($sql, $conEmp);
  2947. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1',p_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2948. $consulta = mysql_query($sql, $conEmp);
  2949. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($campos[2],1)";
  2950. $consulta = mysql_query($sql, $conEmp);
  2951. respuesta_lembox($campos[2],2);
  2952. } else {
  2953. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 2 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2954. $consulta = mysql_query($sql, $conEmp);
  2955. $sql = "UPDATE programacion_riego SET update_p = 0,r_fecha_fin = '$date1',p_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2956. $consulta = mysql_query($sql, $conEmp);
  2957. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($campos[2],1)";
  2958. $consulta = mysql_query($sql, $conEmp);
  2959. respuesta_lembox($campos[2],2);
  2960. }
  2961. }
  2962. if ($estado == 3 and $estado != 12) {
  2963. if ($id_subriego != 0) {
  2964. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 2 WHERE id_subriego = $id_subriego and id_empresa = $id_empresaPrin "; //<-----aqui
  2965. $consulta = mysql_query($sql, $conEmp);
  2966. $sql = "UPDATE programacion_riego SET update_p = 0,p_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2967. $consulta = mysql_query($sql, $conEmp);
  2968. } else {
  2969. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 2 WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2970. $consulta = mysql_query($sql, $conEmp);
  2971. $sql = "UPDATE programacion_riego SET update_p = 0,p_fecha_fin = '$date1' WHERE n_orden_riego_sector = $campos[2] and id_empresa = $id_empresaPrin "; //<-----aqui
  2972. $consulta = mysql_query($sql, $conEmp);
  2973. }
  2974. }
  2975. if ($estado == 0 or $estado == 33 or $estado == 3) {
  2976. if ($id_subriego != 0) {
  2977. //Eliminar seguido
  2978. $tipo_nodo = "";
  2979. $sql = "select tipo_nodo from nodo where id_nodo = $campos[1]";
  2980. $resEmp2 = mysql_query($sql, $conEmp);
  2981. if ($datatmp = mysql_fetch_array($resEmp2)) {
  2982. $tipo_nodo = $datatmp['tipo_nodo'];
  2983. }
  2984. if ($tipo_nodo == 1) {
  2985. $sql = "select id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc"; //<-----aqui
  2986. $resEmp9 = mysql_query($sql, $conEmp);
  2987. $i = 0;
  2988. while ($datatmp = mysql_fetch_array($resEmp9)) {
  2989. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  2990. $r_fecha_ini = $datatmp['r_fecha_ini'];
  2991. $r_fecha_fin = $datatmp['r_fecha_fin'];
  2992. $p_fecha_ini = $datatmp['p_fecha_ini'];
  2993. $p_fecha_fin2 = $datatmp['p_fecha_fin'];
  2994. $id_programacion_riego = $datatmp['id_programacion_riego'];
  2995. $id_sector3 = $datatmp['id_sector'];
  2996. $id_nodo = $datatmp['id_nodo'];
  2997. $id_empresa = $datatmp['id_empresa'];
  2998. $id_subriego = $datatmp['id_subriego'];
  2999. $sector = $datatmp['sector'];
  3000. $estado = $datatmp['estado'];
  3001. $intentos = $datatmp['intentos'];
  3002. $date2 = new DateTime($p_fecha_ini);
  3003. $date2 = $date2->format('Y-m-d H:i:s');
  3004. $date3 = new DateTime($p_fecha_fin2);
  3005. $date3 = $date3->format('Y-m-d H:i:s');
  3006. $intentostotales = $intentos + 1;
  3007. if (($campos[3] == 2) and ( $estado == 3 or $estado == 33) and $date1 >= $date2 and $intentostotales <= 99) {
  3008. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector3 and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.n_orden_riego_sector = $n_orden_riego_sector order by c.orden asc";
  3009. $resEmp2 = mysql_query($sql, $conEmp);
  3010. $objeto = mysql_num_rows($resEmp2);
  3011. if ($datatmp = mysql_fetch_array($resEmp2)) {
  3012. $id_nodo2 = $datatmp['id_nodo'];
  3013. $p0 = $datatmp['p0'];
  3014. $p1 = $datatmp['p1'];
  3015. $p2 = $datatmp['p2'];
  3016. $tiempodiff = 0;
  3017. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $tiempodiff, 0, 'm');
  3018. exit;
  3019. }
  3020. }
  3021. }
  3022. //Cuando es solo nodo
  3023. } else {
  3024. $sql = "select id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc"; //<-----aqui
  3025. $resEmp9 = mysql_query($sql, $conEmp);
  3026. $i = 0;
  3027. while ($datatmp = mysql_fetch_array($resEmp9)) {
  3028. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  3029. $r_fecha_ini = $datatmp['r_fecha_ini'];
  3030. $r_fecha_fin = $datatmp['r_fecha_fin'];
  3031. $p_fecha_ini = $datatmp['p_fecha_ini'];
  3032. $p_fecha_fin2 = $datatmp['p_fecha_fin'];
  3033. $id_programacion_riego = $datatmp['id_programacion_riego'];
  3034. $id_sector3 = $datatmp['id_sector'];
  3035. $id_nodo = $datatmp['id_nodo'];
  3036. $id_empresa = $datatmp['id_empresa'];
  3037. $id_subriego = $datatmp['id_subriego'];
  3038. $sector = $datatmp['sector'];
  3039. $estado = $datatmp['estado'];
  3040. $intentos = $datatmp['intentos'];
  3041. $date2 = new DateTime($p_fecha_ini);
  3042. $date2 = $date2->format('Y-m-d H:i:s');
  3043. $date3 = new DateTime($p_fecha_fin2);
  3044. $date3 = $date3->format('Y-m-d H:i:s');
  3045. $intentostotales = $intentos[$i] + 1;
  3046. if (($campos[3] == 2) and ( $estado == 3 or $estado == 33) and $date1 >= $date2 and $intentostotales <= 99 and $date1 <= $date3) {
  3047. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector3 and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.n_orden_riego_sector = $n_orden_riego_sector order by c.orden asc";
  3048. $resEmp2 = mysql_query($sql, $conEmp);
  3049. $objeto = mysql_num_rows($resEmp2);
  3050. if ($datatmp = mysql_fetch_array($resEmp2)) {
  3051. $id_nodo2 = $datatmp['id_nodo'];
  3052. $p0 = $datatmp['p0'];
  3053. $p1 = $datatmp['p1'];
  3054. $p2 = $datatmp['p2'];
  3055. $tiempodiff = 0;
  3056. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $tiempodiff, 0, 'm');
  3057. exit;
  3058. }
  3059. }
  3060. }
  3061. }
  3062. } else {
  3063. //Eliminar seguido
  3064. $tipo_nodo = "";
  3065. $sql = "select tipo_nodo from nodo where id_nodo = $campos[1]";
  3066. $resEmp2 = mysql_query($sql, $conEmp);
  3067. if ($datatmp = mysql_fetch_array($resEmp2)) {
  3068. $tipo_nodo = $datatmp['tipo_nodo'];
  3069. }
  3070. if ($tipo_nodo == 1) {
  3071. $sql = "select id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc"; //<-----aqui
  3072. $resEmp9 = mysql_query($sql, $conEmp);
  3073. $i = 0;
  3074. while ($datatmp = mysql_fetch_array($resEmp9)) {
  3075. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  3076. $r_fecha_ini = $datatmp['r_fecha_ini'];
  3077. $r_fecha_fin = $datatmp['r_fecha_fin'];
  3078. $p_fecha_ini = $datatmp['p_fecha_ini'];
  3079. $p_fecha_fin2 = $datatmp['p_fecha_fin'];
  3080. $id_programacion_riego = $datatmp['id_programacion_riego'];
  3081. $id_sector3 = $datatmp['id_sector'];
  3082. $id_nodo = $datatmp['id_nodo'];
  3083. $id_empresa = $datatmp['id_empresa'];
  3084. $id_subriego = $datatmp['id_subriego'];
  3085. $sector = $datatmp['sector'];
  3086. $estado = $datatmp['estado'];
  3087. $intentos = $datatmp['intentos'];
  3088. $date2 = new DateTime($p_fecha_ini);
  3089. $date2 = $date2->format('Y-m-d H:i:s');
  3090. $date3 = new DateTime($p_fecha_fin2);
  3091. $date3 = $date3->format('Y-m-d H:i:s');
  3092. $intentostotales = $intentos[$i] + 1;
  3093. if (($campos[3] == 2) and ( $estado == 3 or $estado == 33) and $date1 >= $date2 and $intentostotales <= 99 and $date1 <= $date3) {
  3094. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector3 and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.n_orden_riego_sector = $n_orden_riego_sector order by c.orden asc";
  3095. $resEmp2 = mysql_query($sql, $conEmp);
  3096. $objeto = mysql_num_rows($resEmp2);
  3097. if ($datatmp = mysql_fetch_array($resEmp2)) {
  3098. $id_nodo2 = $datatmp['id_nodo'];
  3099. $p0 = $datatmp['p0'];
  3100. $p1 = $datatmp['p1'];
  3101. $p2 = $datatmp['p2'];
  3102. $tiempodiff = 0;
  3103. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $tiempodiff, 0, 'm');
  3104. exit;
  3105. }
  3106. }
  3107. $i++;
  3108. }
  3109. //Cuando es solo nodo
  3110. } else {
  3111. $sql = "select id_empresa,id_nodo,id_subriego,r_fecha_fin,r_fecha_ini,sector,n_orden_riego_sector,intentos,p_fecha_ini,p_fecha_fin,id_programacion_riego,id_sector,estado from programacion_riego where id_empresa = $id_empresaPrin and red = $red and n_orden_riego_sector != 0 and (estado != 10 or estado != 11) order by id_programacion_riego asc"; //<-----equipo
  3112. $resEmp9 = mysql_query($sql, $conEmp);
  3113. $i = 0;
  3114. while ($datatmp = mysql_fetch_array($resEmp9)) {
  3115. $n_orden_riego_sector = $datatmp['n_orden_riego_sector'];
  3116. $r_fecha_ini = $datatmp['r_fecha_ini'];
  3117. $r_fecha_fin = $datatmp['r_fecha_fin'];
  3118. $p_fecha_ini = $datatmp['p_fecha_ini'];
  3119. $p_fecha_fin2 = $datatmp['p_fecha_fin'];
  3120. $id_programacion_riego = $datatmp['id_programacion_riego'];
  3121. $id_sector3 = $datatmp['id_sector'];
  3122. $id_nodo = $datatmp['id_nodo'];
  3123. $id_empresa = $datatmp['id_empresa'];
  3124. $id_subriego = $datatmp['id_subriego'];
  3125. $sector = $datatmp['sector'];
  3126. $estado = $datatmp['estado'];
  3127. $intentos = $datatmp['intentos'];
  3128. $date2 = new DateTime($p_fecha_ini);
  3129. $date2 = $date2->format('Y-m-d H:i:s');
  3130. $date3 = new DateTime($p_fecha_fin2);
  3131. $date3 = $date3->format('Y-m-d H:i:s');
  3132. $intentostotales = $intentos + 1;
  3133. if (($campos[3] == 2) and ( $estado == 3 or $estado == 33) and $date1 >= $date2 and $intentostotales <= 99 and $date1 <= $date3) {
  3134. $sql = "SELECT c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector3 and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.n_orden_riego_sector = $n_orden_riego_sector order by c.orden asc";
  3135. $resEmp2 = mysql_query($sql, $conEmp);
  3136. $objeto = mysql_num_rows($resEmp2);
  3137. if ($datatmp = mysql_fetch_array($resEmp2)) {
  3138. $id_nodo2 = $datatmp['id_nodo'];
  3139. $p0 = $datatmp['p0'];
  3140. $p1 = $datatmp['p1'];
  3141. $p2 = $datatmp['p2'];
  3142. $tiempodiff = 0;
  3143. enviar_orden($id_nodo2, $n_orden_riego_sector, $p0, $p1, $p2, $tiempodiff, 0, 'm');
  3144. exit;
  3145. }
  3146. }
  3147. }
  3148. }
  3149. }
  3150. }
  3151. }
  3152. }
  3153. $sql = "select id_sector,id_programacion_riego,id_nodo from programacion_riego where n_orden_riego_sector = $campos[2]";
  3154. $resEmp2 = mysql_query($sql, $conEmp);
  3155. while ($datatmp = mysql_fetch_array($resEmp2)) {
  3156. $id_sectornew = $datatmp['id_sector'];
  3157. $id_programacion_riegonew = $datatmp['id_programacion_riego'];
  3158. $id_nodonew = $datatmp['id_nodo'];
  3159. }
  3160. $sql = "select tipo_riego from sector_configuracion where id_sector = $id_sector";
  3161. $resEmp = mysql_query($sql, $conEmp);
  3162. if ($datatmp = mysql_fetch_array($resEmp)) {
  3163. $tipo_riego = $datatmp['tipo_riego'];
  3164. }
  3165. switch ($tipo_riego) {
  3166. case 'valvula_primero':
  3167. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sectornew and p.id_sector = c.id_sector and p.id_nodo = $id_nodonew and p.id_programacion_riego = $id_programacion_riegonew and c.estado = 3 order by c.orden asc";
  3168. $resEmp2 = mysql_query($sql, $conEmp);
  3169. while ($datatmp = mysql_fetch_array($resEmp2)) {
  3170. $id_nodo2 = $datatmp['id_nodo'];
  3171. $p0 = $datatmp['p0'];
  3172. $p1 = $datatmp['p1'];
  3173. $p2 = $datatmp['p2'];
  3174. $estado2 = $datatmp['estado'];
  3175. $intentos = $datatmp['intentos'];
  3176. $resultado = 0;
  3177. enviar_orden($id_nodo2, $campos[2], $p0, $p1, $p2, $resultado, 0, 'A');
  3178. exit;
  3179. }
  3180. break;
  3181. case 'bomba_primero':
  3182. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sectornew and p.id_sector = c.id_sector and p.id_nodo = $id_nodonew and p.id_programacion_riego = $id_programacion_riegonew and c.estado = 3 order by c.orden desc";
  3183. $resEmp2 = mysql_query($sql, $conEmp);
  3184. while ($datatmp = mysql_fetch_array($resEmp2)) {
  3185. $id_nodo2 = $datatmp['id_nodo'];
  3186. $p0 = $datatmp['p0'];
  3187. $p1 = $datatmp['p1'];
  3188. $p2 = $datatmp['p2'];
  3189. $estado2 = $datatmp['estado'];
  3190. $intentos = $datatmp['intentos'];
  3191. $resultado = 0;
  3192. enviar_orden($id_nodo2, $campos[2], $p0, $p1, $p2, $resultado, 0, 'A');
  3193. exit;
  3194. }
  3195. break;
  3196. }
  3197. //-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  3198. }else if ($campos[3] == 5) {
  3199. $sql = "UPDATE programacion_riego SET update_p = 0,estado = 10 WHERE estado = 5 and id_nodo = $campos[1]";
  3200. $consulta = mysql_query($sql, $conEmp);
  3201. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1]";
  3202. $consulta = mysql_query($sql, $conEmp);
  3203. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1]";
  3204. $consulta = mysql_query($sql, $conEmp);
  3205. $sql = "UPDATE control_riego SET update_p = 0,intentos = 0,estado = 2,reset = 0 WHERE id_nodo = $campos[1]";
  3206. $consulta = mysql_query($sql, $conEmp);
  3207. $sql = "select id_sector from control_riego where id_nodo = $campos[1]";
  3208. $resEmp1 = mysql_query($sql, $conEmp);
  3209. while ($datatmp1 = mysql_fetch_array($resEmp1)) {
  3210. $id_sector = $datatmp1['id_sector'];
  3211. $sql = "select r_fecha_fin,id_programacion_riego,id_nodo,id_subriego,id_empresa from programacion_riego where id_sector = $id_sector and estado = 33 or estado = 3 and n_orden_riego_sector !=0";
  3212. $resEmp2 = mysql_query($sql, $conEmp);
  3213. while ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3214. $id_programacion_riego = $datatmp2['id_programacion_riego'];
  3215. $id_nodo = $datatmp2['id_nodo'];
  3216. $id_subriego = $datatmp2['id_subriego'];
  3217. $id_empresa = $datatmp2['id_empresa'];
  3218. $r_fecha_fin = $datatmp2['r_fecha_fin'];
  3219. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.estado !=2 and c.estado !=0 order by c.orden desc";
  3220. $resEmp3 = mysql_query($sql, $conEmp);
  3221. if ($datatmp3 = mysql_fetch_array($resEmp3)) {
  3222. if ($id_subriego == 0) {
  3223. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 6 WHERE id_programacion_riego = $id_programacion_riego";
  3224. $consulta = mysql_query($sql, $conEmp);
  3225. } else {
  3226. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 6 WHERE id_subriego = $id_subriego and id_empresa = $id_empresa";
  3227. $consulta = mysql_query($sql, $conEmp);
  3228. }
  3229. } else {
  3230. if ($id_subriego == 0) {
  3231. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 2,p_fecha_fin = '$r_fecha_fin' WHERE id_programacion_riego = $id_programacion_riego";
  3232. $consulta = mysql_query($sql, $conEmp);
  3233. } else {
  3234. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 2,p_fecha_fin = '$r_fecha_fin' WHERE id_subriego = $id_subriego and id_empresa = $id_empresa";
  3235. $consulta = mysql_query($sql, $conEmp);
  3236. }
  3237. }
  3238. }
  3239. }
  3240. $sql = "select id_sector from control_riego where id_nodo = $campos[1]";
  3241. $resEmp1 = mysql_query($sql, $conEmp);
  3242. while ($datatmp1 = mysql_fetch_array($resEmp1)) {
  3243. $id_sector = $datatmp1['id_sector'];
  3244. $sql = "select n_orden_riego_sector,r_fecha_fin,id_programacion_riego,id_nodo,id_subriego,id_empresa from programacion_riego where id_sector = $id_sector and estado = 6 and n_orden_riego_sector !=0";
  3245. $resEmp2 = mysql_query($sql, $conEmp);
  3246. while ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3247. $id_programacion_riego = $datatmp2['id_programacion_riego'];
  3248. $id_nodo = $datatmp2['id_nodo'];
  3249. $id_subriego = $datatmp2['id_subriego'];
  3250. $r_fecha_fin = $datatmp2['r_fecha_fin'];
  3251. $n_orden_riego_sector = $datatmp2['n_orden_riego_sector'];
  3252. $id_empresa = $datatmp2['id_empresa'];
  3253. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.estado !=2 and c.estado !=0 order by c.orden desc";
  3254. $resEmp3 = mysql_query($sql, $conEmp);
  3255. if (!$datatmp3 = mysql_fetch_array($resEmp3)) {
  3256. if ($id_subriego == 0) {
  3257. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 2,p_fecha_fin = '$r_fecha_fin' WHERE id_programacion_riego = $id_programacion_riego";
  3258. $consulta = mysql_query($sql, $conEmp);
  3259. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $n_orden_riego_sector";
  3260. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  3261. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)) {
  3262. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($n_orden_riego_sector,1)";
  3263. $consulta = mysql_query($sql, $conEmp);
  3264. respuesta_lembox($n_orden_riego_sector,2);
  3265. }
  3266. //aca transmisor
  3267. } else {
  3268. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 2,p_fecha_fin = '$r_fecha_fin' WHERE id_subriego = $id_subriego and id_empresa = $id_empresa";
  3269. $consulta = mysql_query($sql, $conEmp);
  3270. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $n_orden_riego_sector";
  3271. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  3272. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)){
  3273. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($n_orden_riego_sector,1)";
  3274. $consulta = mysql_query($sql, $conEmp);
  3275. respuesta_lembox($n_orden_riego_sector,2);
  3276. //aca transmisor
  3277. }
  3278. }
  3279. }
  3280. }
  3281. }
  3282. $sql = "select id_sector from control_riego where id_nodo = $campos[1]";
  3283. $resEmp1 = mysql_query($sql, $conEmp);
  3284. while ($datatmp1 = mysql_fetch_array($resEmp1)) {
  3285. $id_sector = $datatmp1['id_sector'];
  3286. $sql = "select r_fecha_fin,n_orden_riego_sector,id_programacion_riego,id_nodo from programacion_riego where id_sector = $id_sector and estado = 6 and n_orden_riego_sector !=0";
  3287. $resEmp2 = mysql_query($sql, $conEmp);
  3288. while ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3289. $id_programacion_riego = $datatmp2['id_programacion_riego'];
  3290. $n_orden_riego_sector = $datatmp2['n_orden_riego_sector'];
  3291. $r_fecha_fin = $datatmp2['r_fecha_fin'];
  3292. $id_nodo = $datatmp2['id_nodo'];
  3293. $sql = "SELECT c.orden,c.intentos,c.estado,c.id_nodo,c.p0,c.p1,c.p2,(timestampdiff(minute,p.p_fecha_ini,p.p_fecha_fin)) as tiempodiff FROM control_riego c,programacion_riego as p WHERE c.id_sector = $id_sector and p.id_sector = c.id_sector and p.id_nodo = $id_nodo and p.id_programacion_riego = $id_programacion_riego and c.estado !=2 and c.estado !=0 and c.reset = 0 order by c.orden desc";
  3294. $resEmp3 = mysql_query($sql, $conEmp);
  3295. if ($datatmp3 = mysql_fetch_array($resEmp3)) {
  3296. $sql = "UPDATE control_riego SET update_p = 0,reset = 1 WHERE id_nodo = $campos[1]";
  3297. $consulta = mysql_query($sql, $conEmp);
  3298. $id_nodo2 = $datatmp3['id_nodo'];
  3299. enviar_orden($id_nodo2, 65534, 16, 9, 2, 55555, 0, 'A');
  3300. exit;
  3301. } else {
  3302. $sql = "UPDATE programacion_riego SET update_p = 0,intentos = 0,estado = 2,p_fecha_fin = '$r_fecha_fin' WHERE id_programacion_riego = $id_programacion_riego";
  3303. $consulta = mysql_query($sql, $conEmp);
  3304. $sql_lembox4 = "select intentos from transmisor_programacion where n_orden_riego_sector = $n_orden_riego_sector";
  3305. $resEmp_lembox4 = mysql_query($sql_lembox4, $conEmp);
  3306. if (!$datatmp_lembox4 = mysql_fetch_array($resEmp_lembox4)) {
  3307. $sql = "INSERT INTO transmisor_programacion (n_orden_riego_sector,intentos) VALUES ($n_orden_riego_sector,1)";
  3308. $consulta = mysql_query($sql, $conEmp);
  3309. respuesta_lembox($n_orden_riego_sector,2);
  3310. //aca transmisor
  3311. }
  3312. }
  3313. }
  3314. }
  3315. }else if ($campos[3] == 11) {
  3316. //<ack>indice:id_nodo:n_orden:estado:p0:p1:p2:tiempo:c0:c1:c2<ack>
  3317. if ($campos[4] == 16) {
  3318. $i = 0;
  3319. $sql = "UPDATE control_val SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and px = 16";
  3320. $consulta = mysql_query($sql, $conEmp);
  3321. $sql = "select caseta from programacion_val where id_nodo = $campos[1] and px = 16 and estado = 1";
  3322. $resEmp2 = mysql_query($sql, $conEmp);
  3323. if (!($datatmp = mysql_fetch_array($resEmp2))) {
  3324. $sql = "select nombre from control_val where id_nodo = $campos[1] and px = 16";
  3325. $resEmp = mysql_query($sql, $conEmp);
  3326. if ($datatmp = mysql_fetch_array($resEmp)) {
  3327. $nombre = $datatmp['nombre'];
  3328. }
  3329. $sql = "select direccion from nodo where id_nodo = $campos[1]";
  3330. $resEmp = mysql_query($sql, $conEmp);
  3331. if ($datatmp = mysql_fetch_array($resEmp)) {
  3332. $direccion = $datatmp['direccion'];
  3333. }
  3334. $sql = "select equipo,caseta,id_empresa from control_riego where id_nodo = $campos[1]";
  3335. $resEmp = mysql_query($sql, $conEmp);
  3336. if ($datatmp = mysql_fetch_array($resEmp)) {
  3337. $equipo = $datatmp['equipo'];
  3338. $caseta = $datatmp['caseta'];
  3339. $id_empresa = $datatmp['id_empresa'];
  3340. }
  3341. $newlipe = 500000 * $id_empresa;
  3342. $sql = "select max(id_programacion_riego) from programacion_val where id_empresa = '$id_empresa'";
  3343. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3344. if ($datatmp = mysql_fetch_array($consulta)) {
  3345. $lipe = $datatmp['max(id_programacion_riego)'];
  3346. if ($lipe < $newlipe) {
  3347. $id_programacion_riego = $newlipe;
  3348. } else {
  3349. $id_programacion_riego = $lipe + 1;
  3350. }
  3351. } else {
  3352. $id_programacion_riego = $newlipe;
  3353. }
  3354. $hoy = strtotime($date1);
  3355. $minutos = 2;
  3356. $minutos = $minutos * 60;
  3357. $hoy += $minutos;
  3358. $hoy = date("Y-m-d H:i:s", $hoy);
  3359. $sql = "INSERT INTO programacion_val (px,id_programacion_riego,caseta,equipo,id_empresa,id_nodo,estado,p_fecha_ini,p_fecha_fin,nombre,r_fecha_ini,r_fecha_fin)
  3360. VALUES(16,$id_programacion_riego,$caseta,$equipo,$id_empresa,$campos[1],1,'$date1','$hoy','$nombre','$date1','$date1')";
  3361. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3362. }
  3363. }
  3364. if ($campos[5] == 8) {
  3365. $i = 0;
  3366. $sql = "UPDATE control_val SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and px = 8";
  3367. $consulta = mysql_query($sql, $conEmp);
  3368. $sql = "select caseta from programacion_val where id_nodo = $campos[1] and px = 8 and estado = 1 ";
  3369. $resEmp2 = mysql_query($sql, $conEmp);
  3370. if (!($datatmp = mysql_fetch_array($resEmp2))) {
  3371. $sql = "select nombre from control_val where id_nodo = $campos[1] and px = 8";
  3372. $resEmp = mysql_query($sql, $conEmp);
  3373. if ($datatmp = mysql_fetch_array($resEmp)) {
  3374. $nombre = $datatmp['nombre'];
  3375. }
  3376. $sql = "select direccion from nodo where id_nodo = $campos[1]";
  3377. $resEmp = mysql_query($sql, $conEmp);
  3378. if ($datatmp = mysql_fetch_array($resEmp)) {
  3379. $direccion = $datatmp['direccion'];
  3380. }
  3381. $sql = "select equipo,caseta,id_empresa from control_riego where id_nodo = $campos[1]";
  3382. $resEmp = mysql_query($sql, $conEmp);
  3383. if ($datatmp = mysql_fetch_array($resEmp)) {
  3384. $equipo = $datatmp['equipo'];
  3385. $caseta = $datatmp['caseta'];
  3386. $id_empresa = $datatmp['id_empresa'];
  3387. }
  3388. $newlipe = 500000 * $id_empresa;
  3389. $sql = "select max(id_programacion_riego) from programacion_val where id_empresa = '$id_empresa'";
  3390. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3391. if ($datatmp = mysql_fetch_array($consulta)) {
  3392. $lipe = $datatmp['max(id_programacion_riego)'];
  3393. if ($lipe < $newlipe) {
  3394. $id_programacion_riego = $newlipe;
  3395. } else {
  3396. $id_programacion_riego = $lipe + 1;
  3397. }
  3398. } else {
  3399. $id_programacion_riego = $newlipe;
  3400. }
  3401. $hoy = strtotime($date1);
  3402. $minutos = 2;
  3403. $minutos = $minutos * 60;
  3404. $hoy += $minutos;
  3405. $hoy = date("Y-m-d H:i:s", $hoy);
  3406. $sql = "INSERT INTO programacion_val (px,id_programacion_riego,caseta,equipo,id_empresa,id_nodo,estado,p_fecha_ini,p_fecha_fin,nombre,r_fecha_ini,r_fecha_fin)
  3407. VALUES(8,$id_programacion_riego,$caseta,$equipo,$id_empresa,$campos[1],1,'$date1','$hoy','$nombre','$date1','$date1')";
  3408. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3409. }
  3410. }
  3411. if ($campos[5] == 1) {
  3412. $i = 0;
  3413. $sql = "UPDATE control_val SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and px = 1";
  3414. $consulta = mysql_query($sql, $conEmp);
  3415. $sql = "select caseta from programacion_val where id_nodo = $campos[1] and px = 1 and estado = 1 ";
  3416. $resEmp2 = mysql_query($sql, $conEmp);
  3417. if (!($datatmp = mysql_fetch_array($resEmp2))) {
  3418. $sql = "select nombre from control_val where id_nodo = $campos[1] and px = 1";
  3419. $resEmp = mysql_query($sql, $conEmp);
  3420. if ($datatmp = mysql_fetch_array($resEmp)) {
  3421. $nombre = $datatmp['nombre'];
  3422. }
  3423. $sql = "select equipo,caseta,id_empresa from control_riego where id_nodo = $campos[1]";
  3424. $resEmp = mysql_query($sql, $conEmp);
  3425. if ($datatmp = mysql_fetch_array($resEmp)) {
  3426. $equipo = $datatmp['equipo'];
  3427. $caseta = $datatmp['caseta'];
  3428. $id_empresa = $datatmp['id_empresa'];
  3429. }
  3430. $sql = "select direccion from nodo where id_nodo = $campos[1]";
  3431. $resEmp = mysql_query($sql, $conEmp);
  3432. if ($datatmp = mysql_fetch_array($resEmp)) {
  3433. $direccion = $datatmp['direccion'];
  3434. }
  3435. $newlipe = 500000 * $id_empresa;
  3436. $sql = "select max(id_programacion_riego) from programacion_val where id_empresa = '$id_empresa'";
  3437. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3438. if ($datatmp = mysql_fetch_array($consulta)) {
  3439. $lipe = $datatmp['max(id_programacion_riego)'];
  3440. if ($lipe < $newlipe) {
  3441. $id_programacion_riego = $newlipe;
  3442. } else {
  3443. $id_programacion_riego = $lipe + 1;
  3444. }
  3445. } else {
  3446. $id_programacion_riego = $newlipe;
  3447. }
  3448. $hoy = strtotime($date1);
  3449. $minutos = 2;
  3450. $minutos = $minutos * 60;
  3451. $hoy += $minutos;
  3452. $hoy = date("Y-m-d H:i:s", $hoy);
  3453. $sql = "INSERT INTO programacion_val (px,id_programacion_riego,caseta,equipo,id_empresa,id_nodo,estado,p_fecha_ini,p_fecha_fin,nombre,r_fecha_ini,r_fecha_fin)
  3454. VALUES(1,$id_programacion_riego,$caseta,$equipo,$id_empresa,$campos[1],1,'$date1','$hoy','$nombre','$date1','$date1')";
  3455. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3456. }
  3457. }
  3458. if ($campos[5] == 9) {
  3459. $i = 0;
  3460. $sql = "UPDATE control_val SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and px = 1";
  3461. $consulta = mysql_query($sql, $conEmp);
  3462. $sql = "select caseta from programacion_val where id_nodo = $campos[1] and px = 1 and estado = 1 ";
  3463. $resEmp2 = mysql_query($sql, $conEmp);
  3464. $sql = "select direccion from nodo where id_nodo = $campos[1]";
  3465. $resEmp = mysql_query($sql, $conEmp);
  3466. if ($datatmp = mysql_fetch_array($resEmp)) {
  3467. $direccion = $datatmp['direccion'];
  3468. }
  3469. if (!($datatmp = mysql_fetch_array($resEmp2))) {
  3470. $sql = "select nombre from control_val where id_nodo = $campos[1] and px = 1";
  3471. $resEmp = mysql_query($sql, $conEmp);
  3472. if ($datatmp = mysql_fetch_array($resEmp)) {
  3473. $nombre = $datatmp['nombre'];
  3474. }
  3475. $sql = "select equipo,caseta,id_empresa from control_riego where id_nodo = $campos[1]";
  3476. $resEmp = mysql_query($sql, $conEmp);
  3477. if ($datatmp = mysql_fetch_array($resEmp)) {
  3478. $equipo = $datatmp['equipo'];
  3479. $caseta = $datatmp['caseta'];
  3480. $id_empresa = $datatmp['id_empresa'];
  3481. }
  3482. $newlipe = 500000 * $id_empresa;
  3483. $sql = "select max(id_programacion_riego) from programacion_val where id_empresa = '$id_empresa'";
  3484. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3485. if ($datatmp = mysql_fetch_array($consulta)) {
  3486. $lipe = $datatmp['max(id_programacion_riego)'];
  3487. if ($lipe < $newlipe) {
  3488. $id_programacion_riego = $newlipe;
  3489. } else {
  3490. $id_programacion_riego = $lipe + 1;
  3491. }
  3492. } else {
  3493. $id_programacion_riego = $newlipe;
  3494. }
  3495. $hoy = strtotime($date1);
  3496. $minutos = 2;
  3497. $minutos = $minutos * 60;
  3498. $hoy += $minutos;
  3499. $hoy = date("Y-m-d H:i:s", $hoy);
  3500. $sql = "INSERT INTO programacion_val (px,id_programacion_riego,caseta,equipo,id_empresa,id_nodo,estado,p_fecha_ini,p_fecha_fin,nombre,r_fecha_ini,r_fecha_fin)
  3501. VALUES(1,$id_programacion_riego,$caseta,$equipo,$id_empresa,$campos[1],1,'$date1','$hoy','$nombre','$date1','$date1')";
  3502. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3503. }
  3504. $i = 0;
  3505. $sql = "UPDATE control_val SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and px = 8";
  3506. $consulta = mysql_query($sql, $conEmp);
  3507. $sql = "select caseta from programacion_val where id_nodo = $campos[1] and px = 8 and estado = 1 ";
  3508. $resEmp2 = mysql_query($sql, $conEmp);
  3509. if (!($datatmp = mysql_fetch_array($resEmp2))) {
  3510. $sql = "select nombre from control_val where id_nodo = $campos[1] and px = 8";
  3511. $resEmp = mysql_query($sql, $conEmp);
  3512. if ($datatmp = mysql_fetch_array($resEmp)) {
  3513. $nombre = $datatmp['nombre'];
  3514. }
  3515. $sql = "select equipo,caseta,id_empresa from control_riego where id_nodo = $campos[1]";
  3516. $resEmp = mysql_query($sql, $conEmp);
  3517. if ($datatmp = mysql_fetch_array($resEmp)) {
  3518. $equipo = $datatmp['equipo'];
  3519. $caseta = $datatmp['caseta'];
  3520. $id_empresa = $datatmp['id_empresa'];
  3521. }
  3522. $newlipe = 500000 * $id_empresa;
  3523. $sql = "select max(id_programacion_riego) from programacion_val where id_empresa = '$id_empresa'";
  3524. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3525. if ($datatmp = mysql_fetch_array($consulta)) {
  3526. $lipe = $datatmp['max(id_programacion_riego)'];
  3527. if ($lipe < $newlipe) {
  3528. $id_programacion_riego = $newlipe;
  3529. } else {
  3530. $id_programacion_riego = $lipe + 1;
  3531. }
  3532. } else {
  3533. $id_programacion_riego = $newlipe;
  3534. }
  3535. $hoy = strtotime($date1);
  3536. $minutos = 2;
  3537. $minutos = $minutos * 60;
  3538. $hoy += $minutos;
  3539. $hoy = date("Y-m-d H:i:s", $hoy);
  3540. $sql = "INSERT INTO programacion_val (px,id_programacion_riego,caseta,equipo,id_empresa,id_nodo,estado,p_fecha_ini,p_fecha_fin,nombre,r_fecha_ini,r_fecha_fin)
  3541. VALUES(8,$id_programacion_riego,$caseta,$equipo,$id_empresa,$campos[1],1,'$date1','$hoy','$nombre','$date1','$date1')";
  3542. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3543. }
  3544. }
  3545. if ($campos[6] == 2) {
  3546. $i = 0;
  3547. $sql = "UPDATE control_val SET update_p = 0,estado = 1 WHERE id_nodo = $campos[1] and px = 2";
  3548. $consulta = mysql_query($sql, $conEmp);
  3549. $sql = "select caseta from programacion_val where id_nodo = $campos[1] and px = 2 and estado = 1";
  3550. $resEmp2 = mysql_query($sql, $conEmp);
  3551. if (!($datatmp = mysql_fetch_array($resEmp2))) {
  3552. $sql = "select nombre from control_val where id_nodo = $campos[1] and px = 2";
  3553. $resEmp = mysql_query($sql, $conEmp);
  3554. if ($datatmp = mysql_fetch_array($resEmp)) {
  3555. $nombre = $datatmp['nombre'];
  3556. }
  3557. $sql = "select equipo,caseta,id_empresa from control_riego where id_nodo = $campos[1]";
  3558. $resEmp = mysql_query($sql, $conEmp);
  3559. if ($datatmp = mysql_fetch_array($resEmp)) {
  3560. $equipo = $datatmp['equipo'];
  3561. $caseta = $datatmp['caseta'];
  3562. $id_empresa = $datatmp['id_empresa'];
  3563. }
  3564. $sql = "select direccion from nodo where id_nodo = $campos[1]";
  3565. $resEmp = mysql_query($sql, $conEmp);
  3566. if ($datatmp = mysql_fetch_array($resEmp)) {
  3567. $direccion = $datatmp['direccion'];
  3568. }
  3569. $newlipe = 500000 * $id_empresa;
  3570. $sql = "select max(id_programacion_riego) from programacion_val where id_empresa = '$id_empresa'";
  3571. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3572. if ($datatmp = mysql_fetch_array($consulta)) {
  3573. $lipe = $datatmp['max(id_programacion_riego)'];
  3574. if ($lipe < $newlipe) {
  3575. $id_programacion_riego = $newlipe;
  3576. } else {
  3577. $id_programacion_riego = $lipe + 1;
  3578. }
  3579. } else {
  3580. $id_programacion_riego = $newlipe;
  3581. }
  3582. $hoy = strtotime($date1);
  3583. $minutos = 2;
  3584. $minutos = $minutos * 60;
  3585. $hoy += $minutos;
  3586. $hoy = date("Y-m-d H:i:s", $hoy);
  3587. $sql = "INSERT INTO programacion_val (px,id_programacion_riego,caseta,equipo,id_empresa,id_nodo,estado,p_fecha_ini,p_fecha_fin,nombre,r_fecha_ini,r_fecha_fin)
  3588. VALUES(2,$id_programacion_riego,$caseta,$equipo,$id_empresa,$campos[1],1,'$date1','$hoy','$nombre','$date1','$date1')";
  3589. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3590. }
  3591. }
  3592. echo "<ctr>"."0".":".$campos[1].":".$campos[4].":".$campos[5].":".$campos[6].":"."11".":0:".$direccion."</ctr>";
  3593. }else if ($campos[3] == 22) {
  3594. //<ack>indice:id_nodo:n_orden:estado:p0:p1:p2:tiempo:c0:c1:c2<ack>
  3595. $sql = "select direccion from nodo where id_nodo = $campos[1]";
  3596. $resEmp = mysql_query($sql, $conEmp);
  3597. if ($datatmp = mysql_fetch_array($resEmp)) {
  3598. $direccion = $datatmp['direccion'];
  3599. }
  3600. if ($campos[4] == 16) {
  3601. $i = 0;
  3602. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 16";
  3603. $consulta = mysql_query($sql, $conEmp);
  3604. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 16";
  3605. $consulta = mysql_query($sql, $conEmp);
  3606. }
  3607. if ($campos[5] == 8) {
  3608. $i = 0;
  3609. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 8";
  3610. $consulta = mysql_query($sql, $conEmp);
  3611. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 8";
  3612. $consulta = mysql_query($sql, $conEmp);
  3613. }
  3614. if ($campos[5] == 1) {
  3615. $i = 0;
  3616. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 1";
  3617. $consulta = mysql_query($sql, $conEmp);
  3618. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 1";
  3619. $consulta = mysql_query($sql, $conEmp);
  3620. }
  3621. if ($campos[5] == 9) {
  3622. $i = 0;
  3623. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 1";
  3624. $consulta = mysql_query($sql, $conEmp);
  3625. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 1";
  3626. $consulta = mysql_query($sql, $conEmp);
  3627. $i = 0;
  3628. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 8";
  3629. $consulta = mysql_query($sql, $conEmp);
  3630. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 8";
  3631. $consulta = mysql_query($sql, $conEmp);
  3632. }
  3633. if ($campos[6] == 2) {
  3634. $i = 0;
  3635. $sql = "UPDATE control_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 2";
  3636. $consulta = mysql_query($sql, $conEmp);
  3637. $sql = "UPDATE programacion_val SET update_p = 0,estado = 2 WHERE id_nodo = $campos[1] and px = 2";
  3638. $consulta = mysql_query($sql, $conEmp);
  3639. }
  3640. echo "<ctr>"."0".":".$campos[1].":".$campos[4].":".$campos[5].":".$campos[6].":"."22".":0:".$direccion."</ctr>";
  3641. }
  3642. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  3643. //Riego Manual--------
  3644. } else if ($tipo == 1) {
  3645. //Si el campo 3 es 1 significa el comienzo de un riego
  3646. if ($campos[3] == 1) {
  3647. //Si campos 4 es diferente a 255 lo que significa que almenos un sector de lembox se activo
  3648. if ($campos[4] != 255 || $campos[4] != 0) {
  3649. $sectoresP0 = 0;
  3650. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'p0'";
  3651. $resEmp = mysql_query($sql, $conEmp);
  3652. if ($datatmp = mysql_fetch_array($resEmp)) {
  3653. $id_sensorP0 = $datatmp['id_sensor'];
  3654. }
  3655. //Se pasa a binario el decimal del campo 4 y se concatena con n cantidad de 0 hasta llegan 8 pines y asi poder sabuer que sector fue activado
  3656. $sectoresP0 = decbin($campos[4]);
  3657. $sectoresP0 = substr("00000000", 0, 8 - strlen($sectoresP0)) . $sectoresP0; //derecha a izquierda
  3658. $largostring = strlen($sectoresP0);
  3659. for ($i = 0; $i < $largostring; $i++) {
  3660. if ($sectoresP0[$i] == 0) {
  3661. $a = $i + 1;
  3662. $a = 9 - $a;
  3663. $sql = "select id_sector,nombre from sector_riego where id_sensor = $id_sensorP0 and Px = $a";
  3664. $resEmp = mysql_query($sql, $conEmp);
  3665. if ($datatmp = mysql_fetch_array($resEmp)) {
  3666. $id_sectorControl = $datatmp['id_sector'];
  3667. $sql = "select caseta,equipo,id_nodo,id_sector,id_empresa,nombre_sector from control_riego where id_sector = $id_sectorControl order by orden asc";
  3668. $resEmp2 = mysql_query($sql, $conEmp);
  3669. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3670. $hoy = strtotime($date1);
  3671. $minutos = 2;
  3672. $minutos = $minutos * 60;
  3673. $hoy += $minutos;
  3674. $hoy = date("Y-m-d H:i:s", $hoy);
  3675. $casetaControl = $datatmp2['caseta'];
  3676. $equipoControl = $datatmp2['equipo'];
  3677. $id_nodoControl = $datatmp2['id_nodo'];
  3678. $sql = "SELECT red FROM nodo WHERE id_nodo = $id_nodoControl";
  3679. $resEmp200 = mysql_query($sql, $conEmp);
  3680. if ($datatmp200 = mysql_fetch_array($resEmp200)) {
  3681. $red = $datatmp200['red'];
  3682. }
  3683. $id_empresaControl = $datatmp2['id_empresa'];
  3684. $nombre_sectorControl = $datatmp2['nombre_sector'];
  3685. $sql = "select max(n_identificador) from programacion_riego where id_nodo = '$id_nodoControl'";
  3686. $consulta = mysql_query($sql, $conEmp);
  3687. if ($datatmp4 = mysql_fetch_array($consulta)) {
  3688. $n_identificadormax = $datatmp4['max(n_identificador)'];
  3689. $n_identificador = $n_identificadormax + 1;
  3690. }
  3691. $id_programacion = ultimo_id_programacion($id_empresaControl);
  3692. $sql = "select estado from programacion_riego where id_sector = $id_sectorControl and id_empresa = $id_empresaControl and (estado = 1 or estado = 0) and p_fecha_ini < '$date1'and p_fecha_fin > '$date1'";
  3693. $resEmp2 = mysql_query($sql, $conEmp);
  3694. $sw3 = 0;
  3695. if (!($datatmp2 = mysql_fetch_array($resEmp2))) {
  3696. $sw3 = 1;
  3697. $sql4 = "UPDATE control_riego SET estado = 0,intentos = 0,iteracion = 0 WHERE id_sector = '$id_sectorControl'";
  3698. $consulta = mysql_query($sql4, $conEmp);
  3699. $sql = "INSERT INTO programacion_riego (id_programacion_riego,red,tipo,caseta,equipo,id_empresa,n_identificador,n_orden_riego_sector,id_nodo,p_fecha_ini,p_fecha_fin,r_fecha_ini,r_fecha_fin,sector,estado,id_sector) VALUES($id_programacion,$red,'m',$casetaControl,$equipoControl,$id_empresaControl,$n_identificador,1,$id_nodoControl,'$date1','$hoy','$date1','$date1','$nombre_sectorControl',0,$id_sectorControl)";
  3700. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3701. $sql3 = "update programacion_riego set update_p = 0,estado = 10 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and id_empresa = $id_empresaControl and equipo = $equipoControl";
  3702. $consulta3 = mysql_query($sql3, $conEmp);
  3703. $sql3 = "update control_riego set estado = 0,intentos = 0,iteracion = 0,intentos_reset = 0 where and id_empresa = $id_empresaControl and id_sector = $id_sectorControl";
  3704. $consulta3 = mysql_query($sql3, $conEmp);
  3705. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3706. exit;
  3707. }
  3708. if ($sw3 == 0) {
  3709. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3710. exit;
  3711. }
  3712. }
  3713. }
  3714. }
  3715. }
  3716. }
  3717. if ($campos[5] != 255 || $campos[5] != 0) {
  3718. $sectoresP0 = 0;
  3719. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'p1'";
  3720. $resEmp = mysql_query($sql, $conEmp);
  3721. if ($datatmp = mysql_fetch_array($resEmp)) {
  3722. $id_sensorP0 = $datatmp['id_sensor'];
  3723. }
  3724. //Se pasa a binario el decimal del campo 4 y se concatena con n cantidad de 0 hasta llegan 8 pines y asi poder sabuer que sector fue activado
  3725. $sectoresP0 = decbin($campos[5]);
  3726. $sectoresP0 = substr("00000000", 0, 8 - strlen($sectoresP0)) . $sectoresP0; //derecha a izquierda
  3727. $largostring = strlen($sectoresP0);
  3728. for ($i = 0; $i < $largostring; $i++) {
  3729. if ($sectoresP0[$i] == 0) {
  3730. $a = $i + 1;
  3731. $a = 9 - $a;
  3732. $sql = "select id_sector,nombre from sector_riego where id_sensor = $id_sensorP0 and Px = $a";
  3733. $resEmp = mysql_query($sql, $conEmp);
  3734. if ($datatmp = mysql_fetch_array($resEmp)) {
  3735. $id_sectorControl = $datatmp['id_sector'];
  3736. $sql = "select caseta,equipo,id_nodo,id_sector,id_empresa,nombre_sector from control_riego where id_sector = $id_sectorControl order by orden asc";
  3737. $resEmp2 = mysql_query($sql, $conEmp);
  3738. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3739. $hoy = strtotime($date1);
  3740. $minutos = 2;
  3741. $minutos = $minutos * 60;
  3742. $hoy += $minutos;
  3743. $hoy = date("Y-m-d H:i:s", $hoy);
  3744. $casetaControl = $datatmp2['caseta'];
  3745. $equipoControl = $datatmp2['equipo'];
  3746. $id_nodoControl = $datatmp2['id_nodo'];
  3747. $sql = "SELECT red FROM nodo WHERE id_nodo = $id_nodoControl";
  3748. $resEmp200 = mysql_query($sql, $conEmp);
  3749. if ($datatmp200 = mysql_fetch_array($resEmp200)) {
  3750. $red = $datatmp200['red'];
  3751. }
  3752. $id_empresaControl = $datatmp2['id_empresa'];
  3753. $nombre_sectorControl = $datatmp2['nombre_sector'];
  3754. $sql = "select max(n_identificador) from programacion_riego where id_nodo = '$id_nodoControl'";
  3755. $consulta = mysql_query($sql, $conEmp);
  3756. if ($datatmp4 = mysql_fetch_array($consulta)) {
  3757. $n_identificadormax = $datatmp4['max(n_identificador)'];
  3758. $n_identificador = $n_identificadormax + 1;
  3759. }
  3760. $id_programacion = ultimo_id_programacion($id_empresaControl);
  3761. $sql = "select estado from programacion_riego where id_sector = $id_sectorControl and id_empresa = $id_empresaControl and (estado = 1 or estado = 0) and p_fecha_ini < '$date1'and p_fecha_fin > '$date1'";
  3762. $resEmp2 = mysql_query($sql, $conEmp);
  3763. $sw3 = 0;
  3764. if (!($datatmp2 = mysql_fetch_array($resEmp2))) {
  3765. $sw3 = 1;
  3766. $sql4 = "UPDATE control_riego SET estado = 0,intentos = 0,iteracion = 0 WHERE id_sector = '$id_sectorControl'";
  3767. $consulta = mysql_query($sql4, $conEmp);
  3768. $sql = "INSERT INTO programacion_riego (id_programacion_riego,red,tipo,caseta,equipo,id_empresa,n_identificador,n_orden_riego_sector,id_nodo,p_fecha_ini,p_fecha_fin,r_fecha_ini,r_fecha_fin,sector,estado,id_sector) VALUES($id_programacion,$red,'m',$casetaControl,$equipoControl,$id_empresaControl,$n_identificador,1,$id_nodoControl,'$date1','$hoy','$date1','$date1','$nombre_sectorControl',0,$id_sectorControl)";
  3769. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3770. $sql3 = "update programacion_riego set update_p = 0,estado = 10 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and id_empresa = $id_empresaControl and equipo = $equipoControl";
  3771. $consulta3 = mysql_query($sql3, $conEmp);
  3772. $sql3 = "update control_riego set estado = 0,intentos = 0,iteracion = 0,intentos_reset = 0 where and id_empresa = $id_empresaControl and id_sector = $id_sectorControl";
  3773. $consulta3 = mysql_query($sql3, $conEmp);
  3774. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3775. exit;
  3776. }
  3777. if ($sw3 == 0) {
  3778. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3779. exit;
  3780. }
  3781. }
  3782. }
  3783. }
  3784. }
  3785. }
  3786. if ($campos[6] != 255 || $campos[6] != 0) {
  3787. $sectoresP0 = 0;
  3788. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'p2'";
  3789. $resEmp = mysql_query($sql, $conEmp);
  3790. if ($datatmp = mysql_fetch_array($resEmp)) {
  3791. $id_sensorP0 = $datatmp['id_sensor'];
  3792. }
  3793. //Se pasa a binario el decimal del campo 4 y se concatena con n cantidad de 0 hasta llegan 8 pines y asi poder sabuer que sector fue activado
  3794. $sectoresP0 = decbin($campos[6]);
  3795. $sectoresP0 = substr("00000000", 0, 8 - strlen($sectoresP0)) . $sectoresP0; //derecha a izquierda
  3796. $largostring = strlen($sectoresP0);
  3797. for ($i = 0; $i < $largostring; $i++) {
  3798. if ($sectoresP0[$i] == 0) {
  3799. $a = $i + 1;
  3800. $a = 9 - $a;
  3801. $sql = "select id_sector,nombre from sector_riego where id_sensor = $id_sensorP0 and Px = $a";
  3802. $resEmp = mysql_query($sql, $conEmp);
  3803. if ($datatmp = mysql_fetch_array($resEmp)) {
  3804. $id_sectorControl = $datatmp['id_sector'];
  3805. $sql = "select caseta,equipo,id_nodo,id_sector,id_empresa,nombre_sector from control_riego where id_sector = $id_sectorControl order by orden asc";
  3806. $resEmp2 = mysql_query($sql, $conEmp);
  3807. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3808. $hoy = strtotime($date1);
  3809. $minutos = 2;
  3810. $minutos = $minutos * 60;
  3811. $hoy += $minutos;
  3812. $hoy = date("Y-m-d H:i:s", $hoy);
  3813. $casetaControl = $datatmp2['caseta'];
  3814. $equipoControl = $datatmp2['equipo'];
  3815. $id_nodoControl = $datatmp2['id_nodo'];
  3816. $sql = "SELECT red FROM nodo WHERE id_nodo = $id_nodoControl";
  3817. $resEmp200 = mysql_query($sql, $conEmp);
  3818. if ($datatmp200 = mysql_fetch_array($resEmp200)) {
  3819. $red = $datatmp200['red'];
  3820. }
  3821. $id_empresaControl = $datatmp2['id_empresa'];
  3822. $nombre_sectorControl = $datatmp2['nombre_sector'];
  3823. $sql = "select max(n_identificador) from programacion_riego where id_nodo = '$id_nodoControl'";
  3824. $consulta = mysql_query($sql, $conEmp);
  3825. if ($datatmp4 = mysql_fetch_array($consulta)) {
  3826. $n_identificadormax = $datatmp4['max(n_identificador)'];
  3827. $n_identificador = $n_identificadormax + 1;
  3828. }
  3829. $id_programacion = ultimo_id_programacion($id_empresaControl);
  3830. $sql = "select estado from programacion_riego where id_sector = $id_sectorControl and id_empresa = $id_empresaControl and (estado = 1 or estado = 0) and p_fecha_ini < '$date1'and p_fecha_fin > '$date1'";
  3831. $resEmp2 = mysql_query($sql, $conEmp);
  3832. $sw3 = 0;
  3833. if (!($datatmp2 = mysql_fetch_array($resEmp2))) {
  3834. $sw3 = 1;
  3835. $sql4 = "UPDATE control_riego SET estado = 0,intentos = 0,iteracion = 0 WHERE id_sector = '$id_sectorControl'";
  3836. $consulta = mysql_query($sql4, $conEmp);
  3837. $sql = "INSERT INTO programacion_riego (id_programacion_riego,red,tipo,caseta,equipo,id_empresa,n_identificador,n_orden_riego_sector,id_nodo,p_fecha_ini,p_fecha_fin,r_fecha_ini,r_fecha_fin,sector,estado,id_sector) VALUES($id_programacion,$red,'m',$casetaControl,$equipoControl,$id_empresaControl,$n_identificador,1,$id_nodoControl,'$date1','$hoy','$date1','$date1','$nombre_sectorControl',0,$id_sectorControl)";
  3838. $consulta = mysql_query($sql, $conEmp) or die(mysql_error());
  3839. $sql3 = "update programacion_riego set update_p = 0,estado = 10 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and id_empresa = $id_empresaControl and equipo = $equipoControl";
  3840. $consulta3 = mysql_query($sql3, $conEmp);
  3841. $sql3 = "update control_riego set estado = 0,intentos = 0,iteracion = 0,intentos_reset = 0 where and id_empresa = $id_empresaControl and id_sector = $id_sectorControl";
  3842. $consulta3 = mysql_query($sql3, $conEmp);
  3843. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3844. exit;
  3845. }
  3846. if ($sw3 == 0) {
  3847. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3848. exit;
  3849. }
  3850. }
  3851. }
  3852. }
  3853. }
  3854. }
  3855. } else if ($campos[3] == 2) {
  3856. if ($campos[4] != 255 || $campos[4] != 0) {
  3857. $sectoresP0 = 0;
  3858. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'p0'";
  3859. $resEmp = mysql_query($sql, $conEmp);
  3860. if ($datatmp = mysql_fetch_array($resEmp)) {
  3861. $id_sensorP0 = $datatmp['id_sensor'];
  3862. }
  3863. $sectoresP0 = decbin($campos[4]);
  3864. $sectoresP0 = substr("00000000", 0, 8 - strlen($sectoresP0)) . $sectoresP0; //derecha a izquierda
  3865. $largostring = strlen($sectoresP0);
  3866. for ($i = 0; $i < $largostring; $i++) {
  3867. if ($sectoresP0[$i] == 0) {
  3868. $a = $i + 1;
  3869. $a = 9 - $a;
  3870. $sql = "select id_sector,nombre from sector_riego where id_sensor = $id_sensorP0 and Px = $a";
  3871. $resEmp = mysql_query($sql, $conEmp);
  3872. if ($datatmp = mysql_fetch_array($resEmp)) {
  3873. $id_sectorControl = $datatmp['id_sector'];
  3874. $sql = "select id_nodo,id_empresa,equipo from control_riego where id_sector = $id_sectorControl order by orden asc";
  3875. $resEmp2 = mysql_query($sql, $conEmp);
  3876. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3877. $id_nodolembox = $datatmp2['id_nodo'];
  3878. $id_empresalembox = $datatmp2['id_empresa'];
  3879. $equipolembox = $datatmp2['equipo'];
  3880. $sql = "select id_programacion_riego from programacion_riego where id_sector = $id_sectorControl and estado = 1 and id_nodo = $id_nodolembox and n_orden_riego_sector !=0 order by id_programacion_riego desc";
  3881. $resEmp2 = mysql_query($sql, $conEmp);
  3882. $sw4 = 0;
  3883. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3884. $sw4 = 1;
  3885. $id_programacion_riego = $datatmp2['id_programacion_riego'];
  3886. $sql = "update programacion_riego set update_p = 0,p_fecha_fin = '$date1',r_fecha_fin = '$date1', estado = 33 where id_programacion_riego = $id_programacion_riego and id_empresa = $id_empresalembox and equipo = $equipolembox";
  3887. $consulta = mysql_query($sql, $conEmp);
  3888. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3889. exit;
  3890. $sql = "update programacion_riego set update_p = 0,estado = 0 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and and id_empresa = $id_empresalembox and equipo = $equipolembox";
  3891. $consulta = mysql_query($sql, $conEmp);
  3892. }
  3893. if ($sw4 == 0) {
  3894. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3895. exit;
  3896. }
  3897. }
  3898. }
  3899. }
  3900. }
  3901. }
  3902. if ($campos[5] != 255 || $campos[5] != 0) {
  3903. $sectoresP0 = 0;
  3904. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'p1'";
  3905. $resEmp = mysql_query($sql, $conEmp);
  3906. if ($datatmp = mysql_fetch_array($resEmp)) {
  3907. $id_sensorP0 = $datatmp['id_sensor'];
  3908. }
  3909. $sectoresP0 = decbin($campos[5]);
  3910. $sectoresP0 = substr("00000000", 0, 8 - strlen($sectoresP0)) . $sectoresP0; //derecha a izquierda
  3911. $largostring = strlen($sectoresP0);
  3912. for ($i = 0; $i < $largostring; $i++) {
  3913. if ($sectoresP0[$i] == 0) {
  3914. $a = $i + 1;
  3915. $a = 9 - $a;
  3916. $sql = "select id_sector,nombre from sector_riego where id_sensor = $id_sensorP0 and Px = $a";
  3917. $resEmp = mysql_query($sql, $conEmp);
  3918. if ($datatmp = mysql_fetch_array($resEmp)) {
  3919. $id_sectorControl = $datatmp['id_sector'];
  3920. $sql = "select id_nodo,id_empresa,equipo from control_riego where id_sector = $id_sectorControl order by orden asc";
  3921. $resEmp2 = mysql_query($sql, $conEmp);
  3922. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3923. $id_nodolembox = $datatmp2['id_nodo'];
  3924. $id_empresalembox = $datatmp2['id_empresa'];
  3925. $equipolembox = $datatmp2['equipo'];
  3926. $sql = "select id_programacion_riego from programacion_riego where id_sector = $id_sectorControl and estado = 1 and id_nodo = $id_nodolembox and n_orden_riego_sector !=0 order by id_programacion_riego desc";
  3927. $resEmp2 = mysql_query($sql, $conEmp);
  3928. $sw4 = 0;
  3929. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3930. $sw4 = 1;
  3931. $id_programacion_riego = $datatmp2['id_programacion_riego'];
  3932. $sql = "update programacion_riego set update_p = 0,p_fecha_fin = '$date1',r_fecha_fin = '$date1', estado = 33 where id_programacion_riego = $id_programacion_riego and id_empresa = $id_empresalembox and equipo = $equipolembox";
  3933. $consulta = mysql_query($sql, $conEmp);
  3934. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3935. exit;
  3936. $sql = "update programacion_riego set update_p = 0,estado = 0 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and and id_empresa = $id_empresalembox and equipo = $equipolembox";
  3937. $consulta = mysql_query($sql, $conEmp);
  3938. }
  3939. if ($sw4 == 0) {
  3940. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3941. exit;
  3942. }
  3943. }
  3944. }
  3945. }
  3946. }
  3947. }
  3948. if ($campos[6] != 255 || $campos[6] != 0) {
  3949. $sectoresP0 = 0;
  3950. $sql = "select id_sensor from sensor where id_nodo = $campos[1] and tipo = 'p2'";
  3951. $resEmp = mysql_query($sql, $conEmp);
  3952. if ($datatmp = mysql_fetch_array($resEmp)) {
  3953. $id_sensorP0 = $datatmp['id_sensor'];
  3954. }
  3955. $sectoresP0 = decbin($campos[6]);
  3956. $sectoresP0 = substr("00000000", 0, 8 - strlen($sectoresP0)) . $sectoresP0; //derecha a izquierda
  3957. $largostring = strlen($sectoresP0);
  3958. for ($i = 0; $i < $largostring; $i++) {
  3959. if ($sectoresP0[$i] == 0) {
  3960. $a = $i + 1;
  3961. $a = 9 - $a;
  3962. $sql = "select id_sector,nombre from sector_riego where id_sensor = $id_sensorP0 and Px = $a";
  3963. $resEmp = mysql_query($sql, $conEmp);
  3964. if ($datatmp = mysql_fetch_array($resEmp)) {
  3965. $id_sectorControl = $datatmp['id_sector'];
  3966. $sql = "select id_nodo,id_empresa,equipo from control_riego where id_sector = $id_sectorControl order by orden asc";
  3967. $resEmp2 = mysql_query($sql, $conEmp);
  3968. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3969. $id_nodolembox = $datatmp2['id_nodo'];
  3970. $id_empresalembox = $datatmp2['id_empresa'];
  3971. $equipolembox = $datatmp2['equipo'];
  3972. $sql = "select id_programacion_riego from programacion_riego where id_sector = $id_sectorControl and estado = 1 and id_nodo = $id_nodolembox and n_orden_riego_sector !=0 order by id_programacion_riego desc";
  3973. $resEmp2 = mysql_query($sql, $conEmp);
  3974. $sw4 = 0;
  3975. if ($datatmp2 = mysql_fetch_array($resEmp2)) {
  3976. $sw4 = 1;
  3977. $id_programacion_riego = $datatmp2['id_programacion_riego'];
  3978. $sql = "update programacion_riego set update_p = 0,p_fecha_fin = '$date1',r_fecha_fin = '$date1', estado = 33 where id_programacion_riego = $id_programacion_riego and id_empresa = $id_empresalembox and equipo = $equipolembox";
  3979. $consulta = mysql_query($sql, $conEmp);
  3980. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3981. exit;
  3982. $sql = "update programacion_riego set update_p = 0,estado = 0 where p_fecha_ini > '$date1' and n_orden_riego_sector > 0 and and id_empresa = $id_empresalembox and equipo = $equipolembox";
  3983. $consulta = mysql_query($sql, $conEmp);
  3984. }
  3985. if ($sw4 == 0) {
  3986. //enviar_orden($campos[1], $campos[2], $campos[4], $campos[5], $campos[6], $campos[3], 0, 'A');
  3987. exit;
  3988. }
  3989. }
  3990. }
  3991. }
  3992. }
  3993. }
  3994. }else if ($campos[3] == 0) {//si entro aca significa que es un paquete de informacion de lembox transmisor
  3995. corroborar_luces_transmisor($campos[1],$campos[8],$campos[9],$campos[10],$campos[11],$campos[12],$campos[13],$campos[14],$campos[15]);
  3996. }else if ($campos[3] == 10) {
  3997. //$campos[7] tiene el numero del riego
  3998. $sql = "update transmisor_programacion set estado = 1 where n_orden_riego_sector='$campos[7]'";
  3999. $consulta = mysql_query($sql, $conEmp);
  4000. }
  4001. }
  4002. fputs($fp, "///" . "\r\n");
  4003. fclose($fp);
  4004. //En tiempos de osio del sistema reinicia componentes mal cerrados
  4005. lemtrash($registro_riego);
  4006. ?>