VM暫存
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.

165 satır
4.2KB

  1. <?php
  2. defined('BASEPATH') OR exit('No direct script access allowed');
  3. require_once('/home/bigbang/libs/phplibs/phpMQTT.php');
  4. class Update_pks_groups extends CI_Controller {
  5. public function __construct() {
  6. parent::__construct();
  7. $this->load->model('reports/Update_pks_groups_model','update_pks_groups');
  8. }
  9. public function index()
  10. {
  11. $station_no="40701";
  12. $group_type="2";
  13. $sel_pks_groups=$this->update_pks_groups->sel_pks_groups($station_no,$group_type);
  14. foreach($sel_pks_groups as $key0 => $value0){
  15. $station_no0=$value0['station_no'];
  16. $fgroup_id=$value0['group_id'];
  17. $sel_pks_groups=$this->update_pks_groups->sel_pks_groups_group_id($station_no,$fgroup_id);
  18. $sel_pks_all=$this->update_pks_groups->sel_pks_all($station_no, $fgroup_id);
  19. $sel_pks=$this->update_pks_groups->sel_pks($station_no, $fgroup_id);
  20. $data[$fgroup_id]=array(count($sel_pks_all),count($sel_pks),count($sel_pks_all)-count($sel_pks));
  21. $data0=array("tot"=>count($sel_pks_all),"parked"=>count($sel_pks),"availables"=>count($sel_pks_all)-count($sel_pks));
  22. $this->update_pks_groups->update_pks_groups($data0, $fgroup_id);
  23. }
  24. //第一立體停車場
  25. $group_id1="GB";
  26. $gb_data=array('A01F','A02F','A03F','A04F','ARF');
  27. $data1=array();
  28. $data1tot0=0;
  29. $data1tot1=0;
  30. $data1tot2=0;
  31. foreach($gb_data as $key1=>$value1){
  32. $data1=$data[$value1];
  33. $data10=$data1[0];
  34. $data11=$data1[1];
  35. $data12=$data1[2];
  36. $data1tot0=$data1tot0+$data10;
  37. $data1tot1=$data1tot1+$data11;
  38. $data1tot2=$data1tot2+$data12;
  39. }
  40. $data19=array("tot"=>$data1tot0,"parked"=>$data1tot1,"availables"=>$data1tot2);
  41. $this->update_pks_groups->update_pks_groups($data19, $group_id1);
  42. //第二立體停車場
  43. $group_id2="GC";
  44. $gc_data=array('BB01','B01F','B02F','B03F','B04F','BRF');
  45. $data2=array();
  46. $data2tot0=0;
  47. $data2tot1=0;
  48. $data2tot2=0;
  49. foreach($gc_data as $key2=>$value2){
  50. $data2=$data[$value2];
  51. $data20=$data2[0];
  52. $data21=$data2[1];
  53. $data22=$data2[2];
  54. $data2tot0=$data2tot0+$data20;
  55. $data2tot1=$data2tot1+$data21;
  56. $data2tot2=$data2tot2+$data22;
  57. }
  58. $data29=array("tot"=>$data2tot0,"parked"=>$data2tot1,"availables"=>$data2tot2);
  59. $this->update_pks_groups->update_pks_groups($data29, $group_id2);
  60. //門診地下停車場
  61. $group_id3="GD";
  62. $gd_data=array('CB01','CB02','CB03');
  63. $data3=array();
  64. $data3tot0=0;
  65. $data3tot1=0;
  66. $data3tot2=0;
  67. foreach($gd_data as $key3=>$value3){
  68. $data3=$data[$value3];
  69. $data30=$data3[0];
  70. $data31=$data3[1];
  71. $data32=$data3[2];
  72. $data3tot0=$data3tot0+$data30;
  73. $data3tot1=$data3tot1+$data31;
  74. $data3tot2=$data3tot2+$data32;
  75. }
  76. $data39=array("tot"=>$data3tot0,"parked"=>$data3tot1,"availables"=>$data3tot2);
  77. $this->update_pks_groups->update_pks_groups($data39, $group_id3);
  78. //院內平面停車場
  79. $group_id4="GA";
  80. $gd_data=array('D01F');
  81. $data4=array();
  82. $data4tot0=0;
  83. $data4tot1=0;
  84. $data4tot2=0;
  85. foreach($gd_data as $key4=>$value4){
  86. $data4=$data[$value4];
  87. $data40=$data4[0];
  88. $data41=$data4[1];
  89. $data42=$data4[2];
  90. $data4tot0=$data4tot0+$data40;
  91. $data4tot1=$data4tot1+$data41;
  92. $data4tot2=$data4tot2+$data42;
  93. }
  94. $data49=array("tot"=>$data4tot0,"parked"=>$data4tot1,"availables"=>$data4tot2);
  95. $this->update_pks_groups->update_pks_groups($data49, $group_id4);
  96. $sel_pks_groups_all=$this->update_pks_groups->sel_pks_groups_all();
  97. foreach($sel_pks_groups_all as $key99 => $value99){
  98. $topic="SUBLEVEL";
  99. $mode=$value99['floors'];
  100. $floors=$value99['floors'];
  101. $availables=$value99['tot']-$value99['parked']-$value99['renum'];
  102. $mqtt_string=$floors.','.$availables;
  103. $this->mq_send($topic, $mqtt_string);
  104. }
  105. }
  106. public function mq_send($topic, $msg)
  107. {
  108. // 取得 mqtt 設定
  109. $mqtt_ip = 'localhost';
  110. $mqtt_port = '1883';
  111. trigger_error("mqtt: {$mqtt_ip}:{$mqtt_port}");
  112. // mqtt subscribe
  113. $mqtt = new phpMQTT($mqtt_ip, $mqtt_port, uniqid());
  114. if($mqtt->connect()){
  115. $mqtt->publish($topic, $msg, 0);
  116. }
  117. trigger_error("mqtt:{$topic}|{$msg}");
  118. }
  119. }