//-------------------------------------------------- // POS接続モードチェック //-------------------------------------------------- private void POSModeCheck() { try { CardMachineErrorClass Res = null; // バージョン情報取得 RmGetVersionParamClass VersionParam = new RmGetVersionParamClass(); Res = RmGetVersion(VersionParam); if (Res.ErrorCode != 0) { throw new Exception(Res.ErrorMessage); } // ステータス情報取得 RmGetStatusParamClass StatusParam = new RmGetStatusParamClass(); Res = RmGetStatus(StatusParam); if (Res.ErrorCode != 0) { throw new Exception(Res.ErrorMessage); } // POS接続モードチェック if (VersionParam.reserve2 != 2 || StatusParam.mvmode != 0) { // POS接続モードではないのでエラー出力 throw new Exception("カード機がPOS接続モードではありません。\nカード機本体の設定を確認してください。"); } } catch { throw; } }
/// <summary> /// 監視モード時の応答割り振り /// </summary> /// <param name="order">OrderCardMachineClass</param> /// <param name="ret">CardMachineErrorClass</param> private void MonitoringEventReturn(OrderCardMachineClass order, CardMachineErrorClass ret) { try { RmGetStatusParamClass Data = (RmGetStatusParamClass)order.Param; // 監視している場合は特殊応答 if (OldRWStatus == 0 && Data.rwsStatus == 1) { // 未挿入から処理中 NotInserted_To_Processing?.Invoke(Data); } else if (OldRWStatus == 1 && Data.rwsStatus == 2) { // 処理中から抜き取り待ち Processing_To_PullWait?.Invoke(Data); } else if (OldRWStatus == 2 && Data.rwsStatus == 0) { // 抜取り待ちから未挿入 PullWait_To_NotInserted?.Invoke(Data); } else if (OldRWStatus == 1 && Data.rwsStatus == 0) { // 処理中から未挿入 Processing_To_NotInserted?.Invoke(Data); } else if (OldRWStatus == 0 && Data.rwsStatus == 2) { // 未挿入から抜き取り待ち NotInserted_To_PullWait?.Invoke(Data); } // 最新ステータスを保持 OldRWStatus = Data.rwsStatus; } catch { throw; } }
/// <summary>ステータス要求</summary> public CardMachineErrorClass RmGetStatus(RmGetStatusParamClass Param) { int ret = -1; try { ret = TCSPOS110PWrapperClass.RmGetStatus(ref port_hndl, ref Param.card, ref Param.rwsStatus, ref Param.mvmode, ref Param.icStatus, ref Param.datanum, ref Param.datamax, ref Param.errcode ); } catch { throw; } return(ErrorCodeCheck(ret)); }