/// <summary>
        /// 複製
        /// </summary>
        /// <returns></returns>
        public ItemMasterBean Clone()
        {
            ItemMasterBean clone = new ItemMasterBean();

            clone.Name     = this.Name;
            clone.XAxis    = this.XAxis.Clone();
            clone.ItemList = new List <ItemBean>(this.ItemList.ToArray());

            return(clone);
        }
Exemple #2
0
        /// <summary>
        /// 出荷時LIST生成
        /// </summary>
        private static void GenerateDefaultList()
        {
            ItemPatternList = new List <ItemMasterBean>();
            ItemMasterBean pattern = null;

            AxisMaster.Load();

            for (int i = 0; i < 3; i++)
            {
                // 加速度の項目
                pattern          = new ItemMasterBean();
                pattern.Name     = string.Format("Accelerometer{0}", i);
                pattern.ItemList = ItemListAccess.GenerateAccelerationItems();
                ItemPatternList.Add(pattern);

                // 角速度の項目
                pattern          = new ItemMasterBean();
                pattern.Name     = string.Format("AngularVelocity{0}", i);
                pattern.ItemList = ItemListAccess.GenerateAngularVelocityItems();
                ItemPatternList.Add(pattern);

                // 眼電位の項目
                pattern          = new ItemMasterBean();
                pattern.Name     = string.Format("Electrooculography{0}", i);
                pattern.ItemList = ItemListAccess.GenerateElectrooculographyItems();
                ItemPatternList.Add(pattern);

                // TODO : クォータニオンを無効化
                //// クォータニオンの項目
                //pattern = new ItemMasterBean();
                //pattern.Name = string.Format("Quaternion{0}",i);
                //pattern.ItemList = ItemListAccess.GenerateQuaternionItems();
                //ItemPatternList.Add(pattern);
            }


            AccelerationItems       = new List <ItemMasterBean>();
            AngularVelocityItems    = new List <ItemMasterBean>();
            ElectrooculographyItems = new List <ItemMasterBean>();
            // TODO : クォータニオンを無効化
            //QuaternionItems = new List<ItemMasterBean>();
            for (int i = 0; i < 3; i++)
            {
                AccelerationItems.Add(ItemPatternList.Find(p => p.Name == string.Format("Accelerometer{0}", i)));
                AngularVelocityItems.Add(ItemPatternList.Find(p => p.Name == string.Format("AngularVelocity{0}", i)));
                ElectrooculographyItems.Add(ItemPatternList.Find(p => p.Name == string.Format("Electrooculography{0}", i)));
                // TODO : クォータニオンを無効化
                //QuaternionItems.Add(ItemPatternList.Find(p => p.Name == string.Format("Quaternion[0]",i)));
            }
        }
Exemple #3
0
        /// <summary>
        /// ファイルからロードしてリスト生成
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static void Load()
        {
            string filePath = FilePath;

            ItemPatternList = new List <ItemMasterBean>();
            FileStream   fs = null;
            StreamReader sr = null;

            string[]       fields;
            ItemMasterBean pattern = null;

            try
            {
                AxisMaster.Load();

                if (!File.Exists(filePath))
                {
                    GenerateDefaultList();
                    return;
                }


                // ファイルオープン
                fs = File.OpenRead(filePath);
                sr = new StreamReader(fs);

                string version = string.Empty;

                while (!sr.EndOfStream)
                {
                    // 読む
                    string rec = sr.ReadLine();

                    // アプリケーションバージョン
                    if (rec.Contains("$ApplicationVersion"))
                    {
                        version = rec.Split(new char[] { '=' })[1];
                    }

                    // 項目パターン名称
                    else if (rec.Contains("$ItemPattern"))
                    {
                        // いままでの項目パターンを保存
                        if (pattern != null)
                        {
                            ItemPatternList.Add(pattern);
                        }

                        // 新しい項目パターン生成
                        pattern = new ItemMasterBean();

                        // '='で分割してItemPatternの名称を取り出す
                        fields = rec.Split(new char[] { '=' });

                        pattern.Name = fields[1].Trim();
                    }

                    // X軸情報
                    else if (rec.Contains("$XAxis"))
                    {
                        // '='で分割してITEMのCSVを取り出す
                        fields        = rec.Split(new char[] { '=' });
                        pattern.XAxis = AxisBean.CreateFromCsv(fields[1]);
                    }

                    else
                    {
                        // オブジェクトリストに格納
                        ItemBean item = ItemBean.CreateFromCsv(rec);
                        if (item != null)
                        {
                            // 軸マスター更新されていた時のため、軸をマスターから取り直す
                            AxisBean axis = AxisMaster.AxisList.Find(d => d.Id == item.Axis.Id);
                            item.Axis = axis;

                            pattern.ItemList.Add(item);
                        }
                    }
                }

                if (version.Equals(System.Diagnostics.FileVersionInfo.GetVersionInfo(System.Reflection.Assembly.GetExecutingAssembly().Location).FileVersion) == false)
                {
                    // バージョン不一致の為、ファイルを破棄
                    if (File.Exists(filePath))
                    {
                        sr.Close();
                        sr = null;
                        fs.Close();
                        fs = null;
                        File.Delete(filePath);
                    }
                    GenerateDefaultList();
                    return;
                }

                // 最後の項目パターンを保存
                if (pattern != null)
                {
                    ItemPatternList.Add(pattern);
                }

                AccelerationItems       = new List <ItemMasterBean>();
                AngularVelocityItems    = new List <ItemMasterBean>();
                ElectrooculographyItems = new List <ItemMasterBean>();
                // TODO : クォータニオンを無効化
                //QuaternionItems = new List<ItemMasterBean>();
                for (int i = 0; i < 3; i++)
                {
                    AccelerationItems.Add(ItemPatternList.Find(p => p.Name == string.Format("Accelerometer{0}", i)));
                    AngularVelocityItems.Add(ItemPatternList.Find(p => p.Name == string.Format("AngularVelocity{0}", i)));
                    ElectrooculographyItems.Add(ItemPatternList.Find(p => p.Name == string.Format("Electrooculography{0}", i)));
                    // TODO : クォータニオンを無効化
                    //QuaternionItems.Add(ItemPatternList.Find(p => p.Name == string.Format("Quaternion[0]", i)));
                }
            }
            finally
            {
                // 後始末
                if (sr != null)
                {
                    sr.Close();
                }
                if (fs != null)
                {
                    fs.Close();
                }
            }
        }