Browse Source

upd

mitac alive check
station_14109
altob.rd 8 years ago
parent
commit
cb98b3c45a
3 changed files with 47 additions and 14 deletions
  1. +7
    -0
      controllers/Mitac_service.php
  2. +23
    -1
      coworker/sync_minutely.php
  3. +17
    -13
      models/Mitac_service_model.php

+ 7
- 0
controllers/Mitac_service.php View File

@@ -104,6 +104,13 @@ class Mitac_service extends CI_Controller
echo '</pre></body></html>'; echo '</pre></body></html>';
} }
// [排程] 詢問是否存活
public function echo_mitac_alive()
{
echo $this->mitac_service_model->echo_mitac_alive();
exit;
}
// 要求扣款 (ALTOB to MITAC) // 要求扣款 (ALTOB to MITAC)
public function parking_fee_altob() public function parking_fee_altob()
{ {


+ 23
- 1
coworker/sync_minutely.php View File

@@ -22,10 +22,32 @@ trigger_error('..start..');
try try
{ {
$ch = curl_init(); $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/carpark.html/sync_minutely");
curl_setopt($ch, CURLOPT_URL, "http://localhost/carpark.html/sync_minutely"); // TASK: sync
curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_POST, FALSE);
$output = curl_exec($ch);
curl_close($ch);
}
catch(Exception $e)
{
trigger_error('ERROR: ' . $e->getMessage());
}
sleep(1);
try
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/mitac_service.html/echo_mitac_alive"); // TASK: MITAC alive check
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
curl_setopt($ch, CURLOPT_POST, FALSE); curl_setopt($ch, CURLOPT_POST, FALSE);
$output = curl_exec($ch); $output = curl_exec($ch);
curl_close($ch); curl_close($ch);


+ 17
- 13
models/Mitac_service_model.php View File

@@ -24,33 +24,31 @@ class Mitac_service_model extends CI_Model
} }
// mitac socket // mitac socket
function mitac_socket($in)
function mitac_socket($in, $function_name = __FUNCTION__)
{ {
trigger_error(__FUNCTION__ . "..socket input|{$in}");
return 'ok';
trigger_error($function_name . "..socket input|{$in}");
return 'none'; // 尚未開放
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) { if ($socket === false) {
trigger_error(__FUNCTION__ . "..socket_create() failed: reason: " . socket_strerror(socket_last_error()));
trigger_error($function_name . "..socket_create() failed: reason: " . socket_strerror(socket_last_error()));
} }


$result = socket_connect($socket, MITAC_SERVICE_IP, MITAC_SERVICE_PORT); $result = socket_connect($socket, MITAC_SERVICE_IP, MITAC_SERVICE_PORT);
if ($result === false) { if ($result === false) {
trigger_error(__FUNCTION__ . "..socket_connect() failed.\nReason: ({$result}) " . socket_strerror(socket_last_error($socket)));
trigger_error($function_name . "..socket_connect() failed.\nReason: ({$result}) " . socket_strerror(socket_last_error($socket)));
return false; // 中斷 return false; // 中斷
} }
if(!socket_write($socket, $in, strlen($in))) if(!socket_write($socket, $in, strlen($in)))
{ {
trigger_error(__FUNCTION__ . '..Write failed..');
trigger_error($function_name . '..Write failed..');
} }
$out = socket_read($socket, 64); $out = socket_read($socket, 64);
socket_shutdown($socket); socket_shutdown($socket);
socket_close($socket); socket_close($socket);
trigger_error(__FUNCTION__ . "..socket output|{$out}");
trigger_error($function_name . "..socket output|{$out}");
return $out; return $out;
} }
@@ -60,11 +58,19 @@ class Mitac_service_model extends CI_Model
$this->vars = $vars; $this->vars = $vars;
} }
// 詢問是否存活
public function echo_mitac_alive()
{
$msg = iconv("UTF-8", "ISO-8859-1", implode(',', ['Mitac', 'Are you alive']));
$result = $this->mitac_socket($msg, __FUNCTION__);
return $result == 'Mitac,Alive' ? 'ok' : 'gg';
}
// 要求扣款 (ALTOB to MITAC) // 要求扣款 (ALTOB to MITAC)
public function parking_fee_altob($parms) public function parking_fee_altob($parms)
{ {
// 轉換成對方要的格式 // 轉換成對方要的格式
$seqno = date('Ymd') . '_' . str_pad($parms['seqno'], 6, '0', STR_PAD_LEFT);
$seqno = date('Ymd') . '_' . str_pad($parms['seqno'], 10, '0', STR_PAD_LEFT);
$lpr = $parms['lpr']; $lpr = $parms['lpr'];
$in_time = date('Ymd_His', strtotime($parms['in_time'])); $in_time = date('Ymd_His', strtotime($parms['in_time']));
$out_time = date('Ymd_His', strtotime($parms['out_time'])); $out_time = date('Ymd_His', strtotime($parms['out_time']));
@@ -72,9 +78,7 @@ class Mitac_service_model extends CI_Model
// 產生通訊內容 // 產生通訊內容
$msg = iconv("UTF-8", "ISO-8859-1", implode(',', ['Mitac', 'ParkingFee_Altob', $seqno, $lpr, $in_time, $out_time, $gate_id])); $msg = iconv("UTF-8", "ISO-8859-1", implode(',', ['Mitac', 'ParkingFee_Altob', $seqno, $lpr, $in_time, $out_time, $gate_id]));
$result = $this->mitac_socket($msg);
trigger_error(__FUNCTION__ . "..{$msg}..|{$result}");
$result = $this->mitac_socket($msg, __FUNCTION__);
return 'ok'; return 'ok';
} }


Loading…
Cancel
Save