...

WS-POS - Fujitsu

by user

on
Category: Documents
43

views

Report

Comments

Transcript

WS-POS - Fujitsu
WS-POS 環境セットアップ・
アプリケーション開発ガイド
富士通アイソテック株式会社
Revision 1.0.0.0
WS-POS 環境セットアップ・アプリケーション開発ガイド
目次
1. 概要 ............................................................ 3
1.1
1.2
1.3
環境構築に必要なソフトウェア .................................................................................................. 3
機器構成について .................................................................................................................. 4
商標について ........................................................................................................................ 4
2. 環境セットアップと設定について ..................................... 5
2.1
インストール .......................................................................................................................... 5
2.1.1
. N E T Fr a m ewo r k .......................................................................................................... 5
2.1.2
OPO S ドラ イバ .............................................................................................................. 6
2.1.3
C o mmo n C o n t ro l Ob ject ( 共 通 C O) .............................................................................. 8
2.1.4
POS f o r . N ET ............................................................................................................... 9
2.1.5
WS -P OS 環 境 ............................................................................................................. 1 2
2.1.6
そ の 他 の 設 定 ............................................................................................................. 1 3
2.2
インストール確認 ................................................................................................................. 1 4
2.3
実デバイスを用いた実行のための設定(POS プリンタ) ................................................................. 1 5
2.4
実デバイスでの実行(コンシューマとプロバイダが同一 PC) ........................................................... 1 7
2.5
実デバイスでの実行(コンシューマとプロバイダが別 PC) .............................................................. 1 7
2.6
WS-POS サービスプロバイダを Windows Service で実行 .............................................................. 1 9
2.7
サービスプロバイダの各種設定............................................................................................... 2 0
2.7.1
B eh a vi o r 名 、 デ バ イス名 の 変 更 ................................................................................... 2 0
2.7.2
サ ー ビスプ ロバ イダ UR L の 変 更 .................................................................................. 2 0
2.7.3
end p o i n t の 変 更 ......................................................................................................... 2 1
2.7.4
セッ ショ ンタイムアウト の 確 認 間 隔 の 変 更 ...................................................................... 2 2
2.7.5
通 信 ポ ー トの 最 大 同 時 接 続 数 の 変 更 ............................................................................ 2 2
2.7.6
使 用 す る . N E T Fr a mewo r k バ ー ジョ ンの 変 更 ................................................................ 2 2
2.8
サービスコンシューマの各種設定 ............................................................................................ 2 3
2.8.1
end p o i n t の 変 更 ......................................................................................................... 2 3
2.8.2
サ ー ビスコンシュ ー マ UR L の 変 更 ................................................................................ 2 4
3. WS-POS アプリケーションの作成..................................... 25
3. 1
開 発 環 境 .......................................................................................................................... 2 5
3. 2
開 発 言 語 .......................................................................................................................... 2 5
3. 3
作 成 手 順 .......................................................................................................................... 2 5
3.3.1
新 規 プ ロジェク トの 作 成 ............................................................................................... 2 5
3.3.2
WS POS C o n t r a ct の 追 加 .............................................................................................. 2 5
3.3.3
S ys t em. S er vi ceMo d el の 追 加 ...................................................................................... 2 5
3.3.4
アプ リ ケ ー ショ ン構 成 フ ァイル の 追 加 ............................................................................. 2 6
3.3.5
アプ リ ケ ー ショ ン構 成 フ ァイル の 編 集 ............................................................................. 2 7
3.3.6
アプ リ ケ ー ショ ンソ ー スの 編 集 ...................................................................................... 2 8
3.3.7
例 外 処 理 .................................................................................................................... 3 0
3.3.8
イベント処 理 - S el f Ho s t 方 式 ......................................................................................... 3 1
3.3.9
イベント処 理 - L on g Po l l i n g 方 式 ................................................................................... 3 5
3 . 3 . 10 Keep A l i v e 処 理 .......................................................................................................... 3 9
3. 4
O POS の メ ソッ ド ・ プ ロ パ テ ィにつ いて .................................................................................. 4 1
3. 5
W S- PO S で使 用 でき ないメ ソ ッ ド ・プ ロ パ テ ィ ....................................................................... 4 1
Copyright (C) Fujitsu Isotec Limited. 2014
1 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
4. 注意事項 ........................................................ 42
5. 改訂履歴 ........................................................ 43
Copyright (C) Fujitsu Isotec Limited. 2014
2 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
1.
概要
本ドキュメントは、FIT 製 OPOS ドライバを利用した WS-POS 環境のセットアップ方法とアプリケーションの開発方法に
ついて記述します。
本ドキュメントでは、下記の表 1-1 の環境を例として解説しています。環境が異なる場合には、適宜読み替えてくださ
い。 また、ダウンロード URL は 2014 年 6 月時点のものです。
WS-POS(Web Services for Point of Service)は、Web ベースの POS システムでデバイス制御を行うものです。
WS-POS の仕様については、下記 URL を参照してください。
https://nrf.com/resources/retail-technology-standards/unifiedpos
1.1
環境構築に必要なソフトウェア
WS-POS 構築については以下のソフトウェアが必要となります。
表 1-1 環境構築に必要なソフトウェア
種類
説明
WS-POS 参照実装
WS-POS サービスの参照実装です。
以下からダウンロードします。
https://nrf.com/resources/retail-library/ws-pos-version-12-reference-implementation-c
Microsoft Point of Service
for .NET v1.12
(POS for .NET 1.12)
Common Control Object 1.12
FP-1100 OPOS ドライバ
.NET Framework
日本語のドキュメント等は下記 URL を参照してください。
http://www.microsoft.com/ja-jp/business/industry/retail/wspos/default.aspx
WS-POS が利用します。
以下からダウンロードします。
http://www.microsoft.com/en-us/download/details.aspx?id=5355
上記モジュールが参照する CO です。
以下からダウンロードします。
http://monroecs.com/oposccos_current.htm
FP-1100 OPOS ドライバ一式
以下からダウンロードします。
http://jp.fujitsu.com/group/fit/services/printers/downloads/driver/fp1100/#FP-1100OPOS
WS-POS の動作には、Microsoft .NET Framework 3.5 以降が必要になります。
Microsoft のサイトからダウンロードしてください。
・Microsoft .NET Framework 3.5
http://www.microsoft.com/ja-jp/download/details.aspx?id=21
・Microsoft .NET Framework 3.5 Service Pack 1
http://www.microsoft.com/ja-jp/download/details.aspx?id=25150
・Microsoft .NET Framework 4.0
http://www.microsoft.com/ja-jp/download/details.aspx?id=17718
・Microsoft .NET Framework 4.5
http://www.microsoft.com/ja-jp/download/details.aspx?id=30653
Copyright (C) Fujitsu Isotec Limited. 2014
3 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
1.2
機器構成について
クライアント PC とサーバーPC の機能配置について、以下に示します。
クライアント PC とサーバーPC は LAN/WAN で通信できる状態としてください。
ク ラ イア ン ト PC
サーバー PC
( W S- POS サー ビス コンシ ュ ーマ )
( W S - POS サー ビス プ ロ バ イ ダ )
W S- P O S 参 照 実 装
W S- P O S ア プ リ ケ ー シ ョ ン
( W S- P O S 参 照 実 装 サ ン プ ル )
Mi c r o s of t P oi n t o f S e r vi c e
C om m o n C o n t r ol O b j e c t
F P - 11 0 0 O P O S ド ラ イ バ
LA N / WA N
図1-1 構成図
1.3
商標について
記載されている会社名、製品名は各社の登録商標または商標です。
Copyright (C) Fujitsu Isotec Limited. 2014
4 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.
環境セットアップと設定について
本章では、WS-POS 環境セットアップについて説明します。
※セットアップは管理者権限で行ってください。
2.1
インストール
以下の手順で、WS-POS 環境に必要なソフトウェアをインストールします。WS-POS サービスプロバイダを構築する
PC(サーバー側)にインストールします。
2.1.1
.NET Framework
WS-POSの動作に .NET Framework 3.5以降が必要になります。
Windows7 以降の OS では、有効化(下記参照)することでインストールされ使用可能になります。
手順
内容
詳細
1
.NET Framework 3.5 以降
.NET Framework 3.5以降がインストールされていない場合、
のダウンロード
以下のURLからダウンロードしてインストールしてください。
・Microsoft .NET Framework 3.5
http://www.microsoft.com/ja-jp/download/details.aspx?id=21
・Microsoft .NET Framework 3.5 Service Pack 1
http://www.microsoft.com/ja-jp/download/details.aspx?id=25150
・Microsoft .NET Framework 4.0
http://www.microsoft.com/ja-jp/download/details.aspx?id=17718
・Microsoft .NET Framework 4.5
http://www.microsoft.com/ja-jp/download/details.aspx?id=30653
2
.NET Framework の有効化
コントロールパネル > プログラムと機能 > Windows の機能の有効かまたは
無効化 を選択して以下の項目にチェックを入れます。
・Windows Communication Foundation HTTP アクティブ
・Windows Communication Foundation 非 HTTP アクティブ
・HTTP アクティブ化
Copyright (C) Fujitsu Isotec Limited. 2014
5 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.1.2
OPOS ドライバ
ここでは 、 FP- 1 1 0 0 O POS ド ラ イ バ を 例 に説 明 しま す 。
手順
1
内容
OPOS ドライバ
のインストール
詳細
<32bit OSの場合>
1. 以下のURLからダウンロードします。
http://jp.fujitsu.com/group/fit/services/printers/downloads/driver/fp1100/#FP-1100OPOS
2.
ダウンロードした実行ファイルをダブルクリックして解凍します。
3.
解凍して作成されたフォルダ内(1つ下の階層のフォルダの場合があります)のSetup.exeを起動し
ます。
4.
以下の画面が表示されます。画面の指示に従いインストールを行ってください。
<64bit OSの場合>
1. 以下のURLからダウンロードします。
http://jp.fujitsu.com/group/fit/services/printers/downloads/driver/fp1100/#FP-1100OPOS
2.
ダウンロードした実行ファイルをダブルクリックして解凍します。
3.
管理者権限でコマンドプロンプトを起動し、解凍して作成されたフォルダ内のSetup.exeがあるフォ
ルダに移動します。
4.
5.
Setup.exeに起動オプション”/32bit”を付けて実行します。
コマンドプロンプトから下記を実行してください。
> Setup.exe /32bit
以下の画面が表示されます。画面の指示に従いインストールを行ってください。
Copyright (C) Fujitsu Isotec Limited. 2014
6 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
2
内容
OPOS ドライバ
とプリンタのセッ
トアップ
詳細
1.
使用するプリンタをPCに接続し、電源を入れます。
2.
OPOSのセットアップを行います。Windows8以降の場合は、アプリ一覧画面から、その他のOSの
場合は、スタートメニューから「FP Printer OPOS Setup」を起動します。
3.
インターフェースを選択し、[OK]をクリックします。
①
②
※ LAN I/Fを選択した場合
LAN接続されたプリンタを選択する画面が表示されます。
[Printer Detection]をクリックし、検索されたプリンタを選択後、[Printer Setting]をクリックします。
③
①
4.
②
プリンタの設定を任意に変更し、[OK]をクリックします。
この画面で表示されている”Device Name”は、2.3、2.4章で使用する”デバイス名”です。
Copyright (C) Fujitsu Isotec Limited. 2014
7 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.1.3
Common Control Object (共通 CO)
Common Control Object(共通 CO)をインストールします。
手順
1
内容
Common Control Object
のインストール
詳細
1.
以下のURLから「1.12.001 CCO Runtime (Wize Install)」をダウンロードします。
http://monroecs.com/oposccos_current.htm
2.
ダウンロードした OposCCOs-1_12_001.exe をダブルクリックします。
以下の画面が表示されます。画面の指示に従いインストールを行ってくださ
い。
※共通COはFP-1100 OPOSより後にインストールしてください。
共通COのインストール後にFP-1100 OPOSドライバをインストールすると、POS for .NET
からデバイスが使用できなくなります。これはレジストリのOPOSデバイスのCO設定が、
共通COからFP-1100 OPOSのCOに上書きされるためです。
この場合は、共通CO をアンインストール&再インストールするか、RegSvr32.exe を使用
して、共通CO の各OCX を再度レジストリに登録し直しすると使用できるようになります。
Copyright (C) Fujitsu Isotec Limited. 2014
8 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.1.4
POS for .NET
POS for .NET 1.12をインストールします。
※インストールの際は、POS for .NET SDKも選択してください。
手順
1
内容
POS for .NET 1.12 のダウ
ンロードと解凍
詳細
1.
以下の URL からダウンロードします。
http://www.microsoft.com/en-us/download/details.aspx?id=5355
2.
ダウンロードした POS for .NET v1.12.exe をダブルクリックします。
以下の画面が表示されますので、[はい]をクリックします。
3.
以下の画面が表示されます。”Unzip to folder”に、任意の解凍先フォルダを指
定して、[Unzip]をクリックします。
②
①
4.
解凍が完了すると、以下の画面が表示されます。[OK]をクリックします。
5.
[Close]をクリックします。
Copyright (C) Fujitsu Isotec Limited. 2014
9 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
2
内容
POS for .NET 1.12 の
インストール
詳細
1. 解凍先フォルダ内の Setup.exe を起動します。
2.
以下の画面が表示されます。[Install]をクリックします。
3.
次の画面で[Next]をクリックし、更に次の画面で[Accept]をクリックします。
4.
以下の画面が表示されます。”Custom”を選択し、[Next]をクリックします。
②
①
5.
以下の画面が表示されます。”SDK”にもチェックを入れ、[Next]をクリックしま
す。
①
②
Copyright (C) Fujitsu Isotec Limited. 2014
10 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
2
つづき
内容
POS for .NET 1.12 の
インストール
詳細
6. 以下の画面が表示されます。[Install]をクリックします。
インストールが開始されます。
7.
Copyright (C) Fujitsu Isotec Limited. 2014
インストールが完了すると、以下の画面が表示されます。[Finish]をクリックしま
す。
11 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.1.5
WS-POS 環境
W S- PO S 参 照 実 装 を ダ ウン ロ ー ド し、 配 置 しま す 。
手順
1
2
内容
WS-POS 参照実装の
ダウンロードと配置
WS-POS
サービスプロバイダを
Windows サービスとし
てインストール
詳細
1.
以下からダウンロードします。
https://nrf.com/resources/retail-library/ws-pos-version-12-reference-implementation-c
2.
ダウンロードした ARTS WS-POS 1.2 Reference Implementation_0.zip を解凍しま
す。
3.
1.
解凍したフォルダから、WS-POS 参照実装のフォルダ(WSPOS_Refer_Impl_v3)を、
任意のフォルダにコピーします。(以降コピーしたフォルダを[WS-POS フォルダ]と
記述します。)
コマンドプロンプトを管理者権限で起動します。
2.
以下のコマンドを入力し、WS-POS 参照実装のフォルダに移動します。
> cd [WS-POS フォルダ]\WSPOS_Refer_Impl_v3\Provider\_dist\Release
3.
C:\Windows\Microsoft.NET\Framework\v2.0.50727 配下にある InstallUtil を利用
して WS-POS サービスプロバイダを Windows サービスとしてインストールします。
以下のコマンドを入力します。
> C:\Windows\Microsoft.NET\Framework\v2.0.50727\
InstallUtil WcfServiceHostWindowsService35.exe [ENTER]
4.
コントロールパネルからサービスを表示し、”WS-POS Service Provider Hosting
Container”のサービス名が表示されていることを確認します。
サービスは停止している状態にしておいてください。
次手順で、コンソールアプリケーションによるサービスプロバイダ起動確認を行い
ますので、サービスが動作しているとコンソールアプリケーションと衝突してしまう
ためです。
Copyright (C) Fujitsu Isotec Limited. 2014
12 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.1.6
手順
1
その他 の設 定
内容
ファイアウォールの設定
詳細
参照実装のデフォルトでは、WS-POS サービスプロバイダは8087 ポートにて
WS-POS サービスコンシューマからのリクエストを待ちます。
このため、サービスプロバイダがポートを開いて待ち受け可能なように、オペレーテ
ィングシステムやセキュリティソフトウェアにて上記ポートの通信をブロックしている
場合は、設定変更が必要です。
Copyright (C) Fujitsu Isotec Limited. 2014
13 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.2
インストール確認
インストールが正常に行われたかどうかを確認します。下記手順をサーバーで行ってください。
手順
内容
詳細
[WS-POS フォルダ]\WSPOS_Refer_Impl_v3\Provider\_dist\
1
コンソールアプリケーションによ
Release\WcfServiceHostConsoleExe35.exe
るサービスプロバイダ起動確認
を起動します。
成功するとコマンドプロンプトが表示され、待ち受け状態となります。
2
サービスコンシューマサンプルの
実行
[WS-POS フォルダ]\WSPOS_Refer_Impl_v3\Consumer\
Console_POSPrinterConsumerBiDirectionSample\bin\ Debug\
Console_POSPrinterConsumerBiDirectionSample.exe
を起動します。
成功するとコマンドプロンプトが表示され、待ち受け状態となります。
Enter キーを押すと、POSPrinter シミュレータが動作します。
Enter キーを押していくと、終了します。
これらの動作が確認できれば、インストールは正常に完了しています。
これらアプリケーションは動作確認後、終了してください。
Copyright (C) Fujitsu Isotec Limited. 2014
14 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.3
実デバイスを用いた実行のための設定(POS プリンタ)
環境の構築が完了したら、FP-1100 向けに固有の設定を行います。
手順
1
内容
OPOS デバイス名確認
詳細
コマンドプロンプトを管理者権限で起動します。
C:\Program Files\Microsoft Point Of Service に移動(64bit OS の場合は、
C:\Program Files (x86) \Microsoft Point Of Service)し、以下のコマンドで、
対象のドライバが出力されるかを確認します。
> posdm listsos
以下のような画面が表示されます。FP-1100 用のデバイス名が表示される
ことを確認します。
2
OPOS デバイス登録
以下のコマンドでデバイスを登録します
> posdm addname FP-1100 /TYPE:PosPrinter
/SOName:"FP1100LANPRT_192.168.2.104"
この例では、”FP-1100”というエイリアスについて、
デバイス名”FP1100LANPRT_192.168.2. 104”を登録します。
3
登録デバイス確認
以下のコマンドでデバイスを登録します
> posdm listnames
FP-1100 が登録されていることを確認します。
Copyright (C) Fujitsu Isotec Limited. 2014
15 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
4
内容
サービスコンシューマ設定ファイ
ルの変更
(クライアント側)
詳細
[WS-POS フォルダ] \WSPOS_Refer_Impl_v3\Consumer\
Console_POSPrinterConsumerBiDirectionSample\bin\Debug\
Console_POSPrinterConsumerBiDirectionSample.exe.config
の以下の部位を修正します。
◆修正前
<endpoint address=
"http://localhost:8087/POSPrinter.svc/POSPrinterSimulator"
binding="basicHttpBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
name="POSPrinterPort"/>
↓
◆修正後
<endpoint address=
"http://localhost:8087/POSPrinter.svc/POSPrinterFP1100"
binding="basicHttpBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
name="POSPrinterPort"/>
5
サービスプロバイダ設定ファイル
の変更(サーバー側)
[WS-POS フォルダ]\WSPOS_Refer_Impl_v3\Provider\_dist\Release\ フォル
ダにて、下記ファイルの以下に示す部位を修正します。
・WcfServiceHostConsoleExe35.exe.config
◆修正前
<behavior name="POSPrinter_Simulator">
<wsposDevice deviceName="Microsoft PosPrinter Simulator"
providerSessionTimeout="180" eventPollingTimeout="-1"
eventResponseTimeout="-1"/>
</behavior>
↓
◆修正後
<behavior name="POSPrinter_FP1100">
<wsposDevice deviceName="FP-1100"
providerSessionTimeout="180" eventPollingTimeout="-1"
eventResponseTimeout="-1"/>
</behavior>
◆修正前
<endpoint address="POSPrinterSimulator"
behaviorConfiguration="POSPrinter_Simulator"
binding="basicHttpBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
bindingNamespace=
"http://www.nrf-arts.org/UnifiedPOS/POSPrinter/"/>
↓
◆修正後
<endpoint address="POSPrinterFP1100"
behaviorConfiguration="POSPrinter_FP1100"
binding="basicHttpBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
bindingNamespace=
"http://www.nrf-arts.org/UnifiedPOS/POSPrinter/"/>
Copyright (C) Fujitsu Isotec Limited. 2014
16 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.4
実デバイスでの実行(コンシューマとプロバイダが同一 PC)
コンシューマとプロバイダを同一 PC で動作させ、実デバイスの動作を実行します。
プリンタを PC に接続し、「2.2. インストール確認」の手順を実施すると、プリンタから印刷が行われます。
印刷が行われない場合は、「2.3 実デバイスを用いた実行のための設定(POS プリンタ)」に間違いがないか確
認してください。
2.5
実デバイスでの実行(コンシューマとプロバイダが別 PC)
コンシューマ(クライアント)とプロバイダ(サーバー)をそれぞれ別々の PC で動作させ、実デバイスの動作を実行しま
す。
手順
1
内容
サービスコンシューマファイルを
クライアントPCにコピー
2
サービスコンシューマ設定ファイ
ルのサービスプロバイダ URL の
変更
(クライアント PC 側)
詳細
サーバーPCのフォルダ、
[WS-POS フォルダ] \WSPOS_Refer_Impl_v3\Consumer\
Console_POSPrinterConsumerBiDirectionSample\bin\Debug\
をクライアントPCにコピーします。
サービスプロバイダ URL を変更します。
クライアントPCで、
[WS-POS フォルダ] \WSPOS_Refer_Impl_v3\Consumer\
Console_POSPrinterConsumerBiDirectionSample\bin\Debug\
Console_POSPrinterConsumerBiDirectionSample.exe.config
の以下の部位を修正します。
◆修正前
<endpoint address=
"http://localhost:8087/POSPrinter.svc/POSPrinterFP1100"
binding="basicHttpBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
name="POSPrinterPort"/>
↓
◆修正後
<endpoint address=
"http://10.50.13x.xxx:8087/POSPrinter.svc/POSPrinterFP1100"
binding="basicHttpBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
name="POSPrinterPort"/>
「10.50.13x.xxx」はサーバーPC の IP アドレスです。
Copyright (C) Fujitsu Isotec Limited. 2014
17 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
3
内容
サービスコンシューマ設定ファイ
ルのサービスコンシューマ URL
の変更
(クライアント PC 側)
詳細
サービスプロバイダに通知するサービスコンシューマの URL を変更します。
クライアントPCで、
[WS-POS フォルダ] \WSPOS_Refer_Impl_v3\Consumer\
Console_POSPrinterConsumerBiDirectionSample\bin\Debug\
Console_POSPrinterConsumerBiDirectionSample.exe.config
の以下の部位を修正します。
◆修正前
<host>
<baseAddresses>
<add baseAddress="http://localhost:8001/POSPrinterEvent"/>
</baseAddresses>
</host>
↓
◆修正後
<host>
<baseAddresses>
<add baseAddress="http://10.50.13x.yyy:8001/POSPrinterEvent"/>
</baseAddresses>
</host>
「10.50.13x.yyy」はクライアント PC の IP アドレスです。
4
実デバイスでの動作確認
Copyright (C) Fujitsu Isotec Limited. 2014
プリンタを PC に接続し、「2.2. インストール確認」の手順を実施してください。
18 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.6
WS-POS サービスプロバイダを Windows Service で実行
ここまでは、サービスプロバイダはコンソールアプリケーションを使用していましたが、「2.1 インストール」の手順 5 で
登録した Windows Service での実行手順を説明します。
手順
1
内容
詳細
サービスプロバイダ設定ファイル [WS-POS フォルダ]\WSPOS_Refer_Impl_v3\Provider\_dist\Release\ フォル
の変更(サーバー側)
ダの WcfServiceHostWindowsService35.exe.config を
2.2 の手順 5 および 2.3 の手順 5 と同様に変更します。
2
サービスの起動
コントロールパネルからサービスを表示します。
”WS-POS Service Provider Hosting Container”のサービスを選択し、
“サービス起動“をクリックします。
編集した.config ファイルに間違いがなければ、サービスが正常に開始しま
す。
3
サービスコンシューマの起動
Copyright (C) Fujitsu Isotec Limited. 2014
Console_POSPrinterConsumerBiDirectionSample.exe などのコンシューマを
起動します。動作はコンソールアプリケーションのサービスプロバイダと変わ
りません。
19 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.7
サービスプロバイダの各種設定
ここでは、サービスプロバイダの設定可能な項目について説明します。
2.7.1
Behavior 名、デバ イス名の 変更
以 下 の 部 位 を 変 更 しま す 。
<behavior name="POSPrinter_Simulator">
<wsposDevice deviceName="Microsoft PosPower Simulator" providerSessionTimeout="180"
eventPollingTimeout="-1" eventResponseTimeout="-1" />
</behavior>
Key
behaviour name
wsposDevice deviceName
providerSessionTimeout
eventPollingTimeout
eventResponseTimeout
2.7.2
説明
使用する behavior 名を記載します。
使用するデバイス名を記載します。
セッションのタイムアウト時間を秒単位で指定します。
ロングポーリングのタイムアウト時間を秒単位で指定しま
す。
-1 を指定した場合はタイムアウトしません。
ロングポーリング/自己ホストのイベント処理終了待ちのタイ
ムアウト時間を秒単位で指定します。
-1 を指定した場合はタイムアウトしません。
サービ スプロバ イダ URL の変更
以 下 の 部 位 を 変 更 しま す 。
< s e r vi c e n am e = "W S PO S I ni t i at i ve. PO S Pr i nt e r. PO S Pr i n te r S er vi c e "
b e h avi or C onf i g ur at i on = " W S- PO S _S e r vi c e Pr ovi d er " >
< h os t >
< b as eA d d r es s e s >
<ad d b as e A d d r e s s = " h tt p : / /l oc al h os t : 80 8 7 / PO S Pr i nt e r. s vc " / >
< / b as eA d d re s s e s >
< / h ost >
< e n d p oi nt ad dr e s s = " POS Pr i n t er S im u l at or "
b e h avi or C onf i g ur at i on = " PO S Pri n t e r_ S im u l at or"
b i n d in g = " b as i c Ht t p Bi n d i n g " c on tr ac t = " U n if i e d POS . PO S Pri n t e r. V 1_ 2 . POS Pr i n t er "
b i n d in g N am e s p ac e =" h t t p: / / w w w . nr f - art s . org / U n if i e d PO S / POS Pr i n t er / " / >
< / s e r vi c e>
Key
add baseAddress
説明
サービスプロバイダ URL を下記形式で指定します。
http://[使用するプロバイダの IP アドレス:ポート番号]/POSPrinter.svc
例)
http://192.168.1.120:8087/POSPrinter.svc
Copyright (C) Fujitsu Isotec Limited. 2014
20 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.7.3
endpoint の変更
以 下 の 部 位 を 変 更 しま す 。
< s e r vi c e n am e = "W S PO S I ni t i at i ve. PO S Pr i nt e r. PO S Pr i n te r S er vi c e "
b e h avi or C onf i g ur at i on = " W S- PO S _S e r vi c e Pr ovi d er " >
< h os t >
< b as eA d d r es s e s >
< ad d b as e A dd r e s s= " h t t p: / / l oc al h ost : 8 0 8 7 / POS Pr i n t er . s vc " / >
< / b as eA d d re s s e s >
< / h ost >
<e n d p oi n t ad d r e s s = " PO S Pr i nt e r S im u l at or"
b e h avi or C on f i g u r at i on = " PO S Pr i nt e r_ S im u l at or "
b i n d in g = " b as i c Ht t p Bi n d i n g " c on tr ac t = " U n if i e d POS . PO S Pri n t e r. V 1_ 2 . POS Pr i n t er "
b i n d in g N am e s p ac e =" h t t p: / / w w w . nr f - art s . org / U n if i e d PO S / POS Pr i n t er / " / >
< / s e r vi c e>
Key
endpoint address
behaviorConfiguration
説明
使用する endpoint 名を記載します。
使用する behavior 名を記載します。
※ 同 じデ バ イ ス( 例 えば PO S Pr i nt e r ) を 複 数 使 用 す る 場 合 は 、 < e n d p oi nt > の 定 義 を コピ ー し て複 数 の デ
バ イ ス定 義 を 記 載 しま す 。
例)
< s e r vi c e n am e = "W S PO S I ni t i at i ve. PO S Pr i nt e r. PO S Pr i n te r S er vi c e "
b e h avi or C onf i g ur at i on = " W S- PO S _S e r vi c e Pr ovi d er " >
< h os t >
< b as eA d d r es s e s >
< ad d b as e A dd r e s s= " h t t p: / / l oc al h ost : 8 0 8 7 / POS Pr i n t er . s vc " / >
< / b as eA d d re s s e s >
< / h ost >
< e n d p oi n t ad d r e s s = " PO S Pr i n t er 1 "
b e h avi or C on f i g u r at i on = " PO S Pr i n t e r _ B e h avi or 1 "
b i n d i n g = " b as i c H t t p B i nd i n g " c on t r ac t = " U n i fi e d PO S . PO S Pr i nt e r . V 1 _ 2. PO S Pr i n t e r "
b i n d i n g N am e s p ac e = " h t t p : / / w w w . n rf - ar t s . or g / U n if i e d PO S / PO S Pr i n t e r / " / >
< e n d p oi n t ad d r e s s = " PO S Pr i n t er 2 "
b e h avi or C on f i g u r at i on = " PO S Pr i n t e r _ B e h avi or 2 "
b i n d i n g = " b as i c H t t p B i nd i n g " c on t r ac t = " U n i fi e d PO S . PO S Pr i nt e r . V 1 _ 2. PO S Pr i n t e r "
b i n d i n g N am e s p ac e = " h t t p : / / w w w . n rf - ar t s . or g / U n if i e d PO S / PO S Pr i n t e r / " / >
< / s e r vi c e>
Copyright (C) Fujitsu Isotec Limited. 2014
21 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.7.4
セッションタイムアウ トの 確認 間隔 の変更
以 下 の 部 位 を 変 更 しま す 。
< ap pS e t t i ng s >
…
<ad d k e y= " PO S Pr i n t e r S e r vi c e _ Pr ovi d e r S e s s i on T i m e ou t C h e c k Pe r i od " val u e = " 1 " / >
…
< / ap pS e t t in g s >
add key の値
PO S Pri n t e rS e r vi c e_ Pr ovi d e rS e s s i on
Ti m e out C h e c k Per i od
2.7.5
Key
value
説明
セッションのタイ ムア ウトを 定期的 に確認す る間隔
(秒)を指定します。
通信 ポートの 最大 同時 接続 数の 変更
以 下 の 部 位 を 変 更 しま す 。
< s yst e m. n e t >
<c on n e c t i on M an ag em e n t >
< ad d ad dr e s s = " * " m ax c on n e c t i on = " 4 8 " / >
</ c on n e c t i on M an ag em e n t >
< /s ys t e m. n e t >
Key
m ax c on ne c t i on
2.7.6
説明
サービスプロバイダとサービスコンシューマ間の通信で同時
に使用する最大ポート数を指定します。
スレッド毎にポートを開くため、スレッドの数を考慮した値を
指定してください。例えば、参照実装のサンプルでは、main
スレッド、Polling 処理スレッド、KeepAlive 処理スレッドの3つ
が必要になります。
使用 する.NET Framework バージョンの変 更
以 下 の 部 位 を 変 更 しま す 。
< st ar t u p >
<s u p p or t e d R u n t i m e ve r s i on =" v2 .0 . 5 0 7 2 7 "/ >
< /s t ar t u p >
Key
s u pp or t e dR u n ti m e ve r s i on
Copyright (C) Fujitsu Isotec Limited. 2014
説明
使用する Microsoft .NET Framework のバージョンを指定しま
す。
・Microsoft .NET Framework 4.0 : "v4.0"
・Microsoft .NET Framework 3.5 : "v2.0.50727"
・Microsoft .NET Framework 3.0 :
〃
22 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.8
サービスコンシューマの各種設定
ここでは、サービスコンシューマの設定可能な項目について説明します。
2.8.1
endpoint の変更
以 下 の 部 位 を 変 更 しま す 。
<c l i e n t >
<e n d p oi n t ad d r e s s = "h t t p: / / l oc al h os t: 8 0 8 7 / PO S Pr i n t er . s vc / PO S Pri n t e rS i m ul at or "
b i n d i ng = " b as i c Ht t p B i nd i n g "
c ont r ac t = " U ni fi e d PO S . POS Pr i n t er .V 1 _ 2. PO S Pr in t e r "
n am e = " POS Pr i n t er Por t " / >
</ c l i e n t>
Key
endpoint address
説明
接続するサービスプロバイダの URL と endpoint 名を下記形
式で指定します。
http://[使用するプロバイダの IP アドレス:ポート番号]/
POSPrinter.svc/[endpoint 名]
例)
http://192.168.1.120:8087/POSPrinter.svc/POSPrinterFP1100
name
この接続の名称を指定します。
※ 同 じデ バ イ ス( 例 えば PO S Pr i nt e r ) を 複 数 使 用 す る 場 合 は 、 < e n d p oi nt > の 定 義 を コピ ー し て複 数 の デ
バ イ ス定 義 を 記 載 しま す 。
例)
<c l i e n t >
< e n d p oi n t ad dr e s s = " h t t p : / / 1 9 2 . 1 6 8. 1 . 1 2 0 : 8 0 8 7 / PO S Pr i n t e r. s vc / PO S Pr i n t e r 1 "
b i n d i n g = " b as i c H t t p B i n di n g "
c on t r ac t = " U n i f i e d PO S . PO S Pr i n t er . V 1_ 2 . PO S Pr i n t e r "
n am e = " PO S Pr i n t e r Por t 1 " / >
< e n d p oi n t ad d r e ss = " h t t p : / / 1 9 2 . 1 6 8 . 1 . 1 2 0: 8 0 8 7 / PO S Pr i n t e r . s vc /PO S Pr i n t e r 2 "
b i n d i n g = " b as i c H t t p B i n di n g "
c on t r ac t = " U n i f i e d PO S . PO S Pr i n t er . V 1_ 2 . PO S Pr i n t e r "
n am e = " PO S Pr i n t e r Por t 2 " / >
</ c l i e n t>
Copyright (C) Fujitsu Isotec Limited. 2014
23 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
2.8.2
サービ スコ ンシュ ーマ URL の変更
サ ー ビ スコン シ ュ ー マが サ ー ビ スプ ロ バ イ ダ か ら イ ベ ン ト を 受 信 す る た め、 サ ー ビ スプ ロ バ イ ダ へ サ ー ビ ス
コン シ ュ ー マの U RL を 下 記 設 定 によ り 通 知 しま す 。 ( O p en メ ソッ ド で通 知 され ま す)
以 下 の 部 位 を 変 更 しま す 。
< h os t >
< b as e Ad d r e ss e s >
<ad d b as e A d d r e s s = " h tt p : / /l oc al h os t : 80 0 1 / PO S Pr i nt e r E ve nt " / >
< / b as eA d d r es s e s >
< / h os t >
Key
add baseAddress
説明
サービスコンシューマの URL を下記形式で指定します。
http://[コンシューマの IP アドレス:ポート番号]/POSPrinterEvent.svc
例)
http://192.168.1.101:8001/POSPrinterEvent.svc
Copyright (C) Fujitsu Isotec Limited. 2014
24 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.
3.1
WS-POS アプリケーションの作成
開発環境
V is u al St u d i o 2 0 1 0 ま た は 、V i s u al S t u di o 2 0 12 を 用 いて開 発 を 行 いま す。
ここでは 、 V i s u al S t ud i o 2 01 2 を 例 に説 明 しま す 。
3.2
開発言語
W S- PO S サ ー ビ スを W i nd ow s サ ー ビ スで提 供 す る 場 合 を 説 明 しま す 。
下 記 の 開 発 言 語 が 使 用 可 能 です 。
・M i c r os of t V i su al B as ic . N E T
・M i c r os of t V i su al C #
3.3
3.3.1
作成手順
新規 プロジ ェクトの 作成
手順
1
Vis u al B as ic . NE T
Vis u al C#
Vis u al B as ic の W ind o ws アプ リ ケ ー シ ョ ン C# の W ind o ws ア プ リ ケ ー シ ョ ン で作 成 しま す 。
で作 成 しま す 。
※ 既 存 の プ ロ ジ ェク ト でも 作 成 可 能 です 。
※ コン ソ ー ル ア プ リ ケ ー ショ ン や W in d o ws フ ォー ムア プ リ ケ ー シ ョ ン でも 作 成 可 能 です 。
3.3.2
手順
1
2
3
4
3.3.3
手順
1
2
3
WSPOSContract の追加
Vis u al B as ic . NE T
Vis u al C#
参 照 実 装 に含 ま れ ている 、
”W S P OS Con t rac t . d ll を、 プ ロ ジ ェ ク トフ ォ ル ダ にコピ ー しま す 。
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ か らプ ロ ジ ェ ク ト を 右 クリ ッ ク し、 [参 照 の 追 加 ] をク リッ ク しま す 。
[ 参 照 ]タブ を 選 択 し、
”W S P OS Con t rac t . d ll”を 選 択 後 、 [O K] を ク リッ ク しま す。
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ に
”W S P OS Con t rac t . d ll”が 追 加 され ている ことを 確 認 してく だ さい。
System.ServiceModel の追加
Vis u al B as ic . NE T
Vis u al C#
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ か らプ ロ ジ ェ ク ト を 右 クリ ッ ク し、 [参 照 の 追 加 ] をク リッ ク しま す 。
[. NE T] タブ を 選 択 し、
”S ys t em .S er vic eMod e l ” を 選 択 後、 [ OK ] をク リ ック しま す 。
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ に
”S ys t em .S er vic eMod e l ” が 追 加 され ている こ とを 確 認 し てく だ さい。
Copyright (C) Fujitsu Isotec Limited. 2014
25 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.4
アプリケーション構 成ファ イル の追 加
手順
1
Vis u al B as ic . NE T
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ の 「 す べ ての フ
ァイ ル を 表 示 」 を ク リッ ク しま す。
2
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ に
”Ap p .c on fig ” が 追 加 され ている ことを 確 認 し
てく だ さい。
Vis u al C#
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ か らプ ロ ジ ェ ク ト を
選 択 し、 メ ニュ ー バ ー の [ プ ロ ジ ェク ト ] -[ 新 しい項
目 の 追 加 ] を 選 択 しま す 。
[ Visu al C# ア イ テ ム] -[ 全 般 ]か ら 、 [ア プ リ ケ ー シ
ョ ン 構 成フ ァイ ル ]を 選 択 し、 [ 追 加 ] をク リッ ク しま
す。
※ ”Ap p .c on fig ” が 追 加 され ていな い場 合
は 、 4 以 降 を 実 施 してく だ さい。
3
”Ap p .c on fig ” を 右ク リ ック し、 [ プ ロ ジ ェク ト に
含 める ]を ク リッ ク しま す 。
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ に
”Ap p .c on fig ” が 追 加 され ている ことを 確 認 し て
くだ さい。
※ 4 以 降 の 実 施 は 不 要 です 。
4
5
6
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ か らプ ロ ジ ェ ク ト
を 選 択 し、 メ ニュ ー バ ー の [ プ ロ ジ ェク ト ] -[ 新 し
い項 目 の 追 加 ]を 選 択 しま す 。
[ 共 通 項 目 ]- [全 般 ] か ら、 [ ア プリ ケ ー シ ョ ン 構
成 フ ァイ ル ]を 選 択 し、 [ 追 加 ] をク リ ック しま
す。
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ に
”Ap p .c on fig ” が 追 加 され ている ことを 確 認 し
てく だ さい。
Copyright (C) Fujitsu Isotec Limited. 2014
26 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.5
アプリケーション構 成ファ イル の編 集
ア プ リ ケ ー ショ ン 構 成 フ ァイ ル に下 記 の 太 字 部 分 を 記 述 しま す 。
(Vis u al B as ic . NE T, Vis u al C# 共 通 です )
<? xm l vers i on =" 1 .0 " ? >
<c on fig u rat ion >
<sy ste m . se r vi ceM o de l >
<c l ie n t>
<e n d p o i n t a d d re ss ="h ttp : / /1 92 . 16 8. 1. 21 0: 80 87 / POS Pr i n te r. svc / POS Pr i n te r 1 "
b i n d i n g ="b a si c Http Bi n d i n g "
c o n tr ac t="Un i fi e d P OS . POS Pr i n te r. V 1_ 2. P OS Pr i n te r "
n am e =" POS Pr i n te r Po r t1 "/ >
</c li e n t>
<se r vic e s>
</ sy stem . se r vi ceM o d e l >
<sy ste m . n e t>
<c o n n e c ti o nM a n a gem e n t>
<a d d a d d re ss = "* " m a xc o n n ec ti o n = "48 " / >
</c o n n ec ti o nM a n a gem e n t>
</ sy stem . n e t>
</ c on fig u rat ion >
Key
endpoint address
binding
contract
name
m ax c on ne c t i on
Copyright (C) Fujitsu Isotec Limited. 2014
説明
使用するサービスプロバイダの URL を指定します。
サービスプロバイダで設定している binding
“basicHttpBinding”を指定します。
使用するデバイスカテゴリーのコントラクトを指定します。
この接続情報を識別するための名称を指定します。
サービスプロバイダと接続する際に、接続情報を取得するた
めに使用します。
サービスプロバイダとサービスコンシューマ間の通信で同時
に使用する最大ポート数を指定します。
スレッド毎にポートを開くため、スレッドの数を考慮した値を
指定してください。例えば、参照実装のサンプルでは、main
スレッド、Polling 処理スレッド、KeepAlive 処理スレッドの3つ
が必要になります。
27 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.6
アプリケーションソースの 編集
ア プ リ ケ ー ショ ン の ソ ー スに、 サ ー ビ スプ ロ バ イ ダ との 接 続 処 理 を 記 述 しま す 。
サ ー ビ スプ ロ バ イ ダ との セ ッ ショ ン 開 始 ~ 終 了 の 間 に、 メ ソ ッ ド ・プ ロ パ テ ィの 処 理 を 記 述 しま す 。
<Vi su a l Ba si c . NET >
◆ 記 述 フ ァイ ル
[ ア プリ ケ ー シ ョ ン で指 定 した フ ァイ ル 名 ]. vb
◆ Con s um erI D を 生 成
Con s um erI D は 、 デ バ イ スを 識 別 す る た めに使 用 しま す 。
D i m co n su m e r I D A s S t r in g = G uid . N e wG ui d( ) .To St r i ng ( )
※ 上記 例 は 、 GU ID を 生 成 して ID と し て使 用 し てい ま す 。
◆ メ ッセ ー ジ 送 信 用 チャ ネ ル 生 成
D i m d e vi c e A s U ni f i ed P OS .P OS P r i nt e r. V 1 _ 2 . P OS P ri nt e r
' ア プ リ ケ ー シ ョ ン構 成 フ ァ イ ル で 設定 し た e n d p o i n t の c o n t r a c t と n a m e を 指 定 す る
D i m f a c t o r y A s N e w C h a nn e lF a c t o r y
( Of Un if i e dP OS . P OS P r in t e r. V 1 _ 2 . P OS P r in t e r ) ( " P OS P ri n t e r P o rt 1 " )
' チャネルを生成
d e vi c e = f a c t o r y. C r e a t e C h an n e l( )
◆ セッ シ ョ ン の 開 始
サー ビ スプ ロ バ イ ダ との セ ッ シ ョ ン を 開 始 しま す 。
de v i c e . Op en S e s s io n ( co n su m e r I D , N o th in g)
※ Op en S e s s i on 後 、 各 メ ソッ ド の 呼 び出 し が 可 能に なり ま す 。
◆ メ ソッ ド ・ プ ロ パ テ ィの 使 用
prin t Norm al メ ソッ ド を 使 用 す る 場 合 、 下 記 の よ う に記 述 しま す 。
d e vi c e . Op e n D e v i c e ( co n su m e r I D )
d e vi c e . C l ai m ( c on s u m e r I D, 1 0 0 0 0 )
d e vi c e . S e t D e v i c e En a bl e d ( co n s u m e rI D , t r u e )
d e vi c e . P ri n t No r m a l ( c on s u m e r I D,
U ni fi e d P OS .P OS P r i nt e r. V 1 _ 2 .P r in t e r S t a t io n. R e c e i pt , " 印 刷 す る テ キ ス ト" )
‘ エ ス ケ ー プ シ ー ケ ン スを 使 用 し B ol d 印 刷
d e vi c e . P ri n t No r m a l ( c on s u m e r I D,
U ni fi e d P OS .P OS P r i nt e r. V 1 _ 2 .P r in t e r S t a t io n. R e c e i pt , " \u 0 0 1 b |b C 太 字 印 刷" )
d e vi c e . S e t D e v i c e En a bl e d ( co n s u m e rI D , F a l s e )
d e vi c e . R e l e a s e ( c on s u m e r I D )
d e vi c e . C lo s e D e v i c e ( c o n su m e r I D )
◆ セッ シ ョ ン の 終 了
サー ビ スプ ロ バ イ ダ との セ ッ シ ョ ン を 終 了 しま す 。
de v i c e . Cl o s e S e s s io n( c o n su m e r I D )
Copyright (C) Fujitsu Isotec Limited. 2014
28 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
<Vi su a l C# >
◆ 記 述 フ ァイ ル :
[ ア プリ ケ ー シ ョ ン で指 定 した フ ァイ ル 名 ]. c s
◆ Con s um erI D を 生 成
Con s um erI D は 、 デ バ イ スを 識 別 す る た めに使 用 しま す 。
p ri v a t e s t r in g c on s u m e r I D = G ui d. N e wG ui d( ) .To S t ri ng ( ) ;
※ 上記 例 は 、 GU ID を 生 成 して ID と し て使 用 し てい ま す 。
◆ メ ッセ ー ジ 送 信 用 チャ ネ ル 生 成
p ri v a t e Un i fi e d P OS. P OS P r in t e r.V 1 _ 2 . P OS P r in t e r d e v i c e = nu ll ;
// ア プ リ ケ ー シ ョ ン 構 成 フ ァ イ ルで 設 定 し た e n d p o i n t の c o n t r a c t と n a m e を 指 定
C h a n n e l F a c t o r y < U n i f i e d P OS . P O S P r i n te r . V 1 _ 2 . P OS P r i n t e r > f a c t o r y =
n e w C h a n n e l F a c to r y < U n i f ie d P O S . P O S Pr i n t e r . V 1 _2 . P O S P r i n te r > ( " P O S Pr i nt e r P o r t 1 " ) ;
// チ ャ ネ ル を 生 成
d e v i c e = f a c t o ry . C r e a t e C ha n n e l ( ) ;
◆ セッ シ ョ ン の 開 始
サー ビ スプ ロ バ イ ダ との セ ッ シ ョ ン を 開 始 しま す 。
de v i c e . Op en S e s s io n ( co n su m e r I D , nu ll ) ;
※ Op en S e s s i on 後 、 各 メ ソッ ド の 呼 び出 し が 可 能に なり ま す 。
◆ メ ソッ ド ・ プ ロ パ テ ィの 使 用
prin t Norm al メ ソッ ド を 使 用 す る 場 合 、 下 記 の よ う に記 述 しま す 。
d e vi c e . Op e n D e v i c e ( co n su m e r I D ) ;
d e vi c e . C l ai m ( c on s u m e r I D, 1 0 0 0 0 ) ;
d e vi c e . S e t D e v i c e En a bl e d ( co n s u m e rI D , t r u e ) ;
d e vi c e . P ri n t No r m a l ( c on s u m e r I D,
U ni fi e d P OS .P OS P r i nt e r. V 1 _ 2 .P r in t e r S t a t io n. R e c e i pt , " 印 刷 す る テ キ ス ト" ) ;
/ / エ ス ケ ー プ シ ー ケ ン ス を 使用 し B ol d 印 刷
d e vi c e . P ri n t No r m a l ( c on s u m e r I D,
U ni fi e d P OS .P OS P r i nt e r. V 1 _ 2 .P r in t e r S t a t io n. R e c e i pt , " \u 0 0 1 b |b C 太 字 印 刷" ) ;
d e vi c e . S e t D e v i c e En a bl e d ( co n s u m e rI D , f a l s e ) ;
d e vi c e . R e l e a s e ( c on s u m e r I D ) ;
d e vi c e . C lo s e D e v i c e ( c o n su m e r I D ) ;
◆ セッ シ ョ ン の 終 了
サー ビ スプ ロ バ イ ダ との セ ッ シ ョ ン を 終 了 しま す 。
d e v i c e . Cl o s e S e s s io n( c o n su m e r I D ) ;
Copyright (C) Fujitsu Isotec Limited. 2014
29 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.7
例外処 理
Cat c h した 例 外 から Up os E xc ep t ion 型 の 詳 細 情 報 を 取 得 す る ことで、 エ ラ ー の 原 因 を 判 断 でき ま す。
<Vi su a l Ba si c . NET >
try
' デバイスオープン
d e v i c e . O p e n D e v ic e ( c o n s u m er I D )
C a t c h e x A s F a ul t E x c e p t i on ( O f U n i f ie d P O S . P O S Pr i n t e r . V 1 _2 . U p o s E x c ep t io n )
' C a t c h し た 例 外か ら U p o s Ex c e p t i on 型 の 詳 細 情 報 を 取得
D i m u e A s U ni f i ed P OS . P OS P ri n t e r. V 1 _ 2 . Up o s E x c e pt io n = e x. D e t a i l
' E r r o r Co d e を 取 得
D i m c od e A s Un i fi e d P OS. P OS P r in t e r.V 1 _ 2 . E r r o r C od e = u e. E r r o r C od e
' E r r o r Co d e E x t en d e d を 取 得
D i m e r r o r C od e E x A s I n t eg e r = u e. E r r o r C od e E x t e nd e d
End Try
<Vi su a l C# >
try {
// デ バ イ ス オ ー プ ン
d e v i c e . O p e n D e v ic e ( c o n s u m er I D ) ;
} c a t ch ( F au lt E x c e p t ion < U ni f i ed P OS . P OS P ri n t e r. V 1 _ 2 . Up o s E x c e p tio n > e x ) {
// C a t c h し た 例 外 から U p o s E x ce p t i o n 型の 詳 細 情 報 を 取 得
U ni fi e d P OS .P OS P r i nt e r. V 1 _ 2 . Up o s E x c ep t io n u e = e x. D e t a i l ;
// E r r o r C od e を 取 得
U ni fi e d P OS .P OS P r i nt e r. V 1 _ 2 .E r r o r C od e c od e = u e . E r r o r Co d e ;
// E r r o r C od e E x t e nd e d を 取 得
in t e r r o r C od e E x = u e. E r r o r C od e E x t e nd e d ;
}
Copyright (C) Fujitsu Isotec Limited. 2014
30 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.8
イベント処理-SelfHost 方式
サ ー ビ ス コ ン シ ュ ー マ ( ア プ リ ケ ー シ ョ ン ) に 用 意 した イ ベン ト 受 信 サ ー ビ スク ラ ス に、 サ ー ビ スプ ロ バ イ ダ
か ら イ ベン ト を 通 知 しても ら う 方 式 です 。
<Vi su a l Ba si c . NET >
手順
イベント処理-SelfHost 方式 Visual Basic.NET
1
Visual Studio でイベント取得用サ ソ リ ュ ー シ ョ ン エ ク ス プ ロ ー ラ か ら プ ロ ジ ェ ク ト を 右 ク リ ッ ク し 、 [追
ービスクラスを作成
加 ] -[ 新 しい項 目 ]を クリ ッ ク しま す。
2
VB のクラスを追加
フ ァ イ ル 名 ”P OS P rint erE ven t S erv ic e. vb ”で ク ラ ス を 追 加 し ま
す。
3
追加したファイル”POSPrinterEventService.vb”を編集します。以下を参考にしてください。
◆POSPrinterEventService.vb
N a m e sp a c e W S PO S E ve n tS e r vi c e
< S e r vi c e B e h a vi o r ( N a m e s p a c e: =" h t tp : // w w w.n rf - a rt s . o rg / U n if i e d P O S/ PO S P r in t er E ve n t s/ " ,
In st a n c e C on t e xt Mo d e : = In st a n c e C on t e xt Mo d e . S in g l e ) > _
p u b l i c cl a s s P OS P r in t e rE ve n t S e r vi c e
' イベ ン ト を 取得 し た い カテ ゴ リ の イベ ン ト ク ラス を 継 承す る
Imp l e m en t s Un if i e d PO S .P O SP r i n t e r E ve n t s . V1 _ 2 . P OS P r in t e r E ve n t
' Er r o r E ve n t 発生 時に 呼 ば れる メ ソ ッ ド
Pu b l i c Fu n c t i on E r r o r E ve n t (
C on su m e r ID As St r in g , S o u r c e As S t r in g , E ve n t ID As In t eg er, Ti m e S t a mp As D a t e,
E rr o r C o d e As U n if i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . E rr o r C o d e,
E rr o r C o d e E xt en d ed As In t eg e r,
E rr o r L o c u s As Un i f i ed PO S .P O S Pr i n t e r E ve n t s . V1 _ 2 . E r r o r L o cu s,
E rr o r R e s p on s e As Un i f i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . E r r o r R e s p on s e ) _
As Un i f i ed P O S. PO S P r in t er E ve n t s. V1 _ 2 . E r r o r R e s p on s e Im p l e m en ts
Un i f i ed P OS . PO S P r in t e r E ve n t s. V1 _ 2 . P O S P r in t e r E ve n t. E r r or E ve n t
R e tu rn U n if i e d PO S. P OS P r in t e r E ve n t s. V1 _ 2 . E r r o r R e sp on s e . Cl e a r
En d Fu n c t i on
' Ou tp u t C o mp l a t e E ve n t 発 生 時に 呼 ばれ る メ ソ ッド
Pu b l i c Su b Ou t p u t C o mp l et e E ve n t (
C on su m e r ID As St r in g , S o u r c e As S t r in g , E ve n t ID As In t eg er,
Ti m e S t a mp As D a t e , Ou tp u t ID As In t eg e r ) _
Imp l e m en t s
Un i f i ed P OS . PO S P r in t e r E ve n t s. V1 _ 2 . P O S P r in t e r E ve n t. Ou tp u t C o mp l e t e E ve n t
En d S u b
' St a tu s Up d a t e E ve n t 発 生 時に 呼 ば れる メ ソ ッド
Pu b l i c Su b S t atu s Up d at e E ve n t (
C on su m e r ID As St r in g , S o u r c e As S t r in g , E ve n t ID As In t eg er, Ti m e S t a mp As D a t e,
St a tu s As In t e g e r) _
Imp l e m en t s Un if i e d PO S .P O SP r i n t e r E ve n t s . V1 _ 2 . P OS P r in t e r E ve n t . St a tu s Up d a t e E ve n t
En d S u b
' D i r e ct IO E ve n t 発生 時 に 呼 ば れる メ ソ ッ ド
Pu b l i c Fu n c t i on D i r e ct IO E ve n t(
C on su m e r ID As St r in g , S o u r c e As S t r in g , E ve n t ID As In t eg er, Ti m e S t a mp As D a t e,
E ve n t N u m b e r As In t eg e r, D a t a As In t eg e r, Ob j As Ob j e ct ) _
As Un i f i ed P O S. PO S P r in t er E ve n t s. V1 _ 2 . D i r e c t IO D a t a Imp l e m e n t s
Un if i e d PO S. P OS P r in t e r E ve n t s . V1 _ 2 . P OS P r in t e r E ve n t . D i r e ct IO E ve n t
R e tu rn N e w U n if i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . D i r e c t IO D at a ( )
En d Fu n c t i on
En d Cl a s s
En d N a m e sp a c e
Copyright (C) Fujitsu Isotec Limited. 2014
31 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
4
イベント処理-SelfHost 方式 Visual Basic.NET
ア プ リ ケ ー ショ ン 構 成 フ ァイ ル (A pp . c on fig )を 編 集 しま す 。
◆ Ap p . c o n fi g
< c on f i g u r at i o n >
< sy s t e m. s e r vi c e Mo d el >
< s e r vi c e s >
<! - - サ ービ ス 名を 指 定( サ ー ビス 名 は [サ ービ ス ク ラ スの n am e s p ac e ] +[ ク ラ ス 名 ]) -- >
< s e r vi c e n a m e =" W S PO S E ve n tS e r vi c e . P O S Pr i n t e r E ve n tS e r vi c e
b eh a v i o r C o n f i g u r at i o n =" W S PO S C l i en t . PO S P r in t e r E ve n t S e r vi c e B e h a vi o r " >
<h o st >
<b a s e Ad d r e s s e s >
<! — b a s e Ad d r e ss に イ ベン ト 取得 用 U R L を 指 定 - - >
< ad d b a s e Ad d r e s s = " h t tp :/ / 1 9 2. 1 6 8 . 1 . 1 0 1 : 8 0 0 1 / PO S P r in t e rE ve n t" / >
</b a s e Ad d r e s s e s >
</h o s t >
<! —イ ベント 取 得 用 サ ービス の e n d p o in t 情報 を 指定 -- >
< en d p o i n t ad d r e s s =" "
b in d in g =" b a s i c H tt p B i n d in g "
c on t r a ct =" Un i f i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . PO S P r in t e r E ve n t"
b in d in g N a m e sp a c e =h t tp : // w w w.n rf - a r ts . o rg / U n if i e d PO S/ P OS P r in t e r E ve n t s /
/>
</ s e r vi c e >
</ s e r vi c e s >
</ s y st e m .s e r vi c e Mo d e l >
</ c on f ig u r a t i on >
5
ア プ リ ケ ー ショ ン ソ ー スにイ ベン ト 取 得 用 の サ ー ビ スホ スト を 生 成 す る 処 理 を 記 述 しま す 。
D i m p o sP r i n t e r E ve n t S e r vi c e H o s t As S e r vi c e H o s t
' イ ベン ト 取 得 用の サ ー ビ スの 開 始
p o s P r in t er E ve n t S e r vi c e H o s t =
N e w S e r vi c e H o s t (G e t Typ e ( WS P OS E ve n t S e r vi c e . PO S P r in t e r E ve n t S e r vi c e ) )
‘ O p en S e ss i o n の 引 数 で En d p o i n t を渡 す
d e vi c e . Op e n S e s s i o n ( c o n s u m e r ID , " h ttp :/ / 1 9 2 . 1 6 8 . 1. 1 0 1 : 8 0 0 1 / P O SP r in t e r E ve n t" )
' メ ソッ ド の 呼 び出 し な ど の処 理
' イベ ン ト取 得 用 サ ービ ス 終 了
p o s P r in t er E ve n t S e r vi c e H o s t . Cl o s e ( )
Copyright (C) Fujitsu Isotec Limited. 2014
32 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
<Vi su a l C# >
手順
イベント処理-SelfHost 方式 Visual C#
1
Visual Studio でイベント取得用サ
ソリ ュ ー シ ョ ン エク スプ ロ ー ラ か らプ ロ ジ ェ ク ト を 右 クリ ッ ク し、 [追
ービスクラスを作成
加 ] -[ 新 しい項 目 ]を クリ ッ ク しま す。
2
C#のクラスを追加
フ ァイ ル 名 ”PO S P rin t erE v en t S ervic e. c s ” でク ラ スを 追 加 しま
す。
3
追加したファイル”POSPrinterEventService.cs”を編集します。以下を参考にしてください。
◆POSPrinterEventService.cs
n a m e sp a c e W S PO S E ve n tS e r vi c e {
[S e r vi c e B e h a vi o r ( N a m e sp a c e = " h ttp :/ / w w w.n r f - ar t s. o rg / Un i f i ed PO S /
PO S P r in t e r E ve n t s/" , In s t an c e C o n t e xt Mo d e = In st a n c e C on t e xt Mo d e . S in g l e ) ]
// イ ベ ン トを 取 得 し たい カ テ ゴ リの イ ベ ン トク ラ ス を継 承 す る
p u b l i c cl a s s P OS P r in t e rE ve n t S e r vi c e : Un i f i ed PO S .P O S Pr i n t e r. V1 _ 2 . PO S P r in t er E ve n t
{
// Er r o r E ve n t 発生 時に 呼 ば れる メ ソ ッ ド
p u b l i c vi r tu a l Un i f i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . E rr o r R e s p on s e E r r o r E ve n t (
st r in g C on su m e r ID , st r in g S ou rc e , in t E ve n t ID , D a t e Ti m e Ti m e S t a m p ,
Un if i e d PO S. P OS P r in t e r E ve n t s . V1 _ 2 . E r r o r C od e Er r o r C o d e,
in t E r r o r C od e E xt e n d ed ,
Un i f i ed P OS . PO S P r in t e r E ve n t s. V1 _ 2 . E r r o r L o cu s Er r o r L o cu s ,
Un i f i ed P OS . PO S P r in t e r E ve n t s. V1 _ 2 . E r r o r R e sp o n s e E r r o r R e sp on s e )
{
r et u r n Un i f i ed P OS . PO S P r in t e r E ve n t s. V1 _ 2 . E r r o r R e sp o n s e. Cl e a r ;
}
// Ou tp u t C o m p et e E ve n t 発生 時 に 呼 ば れる メ ソ ッ ド
p u b l i c vi r tu a l vo i d O u tp u t C o mp l e t e E ve n t (
st r in g C on su m e r ID , st r in g S ou rc e , i n t E ve n t ID , D a t e Ti m e Ti m e S t a mp , in t O u t p u t ID )
{
}
// S t at u s U p d at e E ve n t 発 生時 に 呼ば れ る メ ソッ ド
p u b l i c vi r tu a l vo i d St a tu s Up d a t e E ve n t (
st r in g C on su m e r ID , st r in g S ou rc e , in t E ve n t ID , D a t e Ti m e Ti m e S t a m p , i n t St a tu s )
{
}
// D i r e c t IO E ve n t 発 生 時に 呼 ばれ る メ ソ ッド
p u b l i c vi r tu a l Un i f i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . D i r e c t IO D a t a D i r e ct IO E ve n t(
st r in g C on su m e r ID , st r in g S ou rc e , in t E ve n t ID , D a t e Ti m e Ti m e S t a m p , i n t
E ve n t Nu mb e r, in t D a t a, ob j e c t Ob j )
{
r et u r n n e w Un i f i ed P OS . PO S P r in t e r E ve n t s. V1 _ 2 . D i r e c t IO D a t a ( )
{ D a t a = D a t a, O b j = Ob j };
}
}
}
Copyright (C) Fujitsu Isotec Limited. 2014
33 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
4
イベント処理-SelfHost 方式 Visual C#
ア プ リ ケ ー ショ ン 構 成 フ ァイ ル (A pp . c on fig )を 編 集 しま す 。
◆ Ap p . c o n fi g
< c on f i g u r at i o n >
< sy s t e m. s e r vi c e Mo d el >
< s e r vi c e s >
<! - - サ ービ ス 名を 指 定( サ ー ビス 名 は [サ ービ ス ク ラ スの n am e s p ac e ] +[ ク ラ ス 名 ]) -- >
< s e r vi c e n a m e =" W S PO S E ve n tS e r vi c e . P O S Pr i n t e r E ve n tS e r vi c e
b eh a v i o r C o n f i g u r at i o n =" W S PO S C l i en t . PO S P r in t e r E ve n t S e r vi c e B e h a vi o r " >
<h o st >
<b a s e Ad d r e s s e s >
<! — b a s e Ad d r e ss に イ ベン ト 取得 用 U R L を 指 定 - - >
< ad d b a s e Ad d r e s s = " h t tp :/ / 1 9 2. 1 6 8 . 1 . 1 0 1 : 8 0 0 1 / PO S P r in t e rE ve n t" / >
</b a s e Ad d r e s s e s >
</h o s t >
<! —イ ベント 取 得 用 サ ービス の e n d p o in t 情報 を 指定 -- >
< en d p o i n t ad d r e s s =" "
b in d in g =" b a s i c H tt p B i n d in g "
c on t r a ct =" Un i f i e d P O S. PO S P r in t e rE ve n t s. V1 _ 2 . PO S P r in t e r E ve n t"
b in d in g N a m e sp a c e =h t tp : // w w w.n rf - a r ts . o rg / U n if i e d PO S/ P OS P r in t e r E ve n t s /
/>
</ s e r vi c e >
</ s e r vi c e s >
</ s y st e m .s e r vi c e Mo d e l >
</ c on f ig u r a t i on >
5
ア プ リ ケ ー ショ ン ソ ー スにイ ベン ト 取 得 用 の サ ー ビ スホ スト を 生 成 す る 処 理 を 記 述 しま す 。
p r i va t e S e r vi c e H o s t p o s P r in t e r E ve n t S e r vi c e H o s t ;
p o s P r in t er E ve n t S e r vi c e H o s t =
n e w S e r vi c e H o s t (t yp e o f (W S P OS E ve n t S e r vi c e . PO S P r in t e r E ve n t S e r vi c e ) ) ;
// イ ベ ン ト取 得 用 の サー ビ ス の 開始
p o s P r in t er E ve n t S e r vi c e H o s t .Op e n ( ) ;
// O p e nS e s s i on の 引 数で E n dp o i n t を 渡 す
d e vi c e . Op e n S e s s i o n ( c o n s u m e r ID , " h ttp :/ / 1 9 2 . 1 6 8 . 1. 1 0 1 : 8 0 0 1 / P O SP r in t e r E ve n t" );
// メ ソ ッ ドの 呼 び 出 しな ど の 処 理
// イ ベン ト 取 得 用サ ー ビ ス終 了
p o s P r in t er E ve n t S e r vi c e H o s t . Cl o s e ( );
Copyright (C) Fujitsu Isotec Limited. 2014
34 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.9
イベント処理-LongPolling 方式
サ ー ビ スコ ン シ ュ ー マ( ア プ リ ケ ー シ ョ ン ) か ら サ ー ビ スプ ロ バ イ ダ に、 イ ベ ン ト 取 得 リ ク エ スト を 送 信 し、 そ
の レ スポ ン スとしてイ ベン ト を 通 知 しても ら う 方 式 です。
<Vi su a l Ba si c . NET >
手順
イベント処理-LongPolling 方式 Visual Basic.NET
1
LongPolling用のスレッドを動作させ、サービスプロバイダにイベント取得リクエストを送る処理を追加します。
D i m l on g P ol l i n g Th r e a d As Th r e ad i n g . Th r e ad
' セ ッ シ ョン オ ー プ ン
d e vi c e . Op e n S e s s i o n ( c o n s u m e r ID , N o th in g )
' L o n gP o l l in g 用 ス レッ ド 作 成 ・開 始
l on g P o l l in g Th r e ad = N e w Th r e ad i n g . Th r e ad ( Ad d r e s sO f PO S P r in t er E ve n t _ L o n g P ol l in g )
l on g P o l l in g Th r e ad . Is B a c kg r o u n d = Tr u e
l on g P o l l in g Th r e ad .S t a rt ( )
2
POSPrinterEvent_LongPollingメソッドにイベント取得時の処理を記載します。以下を参考にしてください。
P r i va t e Su b P O SP r in t e r E ve n t _ L o n g P ol l i n g ()
Wh il e N ot c on su m e r ID Is N o th i n g
Tr y
D i m d e vi c e E v e n t As U n if i e d PO S. P OS P r in t er. V1 _ 2 . P O S Pr i n t e r E ve n t
' イベ ン ト ポ ーリ ン グ を 実行 ( イ ベ ント 取 得 リ クエ ス ト 発行 )
d e vi c e E ve n t = d e vi c e . P ol l F o r U PO S E ve n t ( c on su m e r ID )
If d e vi c e E ve n t Is N o th i n g Th e n
C on t in u e W h il e
En d If
D i m r e s As N e w U n if i e d PO S. P OS P r in t e r. V1 _ 2 . P O S Pr i n t e r E ve n t R e sp on s e
' 受信 し た イ ベン ト ご と の処 理 を 実 行
If N o t d e vi c e E ve n t . Er r o r E ve n t Is N o th in g Th en
' Er r o r E ve n t 取 得 時の 処 理
D i m e v As U nif i e dPO S . PO S P r i nt er . V 1_2 . E r r o r E ve nt = de v ic e E ve nt . E r r or E ve nt
r es . Er r or E ve nt R e s po ns e = ne w U ni f i e dPO S . P OS P r i nter . V 1_2 . E r r o r E ve nt R es po ns e( )
r es . Er r or E ve nt R e s po ns e . E v e nt ID = e v. E v e nt ID
El s e If N o t d e vi c e E v e n t .Ou tp u t C o mp l e t e E ve n t Is N o th i n g Th e n
' Ou tp u t C o mp l e t e E ve n t 取得 時 の 処 理
r es .O ut pu t C o mp le t e E ve nt R es po ns e = ne w
U ni f ie dP O S . PO S Pr i nt er . V1_ 2 .O ut pu t C o mp le t e E ve nt R es po ns e( )
r es .O ut pu t C o mp le t e E ve nt R es po ns e . E ve nt I D = e v. E v e nt I D
El s e If N o t d e vi c e E v e n t . St a tu s Up d a t e E ve n t Is N o th i n g Th e n
' St a tu s Up d a t e E ve n t 取得 時 の 処 理
D i m e v As U nif i e dPO S . PO S P r i nt er . V 1_2 . S t a t us U pda t e E ve nt =
de v ic e E v e nt . S ta t us U pda t e E ve nt
r es . S ta t us U pda te E v e ntR es po ns e = ne w
U nif i e dPO S . PO S Pr i nt er . V 1_2 . S t a t us U pda t e E ve nt R es po ns e( )
r es . S ta t us U pda te E v e ntR es po ns e . E v e nt I D = e v. E v e nt I D
El s e If N o t d e vi c e E v e n t . D i r e ct IO E ve n t Is N o th in g Th en
' D i r e ct IO E ve n t 取 得 時の 処 理
D i m e v As U nif i e dPO S . PO S P r i nt er . V 1_2 . D i r ec t I O E ve nt = de v ic e E ve nt . D ir ec t I O E ve nt
r es .D ir ec t IO E v e ntR e s po ns e = ne w U ni f ie dPO S . P O SP r i nter . V 1_ 2 .D ir ec t I O E ve nt R es po ns e( )
r es .D ir ec t IO E v e ntR e s po ns e . E v e nt ID = e v. E v e nt ID
En d If
Copyright (C) Fujitsu Isotec Limited. 2014
35 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
2
続き
イベント処理-LongPolling 方式
Visual Basic.NET
' イベ ン ト へ の応 答 (W S - PO S サー ビ ス プロ バ イ ダ へ の 応答 )
Wh il e ( Tr u e )
Tr y
d e vi c e . S e t E ve n t R e sp on s e ( c on su m e r ID , r e s )
' 応答 が 正 常に 完 了 し た ら 、 次の イベ ント 取 得 の ため P ol l F o r U PO S E ve n t に 戻 る
E xi t Wh i l e
C a t ch e x As Ti m e o u t E xc e p t i on
' イベ ン ト へ の応 答 が オ フラ イ ン ま たは タ イ ム アウ ト の 場合 、 イ ベ ント 応 答 を 再試 行
C on t i n u e Wh il e
C a t ch e x As F au l t E xc e p t i on ( Of Un i f i ed PO S .P O S Pr i n t e r. V1 _ 2 . Up o s E xc e p t i o n )
If e x. D e t a i l . E r r o r C od e = U n if i e d P O S. PO S P o w e r. V1 _ 2 . E r r o r C od e . Il l e g al T h en
' IL L E G AL が 帰 っ てき た 場 合 は、 S e t E ve n t R e s p on s e は 既 に受 信 さ れ てい た の で 、
' 再度 P ol l F o r U PO S E ve n t に戻 る
E xi t Wh i l e
El s e
Th r o w
En d If
En d Tr y
En d Wh il e
C a t ch e x As Ti m e o u t E xc e p t i on
' イベ ン ト ポー リ ン グ がオ フ ラ イ ンま た は タ イム ア ウ トの 場 合 、 P ol l F o r UP O S E ve n t を再 試 行
C on t in u e W h il e
En d Tr y
En d Wh il e
En d S u b
Copyright (C) Fujitsu Isotec Limited. 2014
36 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
<Vi su a l C# >
手順
イベント処理-LongPolling 方式 Visual C#
1
LongPolling用のスレッドを動作させ、サービスプロバイダにイベント取得リクエストを送る処理を追加します。
p r i va t e Th r e a d l o n g P ol l in g Th r e ad ;
// セ ッ シ ョン オ ー プ ン
d e vi c e . Op e n S e s s i o n ( c o n s u m e r ID , n u l l ) ;
// L o n g P ol l i n g 用ス レ ッ ド 作成 ・ 開 始
l on g P o l l in g Th r e ad = n e w Th r e ad (n e w Th r e a d S t a rt ( PO S P r in t er E ve n t _ L on g P o l l in g ) ) ;
l on g P o l l in g Th r e ad . Is B a c kg r o u n d = t ru e ;
l on g P o l l in g Th r e ad .S t a rt ( );
2
POSPrinterEvent_LongPollingメソッドにイベント取得時の処理を記載します。以下を参考にしてください。
vo i d PO S Pr i n t e r E ve n t _ L on g P ol l in g ( )
{
wh i l e ( c on su m e r ID ! = n u l l )
{
try
{
Un i f i ed PO S . PO S Pr i n t e r. V1 _ 2 . PO S P r in t er E ve n t d e vi c e E ve n t;
/ / イ ベ ント ポ ー リ ング を 実 行
d e vi c e E ve n t = d e vi c e . P o l l F o r UP O S E ve n t ( c on su m e r ID ) ;
if (d e vi c e E ve n t == n u l l )
{
c o n t i n u e; / / イ ベ ント が な か った 場 合 、 再度 ポ ー リ ング
}
Un i f i ed PO S . PO S Pr i n t e r. V1 _ 2 . PO S P r in t er E ve n t R e sp on s e r e s =
n e w U n if i e d P O S. PO S P r in t er. V1 _ 2 . P O SP r in t e r E ve n t R e sp on s e ( );
/ / 受 信 した イ ベ ン トご と の 処 理を 実 行
if (d e vi c e E ve n t . Er r o r E ve n t ! = n u l l )
{
/ / E r r o rE ve n t 取 得 時 の処 理
Un i f i ed PO S .P O S Pr i n t e r. V1 _ 2 . E r r o r E ve n t e v = d e vi c e E ve n t. E rr o r E ve n t ;
r e s . E rr o r E ve n t R e sp on s e = n e w Un i f i ed P OS . PO S P r in t e r. V1 _ 2 . E r r o r E ve n t R e s p on s e () ;
r e s . E rr o r E ve n t R e sp on s e . E ve n t ID = e v. E ve n t ID ;
}
el s e if ( d e vi c e E ve n t .Ou tp u t C o m p l et e E ve n t ! = n u l l )
{
/ / Ou tp u t C o mp l e t e E ve n t 取 得時 の 処 理
Un i f i ed PO S .P O S Pr i n t e r. V1 _ 2 . O u tp u t C o mp l e t e E ve n t e v =
d e vi c e E ve n t .Ou tp u t C o m p l et e E ve n t ;
r e s .O u tp u t C o mp l e t e E ve n t R e s p on s e = n e w
Un if i e d PO S. P OS P r in t e r. V1 _ 2 . Ou tp u t C o mp l e t e E ve n t R e sp o n s e () ;
r e s .O u tp u t C o mp l e t e E ve n t R e s p on s e. E ve n t ID = e v. E v e n t ID ;
}
el s e if ( d e vi c e E ve n t .S t at u s U p d at e E ve n t ! = n u l l )
{
/ / St a tu s Up d a t e E ve n t 取 得 時の 処 理
Un i f i ed PO S .P O S Pr i n t e r. V1 _ 2 . S t a tu s Up d a t e E ve n t e v =
d e vi c e E ve n t. St a tu s Up d a t e E ve n t;
r e s . St a tu s Up d a t e E ve n t R e s p on s e = n e w
Un i f i ed P OS . PO S P r in t e r. V1 _ 2 . S t atu s Up d at e E ve n t R e sp on s e ( );
r e s . St a tu s Up d a t e E ve n t R e s p on s e. E ve n t ID = e v. E ve n t ID ;
}
el s e if ( d e vi c e E ve n t . D i r e ct IO E ve n t ! = n u l l )
{
/ / D i r e c t IOE ve n t 取 得 時 の処 理
Un i f i ed PO S .P O S Pr i n t e r. V1 _ 2 . D i r e c t IO E ve n t e v = d e vi c e E ve n t. D i r e ct IO E ve n t;
r e s . D i r e ct IO E ve n t R e sp on s e = n e w
Un i f i ed P OS . PO S P r in t e r. V1 _ 2 . D i r e c t IO E ve n t R e sp o n s e( ) ;
r e s . D i r e ct IO E ve n t R e sp on s e . E ve n t ID = e v. E ve n t ID ;
}
Copyright (C) Fujitsu Isotec Limited. 2014
37 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
手順
2
続き
イベント処理-LongPolling 方式
Visual C#
// イベントへの応答(WS-POSサービスプロバイダへの応答)
while (true)
{
try
{
device.SetEventResponse(consumerID, res);
// 応答が正常に完了したら、次のイベントを取得するためPollForUPOSEventに戻る
break;
}
catch (TimeoutException)
{
// イベントの返信がオフラインで帰ってきた場合、PollEventではなく、再度SetEventResponseを行う
continue;
}
catch (FaultException<UnifiedPOS.POSPrinter.V1_2.UposException> ex)
{
if (ex.Detail.ErrorCode == UnifiedPOS.POSPrinter.V1_2.ErrorCode.Illegal)
{
// ILLEGALが帰ってきた場合は、SetEventResponseは既に受信されていたので、
// 再度PollForUPOSEvent に戻る
break;
}
else
{
throw;
}
}
}
}
catch (TimeoutException)
{
// イベントポーリングがオフラインまたはタイムアウトの場合、PollForUPOSEventを再試行
continue;
}
}
}
Copyright (C) Fujitsu Isotec Limited. 2014
38 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.3.10 KeepAlive 処理
Op en S es s ion () 後 、 ア プリ ケ ー シ ョ ン とデ バ イ ス間 で通 信 が 無 い時 間 が 、 サ ー ビ スプ ロ バ イ ダ 側 で設 定 さ
れ ている タイ ムア ウト 時 間 を 超 える と、 デ バ イ ス との コネ ク シ ョ ン が 切 断 され ま す 。 K eepA liv e は これ を 防
止 す る た めの 仕 組 み です 。
<Vi su a l Ba si c . NET >
手順
KeepAlive 処理 Visual Basic.NET
1
タイマーを使用し、KeepAlive処理を行う処理を記載します。以下を参考にしてください。
D i m t i m e r As S y st e m .W in d o w s .F o r m s. Ti m e r
t im e r = N e w Ti m e r ( )
Ad d H a n d l e r t i m er. Ti c k , N e w E ve n t H a n d l e r ( Ad d r e s sO f t im e r _ Ti c k )
' ア プ リ ケ ーシ ョ ン開 始 時に K e ep Al i ve 用の タ イ マー を 開 始
D i m p r o vi d e r S es s i o n Ti m e o u t As In t eg e r = d e vi c e . G et P r o vi d e r S e s s i on Ti m e o u t( c on su m e r ID )
' S e r vi c e P r o vi d e r で 設定 さ れ てい る タ イ ムア ウ ト 時間 を 取得
' こ こ では 、 サ ービ ス プロ バ イ ダか ら 取 得 し た タ イ ム ア ウ ト 時 間 の半 分 を K e ep Al i ve の時 間 と し ま す
t im e r. In t e r va l = ( (p r o vi d e r S e s s i on Ti m e o u t / 2 ) * 1 0 0 0 )
' タ イマ ー 開 始
t im e r.S t a rt ( )
P r i va t e Su b t i m e r _ Ti c k ( s en d e r As Ob j e c t, e As E ve n t Arg s )
' W S - PO S K e e p Al i ve
If N o t c o n su m er ID Is N o th i n g Th e n
Tr y
d e vi c e . K e e p Al i ve ( c o n su m e r ID )
C a tc h e x As Ti m e o u t E xc e p t i on
' タ イ ムア ウ ト 処理
t i m e r. S t op ( )
' K e ep Al i ve が タイ ム ア ウ ト に な っ た 場 合 ( オ フ ラ イン )
' チ ャ ネル 情 報 、 C on su m e r ID を n u l l に し ま す
c on su m e r ID = N o th in g
d e vi c e = N o th in g
' L on g P ol l in g でイ ベント 取 得 時 は、 L o n g P ol l i n g スレ ッ ドを 停止 さ せ ま す
' この 後 、 再 度 Op e n し直 し て く だ さ い
En d Tr y
En d If
En d S u b
Copyright (C) Fujitsu Isotec Limited. 2014
39 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
<Vi su a l C# >
手順
KeepAlive 処理 Visual C#
1
タイマーを使用し、KeepAlive処理を行う処理を記載します。以下を参考にしてください。
p r i va t e S y st e m .W in d o w s .F o r m s. Ti m e r t i m e r;
t im e r. Ti c k + = n e w S y st e m . E ve n t H a n d l e r (t i m e r _ Ti c k ) ;
// ア プリ ケ ー シ ョン 開 始 時に K e e p Al i ve 用 の タ イマ ーを 開 始 する
in t p r o vi d e r S e s s i on Ti m e o u t = d e vi c e . G et P r o vi d e r S e s s i on Ti m e o u t (c o n su m e r I D );
// S e r vi c e P r o vi d e r で設 定 さ れて いる タ イ ム ア ウ ト 時 間を 取 得 する
// こ こ で は、 サ ービ ス プロ バ イ ダか ら 取 得 し た タ イ ム ア ウ ト 時 間 の 半分 を K e ep Al i ve の 時 間 と し ま す
t im e r. In t e r va l = p r o v i d e rS e s s i o n Ti m e o u t / 2 * 1 0 0 0 ;
// タ イ マ ーを 開始
t im e r.S t a rt ( );
p r i va t e vo i d t i m e r _ Ti c k ( o b j e ct s en d e r, E ve n t Ar g s e ) {
/ / W S -P O S K e ep Al i ve
i f ( c on su m e r ID ! = n u l l ) {
try {
d e vi c e . K e e p Al i ve ( c o n su m e r ID );
} c a tc h ( Ti m e o u t E xc e p t i on ) {
/ / タイ ムアウト 処理
t i m e r. S t op ( );
/ / K e e p Al i ve が タ イ ムア ウ ト に な っ た 場合 ( オ フ ラ イ ン )
/ / チ ャ ネ ル 情 報、 C o n su m e r ID を n u l l に し ま す
c on su m e r ID = n u l l ;
d e vi c e = n u l l ;
/ / L o n g P ol l in g でイベ ント 取 得時 は 、 L on g P o l l in g ス レッ ドを 停 止 さ せ ま す
/ / こ の 後 、再 度 Op en し 直 し て く だ さい
}
}
}
Copyright (C) Fujitsu Isotec Limited. 2014
40 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
3.4
OPOS のメソッド・プロパティについて
生 成 した チャ ネ ル の メ ン バ ー とし て、 O PO S と同 様 の メ ソ ッド ・ プ ロ パ テ ィが 使 用 でき ま す。
メ ソッ ド ・ プ ロ パ テ ィにつ いては 、 O PO S の AP G (ア プ リ ケ ー ショ ン プ ロ グラ マー ズ ガ イ ド )を 参 照 してく だ さ
い。
* FP - 110 0 O PO S の 場 合 は 下 記 の AP G を 参 照 してく だ さい。
「 F P -110 0 P OS P rin t er, Cas h Dra wer シ リ ア ル ・ USB ・ LA N イ ン ター フ ェ ー ス対 応
OP O S -O CX ド ラ イ バ アプ リ ケ ー シ ョ ン プ ロ グラ マー ズ ガ イ ド 」
(F P110 0_ O PO S _A P G_ ja. pd f)
3.5
WS-POS で使用できないメソッド・プロパティ
下 記 の OP O S のプ ロ パ テ ィ・ メ ソ ッド は W S-P OS で使 用 でき ま せ ん 。
コン シ ュ ー マおよ び プ ロ バ イ ダ が 停 止 す る 場 合 が あり ま す の で、 使 用 しない でく だ さい。
◆ メ ソッ ド
・ Comp ar eF irm war eVe rs ion
・ Res et S t at is t ic s
・ P rin t Mem or yB itm ap
・ Dra wRu led L in e
◆プロパティ
・ B in ar yCon ve rs ion
・ Op en Res u lt
・ Res u lt Cod e
・ Res u lt Cod eE xt en d ed
・ Cap Rec Ru led L in e
・ Cap S lp Ru led L in e
Copyright (C) Fujitsu Isotec Limited. 2014
41 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
4.
注意事項

P C を 休 止 ま た は スリ ープ 状 態 にす る 場 合
コン シ ュ ー マ実 行 中 に PC を 休 止 ま た は スリ ー プ 状 態 にす る ことは 推 奨 しま せ ん。
通 信 が ない時 間 が 続 いた 場 合 、 タイ ムア ウ ト となり 、 プ ロ バ イ ダ との セ ッ シ ョ ン が 切 断 す る 可 能 性 が あ
り ま す 。 そ の 場 合 、 再 度 ア プ リ ケ ー シ ョ ン を 起 動 してく だ さい。 復 旧 し ない 場 合 は サ ー バ ー 側 でサ ー ビ
スプ ロ バ イ ダ の 再 起 動 を 行 っ てく だ さい。

S e nd T im e ou t 値 の 変 更 につ いて
WC F サ ー ビ スの バ イ ン デ ィン グプ ロ パ テ ィの S e n dT i m e out の 既 定 値 は ” 0 0 : 0 1: 0 0 ” です 。 コン シ ュ ー
マ側 でバ ッ フ ァサ イ ズ が 大 き いデ ー タを 送 信 し、 1 分 間 処 理 が 返 っ てこない場 合 、 タイ ムア ウト と なり 、
ア プ リ ケ ー ショ ン 内 で例 外 が 発 生 す る 可 能 性 が あり ま す 。 そ の 場 合、 サ ー ビ ス コン シ ュ ー マ側 で以 下
の よ う に S e n dT im e ou t 値 を 変 更 してく だ さい。
サービスコンシューマ設定ファイルに以下の太字部分を追加します。
<client>
<endpoint address="http://192.168.1.120:8087/POSPrinter.svc/POSPrinter1"
binding="basicHttpBinding"
bindingConfiguration="longTimeBinding"
contract="UnifiedPOS.POSPrinter.V1_2.POSPrinter"
name="POSPrinterPort1"/>
</client>
<bindings>
<basicHttpBinding>
<binding name="longTimeoutBinding" SendTimeout="00:01:00"/>
・・・※
</basicHttpBinding >
</bindings >
※ご使用の 環境に よ り 、 適切な タイ ムアウ ト値 を設定して ください 。

W S- PO S 参 照 実 装 の 6 4 bi t 環 境 での 使 用 につ いて
現 在 提 供 され ている W S - PO S 参 照 実 装 の プ ロ バ イ ダ は 6 4 bi t 環 境 で動 作 しま せ ん。
" W cf S er vi c e H os t Wi n d ow s S er vi c e 3 5 . ex e " が 「 A n y C PU 」 でビ ル ド され て い る た め、 サ ー ビ スとして
動 作 させ る と 6 4 b i t 動 作 となり 、 3 2 b it である C C O にア クセ スでき ないた め で す。 6 4 b i t 環 境 で動 作 さ
せ る には 3 2 b i t( x 8 6 ) でビ ル ド す る 必 要 が あり ま す 。
Copyright (C) Fujitsu Isotec Limited. 2014
42 of 43
WS-POS 環境セットアップ・アプリケーション開発ガイド
5.
Reve si on
1.0 .0 .0
改訂履歴
更新日
初版(2 014 .09 .12 )
Copyright (C) Fujitsu Isotec Limited. 2014
43 of 43
Fly UP