| @@ -167,56 +167,57 @@ class Cars_model extends CI_Model | |||||
| if (!empty($rows['lpr_correct'])) $parms['lpr'] = $rows['lpr_correct']; | if (!empty($rows['lpr_correct'])) $parms['lpr'] = $rows['lpr_correct']; | ||||
| // [START] 擋重覆 20170912 前端不止一筆 opendoor 送來時, 只處理第一個 (限 2 sec 內) | |||||
| if($opendoor) | |||||
| // [START] 擋重覆 | |||||
| $skip_or_not = false; | |||||
| $new_cars_tmp = array | |||||
| ( | |||||
| 'timestamp' => time(), | |||||
| 'sno_io' => $parms['sno'] . $parms['io'], | |||||
| 'lpr' => $parms['lpr'], | |||||
| 'opendoor' => $opendoor // 20180118 開門與否訊號都過濾 | |||||
| ); | |||||
| $cars_tmp_arr = array(); | |||||
| $cars_tmp_log_arr = $this->vars['mcache']->get(CARS_TMP_LOG); | |||||
| if(!empty($cars_tmp_log_arr)) | |||||
| { | { | ||||
| $skip_or_not = false; | |||||
| $new_cars_tmp = array | |||||
| ( | |||||
| 'timestamp' => time(), | |||||
| 'sno_io' => $parms['sno'] . $parms['io'], | |||||
| 'lpr' => $parms['lpr'] | |||||
| ); | |||||
| $cars_tmp_arr = array(); | |||||
| $cars_tmp_log_arr = $this->vars['mcache']->get(CARS_TMP_LOG); | |||||
| if(!empty($cars_tmp_log_arr)) | |||||
| foreach($cars_tmp_log_arr as $tmp) | |||||
| { | { | ||||
| foreach($cars_tmp_log_arr as $tmp) | |||||
| if(isset($tmp['timestamp']) && $tmp['timestamp'] > time() - 3) // 時限內才判斷 (3 sec) | |||||
| { | { | ||||
| if(isset($tmp['timestamp']) && $tmp['timestamp'] > time() - 2) // 時限內才判斷 | |||||
| { | |||||
| array_push($cars_tmp_arr, $tmp); | |||||
| } | |||||
| array_push($cars_tmp_arr, $tmp); | |||||
| } | } | ||||
| } | } | ||||
| } | |||||
| // 判斷是否繼續 | |||||
| foreach($cars_tmp_arr as $tmp) | |||||
| // 判斷是否繼續 | |||||
| foreach($cars_tmp_arr as $tmp) | |||||
| { | |||||
| if( $new_cars_tmp['lpr'] == $tmp['lpr'] && | |||||
| $new_cars_tmp['sno_io'] == $tmp['sno_io'] && | |||||
| $new_cars_tmp['opendoor'] == $tmp['opendoor'] // 20180118 開門與否訊號都過濾 | |||||
| ) | |||||
| { | { | ||||
| if( $new_cars_tmp['lpr'] == $tmp['lpr'] && | |||||
| $new_cars_tmp['sno_io'] == $tmp['sno_io']) | |||||
| { | |||||
| $skip_or_not = true; | |||||
| } | |||||
| $skip_or_not = true; | |||||
| } | } | ||||
| } | |||||
| // 更新 | |||||
| array_push($cars_tmp_arr, $new_cars_tmp); | |||||
| $this->vars['mcache']->set(CARS_TMP_LOG, $cars_tmp_arr); | |||||
| trigger_error(__FUNCTION__ . '..new ' . CARS_TMP_LOG . " |s:{$skip_or_not}|" . print_r($cars_tmp_arr, true)); | |||||
| // 更新 CARS_TMP_LOG | |||||
| array_push($cars_tmp_arr, $new_cars_tmp); | |||||
| $this->vars['mcache']->set(CARS_TMP_LOG, $cars_tmp_arr); | |||||
| trigger_error(__FUNCTION__ . '..new ' . CARS_TMP_LOG . " |s:{$skip_or_not}|" . print_r($cars_tmp_arr, true)); | |||||
| // 跳過 | |||||
| if($skip_or_not) | |||||
| { | |||||
| trigger_error(__FUNCTION__ . '..skip..'); | |||||
| // [msg] 0: 不處理 | |||||
| $msg_id = 0; | |||||
| return $this->gen_return_msg($msg_id); | |||||
| } | |||||
| // 跳過 | |||||
| if($skip_or_not) | |||||
| { | |||||
| trigger_error(__FUNCTION__ . '..skip..'); | |||||
| // [msg] 0: 不處理 | |||||
| $msg_id = 0; | |||||
| return $this->gen_return_msg($msg_id); | |||||
| } | } | ||||
| // [END] 擋重覆 | // [END] 擋重覆 | ||||
| // 車辨失敗, 結束 | // 車辨失敗, 結束 | ||||
| if ($parms['lpr'] == 'NONE') | if ($parms['lpr'] == 'NONE') | ||||
| { | { | ||||