2013/08/16
・全デバイス
　UpdateFirmwareメソッドでConsumerから渡されるURIからProvider内部で
　ダウンロードしたテンポラリファイルを、StatusUpdateEventで
　UpdateFirmwareが終了するまで保持するよう修正。
　CloseSession時に上記テンポラリファイルがあったら削除する処理を追加。
　ErrorEventではRetry指定以外でテンポラリファイルがあったら削除する処理を追加。

・ElectronicJournal
　QueryContentの非同期動作を修正。
　DataEvent発生まで内部テンポラリファイルを保持し、DataEventでアップロード。

・POSPrinter SetBitmap, PrintBitmapでOutputCompleteEvent発生まで、
　内部テンポラリファイルを保持するよう修正。

2013/07/23
・.configのコメントが日本語だけだったので、英語も追加しました。
--------------
2013/07/16 2
・ElectronicJournalのQueryContentについて、httpアップロードに対応しました。
　テンポラリファイルを作成してUPOSに渡していたのですが、作成せすに渡すように
　実装を修正しました。
---------------
2013/07/16
・ElectronicJournalのQueryContentについて、httpアップロードに対応しました。
---------------
2013/07/03 
・Providerの以下のデバイスにつき、EventConvertの定数値の宣言が不足して
　いたものを追加しました。
　CAT, CheckScanner, ElectronicJournal, ElectronicValueRW, FiscalPrinter
　MICR, MSR, PINPad, PointCardRW, POSKeyboard, SmartCardRW, ToneIndicator
　RFIDScanner

・ProviderのApp.configでRemoteOrderDisplayの双方向通信用イベントポート
　指定のコントラクトがPOSPrinterと誤っていたのをしました。
・ConsumerのコンソールサンプルのロングポーリングのApp.configに不要な
　双方向通信向けの設定が記載されていたものを削除しました。
---------------
2013/06/28
・Providerの以下のメソッドに対して、エスケープシーケンスを
　POS for .NETに渡す処理を追加しました。
　　LineDisplay
　　　DisplayText
　　　DisplayTextAt
　　PointCardRW
　　　PrintNormal
　　　ValidateData
　下記は以前から同処理があるメソッドです。
　　FiscalPrinter
　　　PrintNormal
　　POSPrinter
　　　PrintImmediate
　　　PrintNormal
　　　PrintTwoNormal
　　　SetLogo
　　　ValidateData

---------------
2013/06/24
Provider
・App.configにsystem.netのconnectionManagementを追加しました。
・PINPadのBeginEFTTransactionのPINPadSystemパラメータをenumから
　文字列に変更しました。

Consumer
・App.configにsystem.netのconnectionManagementを追加しました。

Contract
・PINPadのBeginEFTTransactionのPINPadSystemパラメータをenumから
　文字列に変更しました。

---------------
2013/06/11
Provider
・CashDrawerService_ProviderSessionTimeoutCheckPeriodが.configから
　漏れていた不具合を修正しました。
・EventWait.csのWaitForAnyのイベント待ち受け処理に問題があったもの
 を修正しました。
・_distフォルダをビルド時に作成するようにしました。
・PollForUPOSEventを呼び出されている際にProviderを終了すると、
　PollForUPOSEventのタイムアウトまで１分程度待ちが発生する問題を
　修正しました。

Consumer
・スキャナの双方向サンプルプログラムのイベント受信部の実装の
　コントラクトの名前空間がPOSPrinterになっていた不具合を
　Scannerに修正しました。

Contract
・binフォルダをビルド時に作成するようにしました。

---------------

2013/6/04
・.configファイルから、.NET Fx 4.0のセキュリティポリシーの設定を削除
　(NetFx40_LegacySecurityPolicy)
・WcfServiceHostWindowsService35.exe.configから、
　webHttpのextendedProtectionPolicy属性を削除しました。
  (.net fx4の設定のため)
・WcfServiceHostConsoleExe35.exe.configから、
　webHttpのextendedProtectionPolicy属性を削除しました。
  (.net fx4の設定のため)
・ScannerのConsumerSampleからiSelect変数を完全に削除しました。
  (以前の実験の名残)
・ScannerのConsumerのapp.configからOPOSSimulatorエントリを
　削除しました。(以前の実験の名残）
・POSPrinterのBiDirectionのConsumerSampleにおいてイベントの受信
　エンドポイントのハードコーディングを改めました。
・ScannerのBiDirectionのConsumerSampleにおいてイベントの受信
　エンドポイントのハードコーディングを改めました。
・WindowsServiceも全36デバイスを有効にしました。
　(これまではPOSPrinterとScannerのみ有効設定）
・WcfServiceHostWindowsService35のWSPOSContractの参照設定が
　自分のDebugフォルダになっていたので、WSPOSContract\bin下を
　参照するように修正しました。
・文字列置換の作業で作成された.bakファイルを削除しました。

---------------
2013/6/03
・メソッドを連続して実行すると、複数回同メソッドが実行される問題に
　対応しました。STA対応のためにセッション毎スレッドを生成しメッセージ
　ループを行いながら各メソッドを実行していますが、そのフラグ制御の
　排他制御範囲に問題がありました。フラグ制御からキュー制御に変更
　しました。(WorkerThreadHolderを変更)
・WcfServiceHostConsoleExe35のプラットフォームターゲットがAnyCPUだった
　のでx86に訂正しました。(OPOS SOをオープンしようとして発覚)
・WcfServiceHostWindowsService35のプラットフォームターゲットがAnyCPU
　だったのでx86に訂正しました。(OPOS SOをオープンしようとして発覚)
・Provider下に_distディレクトリを作成し、ビルドすると実行資材がそこに
　コピーされるようにしました。

---------------
2013/5/29
・Providerに対して、コメントの英訳を追加しました

---------------
2013/5/28
・.configの内容をそろえました。(ServiceBehaviorをWS-POSServiceProviderに)
・ScannerのConsumerのSO選択機能を廃止しました。

---------------
2013/5/27
・.NET FW 3.0用のコンテナプロジェクトの.configから、webHttpの記述を
　削除しました。(webHttpは3.5からのため)

---------------
2013/5/24_2
・POSPrinterのPrintBitmapやSetBitmapなどURIでファイル名を指定した場合、
　POS for .NETに渡すファイル名が .tmp になっていたものを、指定された
　ファイルの拡張子と同じ拡張子になるように変更しました。

---------------
2013/5/24
・ServiceProviderBehaviorのデフォルトコンストラクタをprotectedにしました。
　　（誤呼び出し防止）
・ServiceProviderBehaviorのKeepAliveSettingsメソッドを廃止しました。
　　（5/23バージョンで全デバイスクラスから呼ばなくなったため）
・WindowsServiceのログ出力をコンソールではなくイベントログに設定
　　（.confg設定）
・WindowsServiceでコントロールパネルのサービスの説明が日本語文字列でしたが、
　英語にしました。
・WindowsService(.NET Fw 3.5)でサービスのインストールで失敗する問題に
　対処しました。

---------------
2013/5/23
・5/22までの対応を、Providerの36デバイスに拡張しました。

・ProviderのURI形式が変更になりました
　旧：http://Server:port/DeviceService.svc
　新：http://Server:port/Device.svc/Endpoint

・.configのbehavior-sessionCheckPeriodを廃止しました。
・.configのDEVICEService_ProviderSessionTimeoutCheckPeriodを追加しました。

---------------

2013/5/22_2

・Silverlightのコンシューマを対応しました
・WinRTのコンシューマを対応しました
・.NET Fx 3.5でclientaccesspolicy.xmlを対応しました。

---------------
2013/5/22

POSプリンタに関して、
・単一プロセスの同デバイスクラスでの複数デバイス扱い
・OpenDeviceからCloseDeviceまで、OPOS SOに対して同スレッドでのアクセス(STA考慮)
を対応しました。

-----------------------------------------------------------------------
2013/5/21

スキャナに関して、単一プロセスのデバイスクラスで複数のデバイスを扱えるように
変更しました。

-----------------------------------------------------------------------
2013/5/15

ワーカースレッドで例外が発生した際、ターゲットメソッドをクリアして
いなかったため、再入してしまう不具合を修正しました。
デバイスをOpenできなかった際のエラーメッセージが 
it can'n create instanceだったものをit can't create instanceに
修正しました。(can'n→can't)
デバイススレッドの解放を行うよう修正しました。

ExecWaitのWaitメソッドで、ワーカースレッドのループを実行するようにしました。

-----------------------------------------------------------------------

2013/5/8
イベント待ちをP/Invokeを用いてWin32ApiのMsgWaitForMultipleObjectsに
変更しました。メッセージループを処理しながらイベント待ちをしたかった
ためです。

-----------------------------------------------------------------------
2013/4/22-2
ワーカースレッドにおいてメッセージループを実装しました。
ワーカースレッドにおいてCoInitialize/CoUninitializeを呼び出しています。
(P/Invoke)

-----------------------------------------------------------------------
2013/4/22
ワーカースレッドにおいてメッセージループを実装しました。

-----------------------------------------------------------------------
2013/4/19
.NET Framwork Version 3に変更。
Linqが使えないため、foreachに変更

ただし、clientaccesspolicy.xmlのホストを行うためには、
WCF3.5が必要であるため、コンテナを２種類作成しました。
Provider\Services\WcfServiceHostConsoleExe 　　　….NET FW 3.0 コンソール用
Provider\Services\WcfServiceHostWindowsService 　….NET FW 3.0 サービス用
Provider\Services\WcfServiceHostConsoleExe35 　　….NET FW 3.0 コンソール用
Provider\Services\WcfServiceHostWindowsService35 ….NET FW 3.0 サービス用

-----------------------------------------------------------------------
2013/4/17_3
セッション毎スレッドのアパートメントモデルをSTAにしました。
(Scannerのみ対応)
-----------------------------------------------------------------------

2013/4/17_2
WcfServiceHostWindowsService.exe.configを訂正しました。
clientのendopointを削除
BeltServiceの設定を削除


-----------------------------------------------------------------------
20130417
使用しているVisual Studio を 2012に変更しました。

Visual Studioのソリューションを
・Consumer
・Contract
・Provider
に分けました。

ConsumerもProviderも、Contractのbin下のアセンブリを参照します。
(プロジェクト参照ではありません)

Consumerは、Open→Closeの一連の流れをコーディングするようにしました。
Consumerに、WindowsRT向けを追加しました。
ConsumerのSilverlightはMVVMパターンをやめ、Blendのアセンブリを不要にしました。
ConsumerのWin32サービスのapp.configでFileHostServiceのコンテナ名が誤っていたのを訂正しました。

Contractに、WindowsRT向けを追加しました。
ContractのWin32, WinRT, Silverlight向けContractはソースを共有するようにしました。

Provider動作で、ファイル名パラメータは、以下のようにURIに対応しています。
全デバイス#CompareFirmwareVersion　… URI化対応
全デバイス#UpdateFirmware　　　　　… URI化対応
ElectronicJournal#PrintContentFile … URI化未対応
ElectronicJournal#QueryContent　　 … URI化未対応
HardTotals#Create　　　　　　　　　… URI化未対応
HardTotals#Delete　　　　　　　　　… URI化未対応
HardTotals#Find　　　　　　　　　　… URI化未対応
LindDisplay#DisplayBitmap　　　　　… URI化対応
LindDisplay#SetBitmap　　　　　　　… URI化対応
POSPrinter#PrintBitmap　　　　　　 … URI化対応
POSPrinter#SetBitmap　　　　　　　 … URI化対応

Provider動作で、OpenSession後同consumerIDで再度OpenSession時の例外処理に対応しました。(Illegal）
Provider動作で、OpenSession後OpenDeviceなしの他メソッド時の例外処理に対応しました(Closed)
Provider動作で、OPOSドライバ実装のClaim管理メカニズムがスレッドベースのため、
セッションごとに同一スレッドを使うようにしました。 …(2014/04/17 試験的にScannerのみ)

