IndexAction.class.php 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. <?php
  2. class IndexAction extends Action {
  3. public function index( ){
  4. Vendor('Workerman352.Autoloader');
  5. $tcp_worker = new Workerman\Worker("tcp://0.0.0.0:20160");
  6. Workerman\Worker::runAll();//保持运行
  7. }
  8. public function test( ){
  9. $this->redis_vsignal = Redis("fdzs_vsignal_{no}","zset")->prefix('fdzs_vsignal_');
  10. $where = array( 0,time());
  11. $vehicle = '864127124d17';
  12. $list = $this->redis_vsignal->table($vehicle)->where($where)->select();
  13. $sum = 0;
  14. $count = 0;
  15. foreach($list as $signal => $time){
  16. $signal = json_decode($signal,true);
  17. $sum += $signal['Rssi'];
  18. $count++;
  19. }
  20. if(!$count){
  21. return false;
  22. }
  23. $avgRssi = $sum/$count;
  24. echo '$avgRssi = '.$avgRssi.PHP_EOL;
  25. return $avgRssi;
  26. var_dump($list);exit;
  27. $alarm_info['ID'] = create_guid();
  28. $result = M('rchy_alarm')->createAdd($alarm_info);
  29. var_dump($result);exit;
  30. $this->redis_vsignal = Redis("rchy_vsignal_{no}","zset")->prefix('fdzs_vsignal_');
  31. /*
  32. //模拟插入信号数据
  33. for($i=0;$i<5;$i++){
  34. $row = array();
  35. $row['VehicleNumber'] = 'FFFF11112222';
  36. $row['StationCode'] = 'A11066';
  37. $row['rssi'] = 60+$i;
  38. $row['Timestamp'] = time();
  39. $vehicle_no = strtolower($row['VehicleNumber']);
  40. $signal = array(
  41. 'StationCode' => $row['StationCode'],
  42. 'Rssi' => $row['rssi'],
  43. 'Timestamp' => $row['Timestamp']
  44. );
  45. $data = array( json_encode($signal) => $row['Timestamp'] );
  46. $this->redis_vsignal->table($vehicle_no)->add($data);
  47. echo 'insert '.$i.PHP_EOL;
  48. sleep(1);
  49. }
  50. */
  51. $rchy_alarm_list = Redis("rchy_alarm_list","queue");
  52. $alarm_info = $rchy_alarm_list->pop();
  53. var_dump($alarm_info);exit;
  54. $time = time();
  55. while(time() - $time<60){
  56. $vehicle_no = strtolower('864127129ac7');
  57. $last_signal = $this->redis_vsignal->table($vehicle_no)->max();
  58. var_dump($last_signal);
  59. }
  60. exit;
  61. //输出轨迹查询结果
  62. $vehicle_no = strtolower('FFFF11112222');
  63. $now = time();
  64. $cond = array($now-60,$now);
  65. $cond = array(1531208748,$now);
  66. $cond = array(0,$now);
  67. $first_info = $this->redis_vsignal->table($vehicle_no)->where($cond)->min();
  68. echo $first_info[1].PHP_EOL;
  69. var_dump($first_info);exit;
  70. $last_info = $this->redis_vsignal->table($vehicle_no)->where($cond)->max();
  71. var_dump($last_info);exit;
  72. $signal_list = $this->redis_vsignal->table($vehicle_no)->where($cond)->select();
  73. //var_dump($signal_list);
  74. $list = array();
  75. foreach($signal_list as $key=>$row){
  76. $signal = json_decode($key,true);
  77. if(!$signal){
  78. return false;
  79. }
  80. $list[] = $signal;
  81. }
  82. var_dump($list);
  83. /*
  84. 输出结果:按分数升序
  85. array(3) {
  86. ["{"StationCode":"A11066","Rssi":62,"Timestamp":1531208748}"]=>
  87. float(1531208748)
  88. ["{"StationCode":"A11066","Rssi":63,"Timestamp":1531208749}"]=>
  89. float(1531208749)
  90. ["{"StationCode":"A11066","Rssi":64,"Timestamp":1531208750}"]=>
  91. float(1531208750)
  92. }
  93. */
  94. }
  95. }