Esempio n. 1
0
        private void GetTxtDataAndWriteCit(string txtPath, string citPath, List <ChannelNew> channelList)
        {
            CitFileHelper citHelper = new CitFileHelper();

            int[] bnyChannelArr = channelList.Where(s => s.BNYChannelId >= 0).Select(s => s.BNYChannelId).ToArray();
            int   sampleNum     = 50000;
            long  startPosition = 1;
            long  endPosition   = sampleNum;

            long   lineCount     = common.GetTextLineCount(txtTxtPath.Text);
            int    pageCount     = 0;
            double realPageCount = lineCount * 1.0 / (sampleNum);

            pageCount = (int)realPageCount;
            List <float[]> txtDataList = new List <float[]>();
            List <float[]> resultList  = new List <float[]>();

            float[] fvalue = new float[sampleNum];
            for (int i = 0; i < pageCount; i++)
            {
                txtDataList = common.GetTxtData(txtPath, startPosition, endPosition);
                long temp = endPosition;
                endPosition   = endPosition + sampleNum;
                startPosition = temp + 1;
                resultList.Clear();
                for (int j = 0; j < channelList.Count; j++)
                {
                    if (channelList[j].BNYChannelId >= 0)
                    {
                        if (channelList[j].BNYChannelId == 0)
                        {
                            if (channelList[j].dataChannelInfo.sNameEn == "KM")
                            {
                                fvalue = txtDataList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray();
                            }
                            else if (channelList[j].dataChannelInfo.sNameEn == "M")
                            {
                                var kmValues = txtDataList[channelList[j].BNYChannelId];

                                float[] fvalueNew = new float[sampleNum];

                                for (int k = 0; k < kmValues.Length; k++)
                                {
                                    if (k == 20861)
                                    {
                                    }

                                    string[] strValues = kmValues[k].ToString("F3").Split('.');
                                    if (strValues.Length == 1)
                                    {
                                        fvalueNew[k] = 0;
                                    }
                                    else
                                    {
                                        fvalueNew[k] = Convert.ToSingle(strValues[1]);
                                    }
                                }
                                fvalue = fvalueNew;
                            }
                            else
                            {
                                float aa1 = txtDataList[channelList[j].BNYChannelId][20860];
                                float aa2 = txtDataList[channelList[j].BNYChannelId][20861];
                                float aa3 = txtDataList[channelList[j].BNYChannelId][20862];

                                fvalue = txtDataList[channelList[j].BNYChannelId];
                            }
                        }
                        else
                        {
                            float aa1 = txtDataList[channelList[j].BNYChannelId][20860];
                            float aa2 = txtDataList[channelList[j].BNYChannelId][20861];
                            float aa3 = txtDataList[channelList[j].BNYChannelId][20862];

                            fvalue = txtDataList[channelList[j].BNYChannelId];
                        }
                    }
                    else
                    {
                        fvalue = new float[txtDataList[0].Length];
                    }
                    resultList.Add(fvalue);
                }
                citHelper.WriteChannelDataFloat(citPath, resultList);

                //if (tokenSource.IsCancellationRequested)
                //{
                //    throw new OperationCanceledException();
                //}
            }
            if (realPageCount % ((int)realPageCount) > 0)
            {
                startPosition = pageCount * sampleNum + 1;
                endPosition   = lineCount;
                txtDataList   = common.GetTxtData(txtPath, startPosition, endPosition);
                resultList.Clear();
                for (int j = 0; j < channelList.Count; j++)
                {
                    if (channelList[j].BNYChannelId >= 0)
                    {
                        if (channelList[j].BNYChannelId == 0)
                        {
                            if (channelList[j].dataChannelInfo.sNameEn == "KM")
                            {
                                fvalue = txtDataList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray();
                            }
                            else if (channelList[j].dataChannelInfo.sNameEn == "M")
                            {
                                //fvalue = txtDataList[channelList[j].BNYChannelId].Select(p => (p - (int)p) * 1000).ToArray();
                                var kmValues = txtDataList[channelList[j].BNYChannelId];

                                float[] fvalueNew = new float[sampleNum];

                                for (int k = 0; k < kmValues.Length; k++)
                                {
                                    string[] strValues = kmValues[k].ToString("F3").Split('.');
                                    if (strValues.Length == 1)
                                    {
                                        fvalueNew[k] = 0;
                                    }
                                    else
                                    {
                                        fvalueNew[k] = Convert.ToSingle(strValues[1]);
                                    }
                                }
                                fvalue = fvalueNew;
                            }
                            else
                            {
                                fvalue = txtDataList[channelList[j].BNYChannelId];
                            }
                        }
                        else
                        {
                            fvalue = txtDataList[channelList[j].BNYChannelId];
                        }
                    }
                    else
                    {
                        fvalue = new float[txtDataList[0].Length];
                    }
                    resultList.Add(fvalue);
                }
                citHelper.WriteChannelDataFloat(citPath, resultList);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 获取BNY数据并向cit文件中写入数据
        /// </summary>
        /// <param name="channelList"></param>
        private void GetBnyDataAndWriteCit(string citPath, string bnyPath, List <ChannelNew> channelList)
        {
            CitFileHelper citHelper = new CitFileHelper();

            int[] bnyChannelArr = channelList.Where(s => s.BNYChannelId >= 0).Select(s => s.BNYChannelId).ToArray();
            int   sampleNum     = 50000;
            long  startPosition = 0;
            long  endPosition   = 0;

            long bnyFileLength = common.GetBNYLastPosition(bnyPath);

            int    pageCount     = 0;
            double realPageCount = bnyFileLength * 1.0 / (sampleNum * BNYFile.GetChannelSize());

            if (realPageCount % ((int)realPageCount) > 0)
            {
                pageCount = ((int)realPageCount) + 1;
            }
            else
            {
                pageCount = (int)realPageCount;
            }

            List <float[]> bnyList    = new List <float[]>();
            List <float[]> resultList = new List <float[]>();

            float[] fvalue = new float[sampleNum];
            for (int i = 0; i < pageCount; i++)
            {
                bnyList       = common.GetBNYData(bnyPath, sampleNum, startPosition, ref endPosition);
                startPosition = endPosition;
                resultList.Clear();
                for (int j = 0; j < channelList.Count; j++)
                {
                    if (channelList[j].BNYChannelId >= 0)
                    {
                        if (bnyList[channelList[j].BNYChannelId].Length < sampleNum)
                        {
                            fvalue = new float[bnyList[channelList[j].BNYChannelId].Length];
                            if (channelList[j].BNYChannelId == 2)
                            {
                                if (channelList[j].dataChannelInfo.sNameEn == "KM")
                                {
                                    fvalue = bnyList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray();
                                }
                                else if (channelList[j].dataChannelInfo.sNameEn == "M")
                                {
                                    fvalue = bnyList[channelList[j].BNYChannelId].Select(p => (p - (int)p) * 1000).ToArray();
                                }
                                else
                                {
                                    fvalue = bnyList[channelList[j].BNYChannelId];
                                }
                            }
                            else
                            {
                                fvalue = bnyList[channelList[j].BNYChannelId];
                            }
                        }
                        else
                        {
                            if (channelList[j].BNYChannelId == 2)
                            {
                                if (channelList[j].dataChannelInfo.sNameEn == "KM")
                                {
                                    fvalue = bnyList[channelList[j].BNYChannelId].Select(p => ((float)(int)p)).ToArray();
                                }
                                else if (channelList[j].dataChannelInfo.sNameEn == "M")
                                {
                                    fvalue = bnyList[channelList[j].BNYChannelId].Select(p => (p - (int)p) * 1000).ToArray();
                                }
                                else
                                {
                                    fvalue = bnyList[channelList[j].BNYChannelId];
                                }
                            }
                            else
                            {
                                fvalue = bnyList[channelList[j].BNYChannelId];
                            }
                        }
                    }
                    else
                    {
                        fvalue = new float[bnyList[0].Length];
                    }
                    resultList.Add(fvalue);
                }
                citHelper.WriteChannelDataFloat(citPath, resultList);
                if (tokenSource.IsCancellationRequested)
                {
                    throw new OperationCanceledException();
                }
            }
        }
Esempio n. 3
0
 private void WriteCitData(string citFilePath, List <float[]> dataList)
 {
     citHelper.WriteChannelDataFloat(citFilePath, dataList);
 }