PageRenderTime 63ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 2ms

/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

Large files files are truncated, but you can click here to view the full file

  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_s…

Large files files are truncated, but you can click here to view the full file