SmaSvrアプリ開発方法

開発環境

スマートフォンやタブレット端末からレジ周辺機器の制御を伴うアプリを操作できる環境についてご紹介します。
テクノベインズでは、この環境をSmaSvr(スマサバ:SMArtSerVeR)と呼んでいます。SmaSvrは、具体的に以下のソフトウェアを搭載しています。

  • Linux
  • DNSサーバ (BIND)
  • Webサーバ (Apache)
  • DBサーバ (MySQL)
  • DHCPサーバ(dhcp)
  • FTPサーバ (vsftpd)
  • Wifiアクセスポイント機能(親機)
  • PHPプログラムの実行環境
  • レジ周辺機器にアクセスするためのサンプルプログラム

SmaSvrのシステム構成は以下の通り、ユーザはスマートフォン等の端末内蔵のブラウザを利用してSmaSvr内のWebアプリを起動し、Webアプリ側がレジ周辺機器とシリアル通信します。これにより、各端末へのソフトのインストールは不要になります。UEN-D525とレジ周辺機器はRS232またはRS232-USB I/Fコンバータ「USB232-00」を使用してUSB接続も可能です。

SmaSvrシステム構成
CMX500W3 TM-T885 LED841 UEN-D525

開発言語

SmaSvrで実行するアプリはPHP等のWebプログラミング言語で開発します。システム開発者は、一般的なWebシステムを開発する場合と同様の開発・動作環境でシステム構築することができます。
SmaSvrにカスタマディスプレイ、レシートプリンタ、ドロアをつなげば、スマートフォン対応のPOSレジを構築することも可能です。また、SmaSvrにLEDディスプレイ、レシートプリンタをつないでスマートフォンから番号待ち状況を確認できるような番号待ちシステムも簡単に構築できます。周辺機器への操作は、アプリ内でテクノベインズから提供するシリアルコントロールクラス(serialControl.php)を利用してボーレート等のシリアルポートの設定をおこない、レシートプリンタ等のシリアル機器に応じたコマンドを実行します。ここでは、LEDディスプレイ「LED841」に「1234」と表示させるサンプルプログラムとレシートプリンタ「TM-T88V」にレシート、整理券を表示させるサンプルプログラムを紹介します。

LED841に数値を表示させるサンプルプログラム
<?php
// テクノベインズから提供するシリアルコントロールクラスを利用します。
require (“serialControl.php”);
$serial = new serialControl();

// LED841の表示コマンドを設定します。LED841のコマンドの詳細はこちら
$msg = chr(0x1B) . chr(0×30) . chr(0×44) . 1234 . chr(0xD);

// シリアルポート名を指定します。
$serial -> setDevice(“/dev/ttyS0″);

// ボーレートを指定します。
$serial -> setBaudRate(9800);

// データビットを指定します。
$serial -> setDatabit(8);

// ストップビットを指定します。
$serial -> setStopBits(1);

// パリティを指定します。
$serial -> setParity(“none”);

// フロー制御を指定します。
$serial -> setFlowControl(“none”);

// シリアルの設定コマンドを実行します。
$serial -> cmdExec();

// ポートをオープンします。
$serial -> deviceOpen();

// LED841にメッセージを送信します。
$serial -> sendMessage($msg);

// ポートをクローズします。
$serial -> deviceClose();
?>

TM-T88Vにレシート・整理券を発行させるサンプルプログラム
1. レシートサンプル 2. 整理券サンプル
レシートサンプル 整理券サンプル
<?php
// 1. レシート出力サンプルプログラム
require (“serialControl.php”);
require (“printerCommand.php”);
$serial = new serialControl();

// printerCommand.phpで定義済みの定数を設定
$msg = $printerINT
. $printerCTR . $printerDWON . “\nsmasvr.com\n” . $printerDWOFF
. $printerJIS . $printerJPN
. mb_convert_encoding(“テクノベインズ\n湯島店\nTEL:03-3832-7460″, “SJIS”,”UTF-8″)
. $printerdn2 . $printerCTR . $printerBDON
. mb_convert_encoding(“毎度ありがとうございます\nご来店をおまちしております\n”, “SJIS”,”UTF-8″)
. $printerBDOFF . $printerdn2
. $printerRESET . $printerJIS . $printerJPN
. mb_convert_encoding(“ブレンドコーヒー”, “SJIS”,”UTF-8″)
. $printerR . $printerJIS . $printerJPN
. mb_convert_encoding(” ¥200\n”, “SJIS”,”UTF-8″)
. $printerRESET . $printerJIS . $printerJPN
. mb_convert_encoding(“オレンジジュース”, “SJIS”,”UTF-8″)
. $printerR . $printerJIS . $printerJPN
. mb_convert_encoding(” ¥300\n”, “SJIS”,”UTF-8″)
. $printerJIS . $printerJPN . $printerDWON
. mb_convert_encoding(“合計”, “SJIS”,”UTF-8″)
. mb_convert_encoding(” ¥500\n”, “SJIS”,”UTF-8″)
. $printerDWOFF
. mb_convert_encoding(“お預り”, “SJIS”,”UTF-8″)
. $printerDWON
. mb_convert_encoding(” ¥1,000\n”, “SJIS”,”UTF-8″)
. $printerDWOFF
. mb_convert_encoding(“お釣”, “SJIS”,”UTF-8″)
. $printerDWON. mb_convert_encoding(” ¥500\n”, “SJIS”,”UTF-8″)
. $printerDWOFF
. $printerR.mb_convert_encoding(“\n2点   0001   吉田\n”, “SJIS”,”UTF-8″)
. $printerCTR . chr(0x0A) . $printerJIS . $printerJPN
. mb_convert_encoding(date(‘Y年m月d日G時i分s秒’),”SJIS”,”UTF-8″);

//TM-T88Vに印字する内容を作成。
$msg = $msg . $printerdn . $printerCUT;

// シリアルポート名を指定します。
$serial -> setDevice(“/dev/ttyS0″);

// ボーレートを指定します。
$serial -> setBaudRate(19200);

// データビットを指定します。
$serial -> setDatabit(8);

// ストップビットを指定します。
$serial -> setStopBits(1);

// パリティを指定します。
$serial -> setParity(“none”);

// フロー制御を指定します。
$serial -> setFlowControl(“rts/cts”);

// シリアルの設定コマンドを実行します。
$serial -> cmdExec();

// ポートをオープンします。
$serial -> deviceOpen();

// TM-T88Vに印字内容を送信します。
$serial -> sendMessage($msg);

// ポートをクローズします。
$serial -> deviceClose();
?>

<?php
// 2. 整理券出力サンプルプログラム
require (“serialControl.php”);
require (“printerCommand.php”);
$serial = new serialControl();

$count = 22;

// printerCommand.phpで定義済みの定数を設定
$msg = $printerINT
. $printerCTR . $printerDWON
. “\nsmasvr.com\n”
. $printerDWOFF . $printerdn2
. $printerRESET . $printerMOJI . $printerJIS . $printerJPN . $printerDWON
. mb_convert_encoding(“受付番号:\n”, “SJIS”,”UTF-8″)
. $printerDWOFF
. $printerR . $printerQSON. $printerGSbON. $count. “\n”. $printerGSbOFF. $printerQSOFF
. $printerdn2 . $printerCTR. $printerBDON
. mb_convert_encoding(“番号をお呼びします\nしばらくお待ちください\n”, “SJIS”,”UTF-8″)
. $printerBDOFF
. $printerCTR . chr(0x0A) . $printerJIS . $printerJPN
. mb_convert_encoding(date(‘Y年m月d日G時i分s秒’),”SJIS”,”UTF-8″);
$barcode = $barcodeHightWidth . $barcodePrint . $barcodePoint
. $count
. $barcodePoint . $barcodeEnd
. $count;

//TM-T88Vに印字する内容を作成。
$msg = $msg . $printerdn2 . $barcode . $printerdn . $printerCUT;

// シリアルポート名を指定します。
$serial -> setDevice(“/dev/ttyS0″);

// ボーレートを指定します。
$serial -> setBaudRate(19200);

// データビットを指定します。
$serial -> setDatabit(8);

// ストップビットを指定します。
$serial -> setStopBits(1);

// パリティを指定します。
$serial -> setParity(“none”);

// フロー制御を指定します。
$serial -> setFlowControl(“rts/cts”);

// シリアルの設定コマンドを実行します。
$serial -> cmdExec();

// ポートをオープンします。
$serial -> deviceOpen();

// TM-T88Vに印字内容を送信します。
$serial -> sendMessage($msg);

// ポートをクローズします。
$serial -> deviceClose();
?>

  
SmaSvrのWi-Fi設定

SmaSvrは、ブラウザが動作する環境であれば、どの端末からでもアクセス可能です。ここでは、スマートフォンのiPhone、Androidでの設定方法を説明します。

iPhoneの設定方法
1.設定から「Wi-Fi」をタップ 2.「Wi-Fi」を「オン」にします 3.「smasvr-wifi」をタップ 4.「パスワード」を入力
iPhone Wifi設定 手順1 iPhone Wifi設定 手順2 iPhone Wifi設定 手順3 iPhone Wifi設定 手順4
5.[smasvr-wifi」に接続完了 6.ブラウザから「smasvr.com」にアクセス
iPhone Wifi設定 手順5 iPhone Wifi設定 手順6
Androidの設定方法
1. 設定から「Wi-Fi設定」をタップ 2.「Wi-Fi」を「On」にします 3.「smasvr-wifi」をタップ 4.「パスワード」を入力
Android Wifi設定 手順1 Android Wifi設定 手順2 Android Wifi設定 手順3 Android Wifi設定 手順4
5.「smasvr-wifi」に接続完了 6.ブラウザから「smasvr.com」にアクセス
Android Wifi設定 手順5 Android Wifi設定 手順6

最近の投稿