Beispiel #1
0
        /// <summary>
        /// 将数据转换为DMode,所有数据保存在QFile中的data列表中。
        /// </summary>
        /// <returns></returns>
        public bool ToDMode()
        {
            if (dataMode == QFileMode.DMode || pramters.Count == 0)
            {
                return(true);
            }
            int count = 0;

            try
            {
                //第一步,取参数中数据最多的那个。
                int max = 0;
                for (int i = 0; i < pramters.Count; i++)
                {
                    if (max <= pramters[i].data.Count)
                    {
                        max = pramters[i].data.Count;
                    }
                }

                //第二步,进行整理,把参数中带的数据,全放到数据QFile.Data中去。
                for (int i = 0; i < max; i++)
                {
                    QData qd = new QData();
                    for (int j = 0; j < pramters.Count; j++)
                    {
                        QDataItem di = new QDataItem();
                        if (i >= pramters[j].data.Count)
                        {
                            di.p1 = 256;
                        }
                        else
                        {
                            di = pramters[j].data[i];
                            count++;
                        }
                        qd.items.Add(di);
                    }
                    data.Add(qd);
                }

                //清除参数中的数据。
                for (int i = 0; i < pramters.Count; i++)
                {
                    pramters[i].data.Clear();
                }

                dataMode = QFileMode.DMode;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(false);
            }
            //Console.WriteLine(count);
            return(true);
        }
Beispiel #2
0
        /// <summary>
        /// 将数据转换为DMode,所有数据保存在QFile中的data列表中。
        /// </summary>
        /// <returns></returns>
        public bool ToDMode()
        {
            // 如果已经是D模式了或者数据为空则返回。
            if (dataMode == QFileMode.DMode || Charactericstics.Count == 0)
            {
                return(true);
            }
            Data.Clear();

            //Step 1,取参数中数据最多的那个的参数个数保存在max中。
            int max = 0;

            for (int i = 0; i < Charactericstics.Count; i++)
            {
                max = max >= Charactericstics[i].data.Count ? max : Charactericstics[i].data.Count;
            }

            //Step 2,进行整理,把参数中带的数据,全放到数据QFile.Data中去。
            for (int i = 0; i < max; i++)
            {
                QData qd = new QData();
                //将参数中的数据复制到QFile的Data列表中。
                for (int j = 0; j < Charactericstics.Count; j++)
                {
                    QDataItem di = new QDataItem();
                    if (i >= Charactericstics[j].data.Count)
                    {
                        di.p1 = 255;
                    }
                    else
                    {
                        di = Charactericstics[j].data[i];
                    }
                    qd.items.Add(di);
                }
                Data.Add(qd);
            }

            //清除参数中的数据。
            for (int i = 0; i < Charactericstics.Count; i++)
            {
                Charactericstics[i].data.Clear();
            }


            dataMode = QFileMode.DMode;

            return(true);
        }
Beispiel #3
0
        //定义了2种模式,PMode和DMode
        //其中PMode是指数据保证在参数的数据列表中,
        //而DMode是指数据放置在数据列表中。
        /// <summary>
        /// PMode是指数据保证在参数的数据列表中
        /// </summary>
        public bool ToPMode()
        {
            // 如果已经是P模式了或者数据为空则返回。
            if (dataMode == QFileMode.PMode || Data.Count == 0)
            {
                return(true);
            }


            try
            {
                //将data中的第一个QData分别给对应的参数赋值。
                for (int i = 0; i < Data.Count; i++)
                {
                    for (int j = 0; j < Charactericstics.Count; j++)
                    {
                        QDataItem di = Data[i].items[j];
                        // 只有p1为0时,才是数据,否则255或256表示无数据。
                        if (di.p1 == 0)
                        {
                            Charactericstics[j].data.Add(di);
                        }
                    }
                }
                Data.Clear();
                dataMode = QFileMode.PMode;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                // 清空所有参数下的已转换数据。
                for (int j = 0; j < Charactericstics.Count; j++)
                {
                    Charactericstics[j].data.Clear();
                }
                return(false);
            }


            return(true);
        }
Beispiel #4
0
        //定义了2种模式,PMode和DMode
        //其中PMode是指数据保证在参数的数据列表中,
        //而DMode是指数据放置在数据列表中。
        /// <summary>
        /// PMode是指数据保证在参数的数据列表中
        /// </summary>
        public bool ToPMode()
        {
            if (dataMode == QFileMode.PMode || data.Count == 0)
            {
                return(true);
            }

            int count = 0;

            try
            {
                //将data中的第一个QData分别给对应的参数赋值。
                for (int i = 0; i < data.Count; i++)
                {
                    for (int j = 0; j < pramters.Count; j++)
                    {
                        QCharacteristic p  = pramters[j];
                        QDataItem       di = data[i].items[j];
                        if (di.p1 == 0)
                        {
                            p.data.Add(di);
                            count++;
                        }
                    }
                }

                data.Clear();
                dataMode = QFileMode.PMode;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return(false);
            }


            return(true);
        }