小型キャッシュドロワ DSM36SLN2/DSM48MLN2

DSM36SLN2 PHPサンプルソース

下図はスマート端末やPCから同じネットワーク上にあるローカルサーバー内のPHPファイルにアクセスすることで、ドロアを制御する例 です。
PHPを使用することによって、サーバーのOS(Linux,Windows等)やデバイスを選ばずドロアの制御ができます。
※サーバーとドロア間はTCP/IPのソケット通信で通信を行います。
下記はPHPでのソケット通信でキャッシュドロアを制御するサンプルソースです。
ローカルサーバー等から制御する際の参考にしてください。




下記にサンプルソースを記述します。

<?php

$sw=""; #ドロアスイッチステータス取得変数
$ip=""; #接続先IPアドレス変数
$port=""; #接続先ポート番号変数
$hn=""; #ハードウェアVer取得用変数
$errmsg=""; #エラーメッセージ

#ドロアを開く

if
(isset($_POST["open"])) {
  
$ip
= $_POST['address']; #接続先のIPアドレス
  $port
= $_POST['port']; #接続先のポート番号

  $fp = fsockopen($ip, $port, $errno, $errstr, 30); #ソケットオープン

  if
(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    
echo "$errmsg<br/>\n";

  }
else{
    $msg = '$WO'; #ドロアオープンコマンド
    fwrite(
$fp, $msg); #送信
    fclose(
$fp); #ソケットクローズ
  }
}

#ドロアスイッチのステータスを取得する
if
(isset($_POST["sw"])) {
  $ip
= $_POST['address']; #接続先のIPアドレス
  
$port = $_POST['port']; #接続先のポート番号

  
$fp = fsockopen($ip, $port, $errno, $errstr, 30); #ソケットオープン

  
if(!$fp){
    
$errmsg=$errstr.'('.$errno.')';
    $errmsg
= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    
echo "$errmsg<br/>\n";

  }
else{
  
  $msg = '$WS'; #ドロアスイッチステータス取得コマンド
    fwrite(
$fp, $msg); #送信
    $sw=fread ($fp,2); #受信
    fclose(
$fp); #ソケットクローズ

    if
($sw=="1$"){
      $sw="CLOSE";
    }
else if($sw="0$"){
      $sw="OPEN";
    }
else{
    
  $sw="";
    }
  }
}

#ドロアオープン時間変更
if
(isset($_POST["edit_time"])) {
  $ip = $_POST['address']; #接続先のIPアドレス
  $port = $_POST['port']; #接続先のポート番号
  $drawer_time=$_POST['drawer_time']; #ドロアオープン時間設定

  $fp = fsockopen($ip, $port, $errno, $errstr, 30); #ソケットオープン

  if
(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    
echo "$errmsg<br/>\n";

  }
else{
    if($drawer_time==0){
      $msg='$W0'; #ドロアオープン時間変更コマンド $W0~$W9、$Wa~$Wz
    }
    
#ドロアオープン時間計算($W0~$W9)
    else if
($drawer_time >= 20 && $drawer_time <= 180){
      $drawer_time
=$drawer_time/20;
      $msg='$W'.$drawer_time;
    }

    #ドロアオープン時間計算(アスキーコードに変換:$Wa~$Wz)
    else if
($drawer_time >= 100 && $drawer_time <=700){
      $drawer_time=($drawer_time/20) + 87;
      $drawer_time=chr($drawer_time);
      $msg='$W'.$drawer_time;
    }

  fwrite(
$fp, $msg);
  fclose(
$fp);
  }
}

#IPアドレス変更
if
(isset($_POST["edit_ip"])) {
  $ip = $_POST['address'];
  $port = $_POST['port'];

  $fp = fsockopen($ip, $port, $errno, $errstr, 30);

  if(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    echo "$errmsg<br/>\n";

  }
else{
    #LANドロアIPアドレス変更コマンド $HA+変更IPアドレス
    
$msg = '$HA'.$_POST['edit_address'];
    fwrite(
$fp, $msg);
    fclose(
$fp);
  }
}

#ポート番号変更
if
(isset($_POST["edit_port"])) {
  
$ip = $_POST['address'];
  $port = $_POST['port'];

  
$fp = fsockopen($ip, $port, $errno, $errstr, 30);

  if(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    echo "$errmsg<br/>\n";

  }
else{
    #LANドロアポート番号変更コマンド $HP+変更ポート番号
    
$msg = '$HP'.$_POST['edit_portno'];
    fwrite(
$fp, $msg);
    fclose(
$fp);
  }
}

#サブネットマスク変更
if
(isset($_POST["edit_mask"])) {
  $ip = $_POST['address'];
  $port = $_POST['port'];

  $fp = fsockopen($ip, $port, $errno, $errstr, 30);

  if(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    echo "$errmsg<br/>\n";

  }
else{
    
#LANドロアポート番号変更コマンド $HM+変更サブネットマスク
    
$msg = '$HM'.$_POST['edit_snmask'];
    fwrite(
$fp, $msg);
    fclose(
$fp);
  }
}

#ゲートウェイIPアドレス変更
if(isset(
$_POST["edit_gip"])) {
  $ip = $_POST['address'];
  $port = $_POST['port'];

  $fp = fsockopen($ip, $port, $errno, $errstr, 30);

  if(!$fp){
    
$errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    echo "$errmsg<br/>\n";

  }
else{
    #LANドロアゲートウェイIPアドレス変更コマンド $HM+変更ゲートウェイIPアドレス
    $msg = '$HG'.$_POST['edit_gateip'];
    fwrite(
$fp, $msg);
    fclose(
$fp);
  }
}

#ハードウェアのver取得
if
(isset($_POST["hn"])) {
  
$ip = $_POST['address'];
  $port = $_POST['port'];

  $fp = fsockopen($ip, $port, $errno, $errstr, 30);

  
if(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    echo "$errmsg<br/>\n";

  }
else{
    #ハードウェアVer取得コマンド
    
$msg = '$HN';
    fwrite(
$fp, $msg);
    
#LANドロアから送信されたハードウェアVer取得
    $hn=fread ($fp,21);
    fclose(
$fp);
  }
}

#ハードウェアの初期化
if(isset(
$_POST["hi"])) {
  $ip = $_POST['address'];
  $port = $_POST['port'];

  
$fp = fsockopen($ip, $port, $errno, $errstr, 30);

  
if(!$fp){
    $errmsg=$errstr.'('.$errno.')';
    $errmsg= mb_convert_encoding($errmsg, "UTF-8", "SJIS");
    
echo "$errmsg<br/>\n";

  }
else{
    #ハードウェア初期化コマンド(工場出荷時のネットワーク設定にします)
    $msg = '$HI';
    fwrite(
$fp, $msg);
    fclose(
$fp);
  }
}
?>

<html>
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>

<form
action="" method="post" Accept-charset="UTF-8">
<h3>
LANドロア PHPサンプルプログラム</h3>

<table
style="border:1px solid #000000;" >
<tr>
<td
style ="padding: 0px 10px 0px 10px;" colspan="2" align="center" bgcolor="#C0C0C0" >ドロア制御</td>
</tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;">接続先 IPアドレス:<br>
<input
type="text" name="address" size="20" value="<?php echo $ip; ?>" /></td>
<td
style ="padding: 0px 10px 0px 10px;"><br> 例:192.168.1.199<br></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;">接続先 ポート番号:<br>
<input
type="text" name="port" size="20" value="<?php echo $port; ?>"/></td>
<td
style ="padding: 0px 10px 0px 10px;"><br> 例:10001<br></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;"><br><input type="submit" style="WIDTH: 100px; HEIGHT: 30px;" name="open" value="ドロアオープン"/><br></td>
<td></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;"><br><input type="submit" style="WIDTH: 150px; HEIGHT: 30px;" name="sw" value="スイッチステータス取得"/><br></td>
<td
style ="padding: 0px 10px 0px 10px;"><br> <input type="text" name="status" size="15" value="<?php echo $sw; ?>"/><br></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 10px 10px;"><br>ドロアオープン時間変更:<br>(0=250ms)<br>
<select
name="drawer_time">
<?php for($i=0;$i<=700;$i=$i+20){ ?>
<option
value="<?php echo $i; ?>"><?php echo $i ?></option>
<?php }?>
</select>
ms</td>
<td
style ="padding: 0px 10px 10px 10px;"><br><br><br> 
<input
type="submit" style="WIDTH: 100px; HEIGHT: 30px;" name="edit_time" value="変更する"/></td>
</tr>
</table>
<br>
<table
style="border:1px solid #000000;">
<tr><td
style ="padding: 0px 10px 0px 10px;" colspan="2" align="center" bgcolor="#C0C0C0">ネットワーク設定変更</td></tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;">変更 IPアドレス:<br>
<input
type="text" name="edit_address" size="20" value="" /> 例:192.168.001.199</td>
<td
style ="padding: 0px 10px 0px 10px;"><br> 
<input
type="submit" style="WIDTH: 190px; HEIGHT: 30px;" name="edit_ip" value="IPアドレスを変更する"/></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;">変更 ポート番号:<br>
<input
type="text" name="edit_portno" size="20" value=""/> 例:10001</td>
<td
style ="padding: 0px 10px 0px 10px;"><br> 
<input
type="submit" style="WIDTH: 190px; HEIGHT: 30px;" name="edit_port" value="ポート番号を変更する"/><br></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;">変更 サブネットマスク:<br>
<input
type="text" name="edit_snmask" size="20" value=""/> 例:255.255.255.000</td>
<td
style ="padding: 0px 10px 0px 10px;"><br> 
<input
type="submit" style="WIDTH: 190px; HEIGHT: 30px;" name="edit_mask" value="サブネットマスクを変更する"/><br></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 10px 10px;">変更 Gateway IPアドレス:<br>
<input
type="text" name="edit_gateip" size="20" value=""/> 例:192.168.001.001</td>
<td
style ="padding: 0px 10px 10px 10px;"><br> 
<input
type="submit" style="WIDTH: 190px; HEIGHT: 30px;" name="edit_gip" value="Gateway IPアドレスを変更する"/><br></td>
</tr>
</table>
<br>
<table
style="border:1px solid #000000;">
<tr><td
style ="padding: 0px 10px 0px 10px;" colspan="2" align="center" bgcolor="#C0C0C0">ハードウェア設定</td></tr>
<tr>
<td
style ="padding: 0px 10px 0px 10px;"><br><input type="submit" style="WIDTH: 150px; HEIGHT: 30px;" name="hn" value="デバイス名取得"/><br></td>
<td
style ="padding: 0px 10px 0px 10px;"><br> <input type="text" name="status" size="15" value="<?php echo $hn; ?>"/><br></td>
</tr>
<tr>
<td
style ="padding: 0px 10px 10px 10px;"><br><input type="submit" style="WIDTH: 150px; HEIGHT: 30px;" name="hi" value="デバイス初期化"/><br></td>
<td></td>
</tr>
</table>
</form>

</body>
</html>


  

参考

キャッシュドロワは、レジ周辺機器です。レジスターやPOS(ポス、ピーオーエス)レジなどで用いられ、ドロワー、キャッシュドロワー、キャッシュドロア、キャッシュドロアー、ドロア、ドロアー、キャッシャー、金銭出納箱、金銭引き出し、
収納箱、引出などと呼ばれる場合も有ります。

本ページ記載事項は、予告無く変更されることがあります。また記載されているメーカ公表の性能参考値は工場出荷時の代表的な値または設計時の値をあらわすもので、製品個々の性能を保証するものではありません。


テクノベインズ株式会社 〒113-0034 東京都文京区湯島3丁目31-4 ツナシマ第1ビル2階 電話:03-3832-7460 (平日:09:00-17:30) FAX:03-3832-7430
Techno Veins Co.,Ltd. Tsunashima Daiichi Bldg 2F, 31-4, Yushima 3, Bunkyou, Tokyo, 1130034, JAPAN. Tel:+81 3-3832-7460 FAX:+81 3-3832-7430 sales@technoveins.co.jp (弊社地図)
©Copyright Techno Veins Co.,Ltd. 1987-2013. All rights Reserved.