private int statusDspSensorPgMax = 0;   // センサーロック状態パネルのページ数
        
        /// <summary>
        /// センサーロックボタンのデータマップに内容を登録する処理
        /// </summary>
        /// <param name="dspTimming"></param>
        /// <param name="dspPosition"></param>
        /// <param name="msgID"></param>
        /// <param name="readBtnCls"></param>
        /// <param name="writeBtnCls"></param>
        private void sensorLockDspMapAdd(int dspTimming, int dspPosition, int msgID, sensorLockReadBtn readBtnCls, sensorLockWriteBtn writeBtnCls)
        {
            // 引数が不適切な場合、例外を発生させる
            if (dspTimming < 0 || dspPosition < 0 || dspPosition > 99) new ArgumentException("SensorLock DspTimming or DspPosition is out of range");

            // ページの最大数を求める
            if (dspTimming > statusDspSensorPgMax) statusDspSensorPgMax = dspTimming;

            // インデックスを生成する
            int index = mainfrm.dspIndexCalc(dspTimming, dspPosition);

            // 設定データに追加する
            sensorLockDspStruct opeStruct = new sensorLockDspStruct();
            opeStruct.MsgID = msgID;
            opeStruct.ReadBtn = readBtnCls;
            opeStruct.WriteBtn = writeBtnCls;

            // マップに追加する
            sensorDspMap.Add(index, opeStruct);
        }
        /// <summary>
        /// センサーロックボタンに状態を書き込む処理
        /// </summary>
        /// <param name="btnID"></param>
        /// <param name="btnMotion"></param>
        /// <returns></returns>
        private sensorLockWriteBtn getWriteBtnClass(int btnID, int btnMotion)
        {
            // ボタンの動作モードが異なる場合、例外を返す
            if (btnMotion != SystemConstants.BTN_PUSH && btnMotion != SystemConstants.BTN_ON && btnMotion != SystemConstants.BTN_OFF) throw new ArgumentException("BtnMotion is out of range");

            sensorLockWriteBtn writeBtn = new sensorLockWriteBtn();
            writeBtn.BtnID = btnID;
            writeBtn.BtnMotion = btnMotion;
            return writeBtn;
        }