//--------------------------------------------------
        // 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));
        }