Пример #1
0
        //B码、GPS/BD时间显示
        void udpRecv_passTime(TimeInfo timeInfo, int type)
        {
            int MAX_TIME;

            switch (type)
            {
            case 1: MAX_TIME = 10; break;

            case 2: MAX_TIME = 500; break;

            case 3: MAX_TIME = 1000; break;

            default: MAX_TIME = 1000; break;
            }
            if (++datatimeIndex > MAX_TIME)
            {
                datatimeIndex = 0;
                if (this.IsHandleCreated)
                {
                    this.BeginInvoke(new Action(() =>
                    {
                        DateTimeFormatInfo dtFormat = new System.Globalization.DateTimeFormatInfo();//时间格式化
                        string nanosecond           = timeInfo.millisecond.ToString("d3") + "毫秒" + timeInfo.microsecond.ToString("d3") + "微秒";

                        switch (timeInfo.satelliteInfo.time_state)
                        {
                        //B码=0、GPS/BD=0
                        case 0:
                            barStaticItem3.Caption =
                                "B码:" + System.DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒", dtFormat)
                                + " | BD/GPS时间:" + System.DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒", dtFormat);
                            break;

                        //B码=0、GPS/BD=1
                        case 1:
                            barStaticItem3.Caption =
                                "B码:" + System.DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒", dtFormat) + nanosecond
                                + " | BD/GPS时间:" + timeInfo.satelliteInfo.year.ToString() + "年"
                                + timeInfo.satelliteInfo.month.ToString() + "月"
                                + timeInfo.satelliteInfo.day.ToString() + "日"
                                + timeInfo.satelliteInfo.hour.ToString() + "时"
                                + timeInfo.satelliteInfo.minute.ToString("d2") + "分"
                                + timeInfo.satelliteInfo.second.ToString("d2") + "秒"
                                + nanosecond;
                            break;

                        //B码=1、GPS/BD=0
                        case 2:
                            barStaticItem3.Caption =
                                "B码:" + timeInfo.year.ToString() + "年"
                                + timeInfo.month.ToString() + "月"
                                + timeInfo.day_offset.ToString() + "日"
                                + timeInfo.hour.ToString() + "时"
                                + timeInfo.minute.ToString("d2") + "分"
                                + timeInfo.second.ToString("d2") + "秒"
                                + nanosecond
                                + " | BD/GPS时间:" + System.DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒", dtFormat) + nanosecond;
                            break;

                        //B码=1、GPS/BD=1
                        case 3:
                            barStaticItem3.Caption =
                                "B码:" + timeInfo.year.ToString() + "年"
                                + timeInfo.month.ToString() + "月"
                                + timeInfo.day_offset.ToString() + "日"
                                + timeInfo.hour.ToString() + "时"
                                + timeInfo.minute.ToString("d2") + "分"
                                + timeInfo.second.ToString("d2") + "秒"
                                + nanosecond
                                + " | BD/GPS时间:" + timeInfo.satelliteInfo.year.ToString() + "年"
                                + timeInfo.satelliteInfo.month.ToString() + "月"
                                + timeInfo.satelliteInfo.day.ToString() + "日"
                                + timeInfo.satelliteInfo.hour.ToString() + "时"
                                + timeInfo.satelliteInfo.minute.ToString("d2") + "分"
                                + timeInfo.satelliteInfo.second.ToString("d2") + "秒"
                                + nanosecond;
                            break;

                        default:
                            break;
                        }
                    }));
                }
            }
        }
Пример #2
0
        public void PushChannelData(byte[] t, double StartFreq, int channel, DataTime datatime, TimeInfo timeInfo)
        {
            m_channel   = channel;
            m_StartFreq = StartFreq;
            m_StopFreq  = m_StartFreq + 0.5;//每个子带的带宽LX

            /*记录文件初始化*/
            if (m_FlagSaveLast == false && m_FlagSave == true)
            {
                string time = timeInfo.year.ToString("d") + "_" + timeInfo.month.ToString("d") + "_" + timeInfo.day_offset.ToString("d") + "_" + timeInfo.hour.ToString("d") + "_" + timeInfo.minute.ToString("d") + "_" + timeInfo.second.ToString("d") + "_" + timeInfo.millisecond.ToString("d") + "_" + timeInfo.microsecond.ToString("d");
                path = @"\...\...\RecvData\";
                DirectoryInfo fi = new DirectoryInfo(path);
                if (!fi.Exists)
                {
                    fi.Create();
                }
                fs             = new FileStream(path + @"\" + time + ".dat", FileMode.OpenOrCreate | FileMode.Append);
                m_FlagSaveLast = true;
            }
            else if (m_FlagSaveLast == true && m_FlagSave == false)
            {
                fs.Close();
                m_FlagSaveLast = false;
            }
            if (m_FlagSave == true)
            {
                fs.Write(t, 0, (int)t.Length);
            }

            if (m_FlagTime == true)
            {
                m_time_count++;
                DataAndTime nDataAndTime = new DataAndTime();
                nDataAndTime.Time = datatime;
                nDataAndTime.Data = new byte[(int)t.Length];
                Buffer.BlockCopy(t, 0, nDataAndTime.Data, 0, (int)t.Length);
                m_queue.Enqueue(nDataAndTime);
                if (m_time_count >= 1250)
                {
                    m_time_count = 0;
                    m_FlagTime   = false;
                }
            }
            /////////////////////////////////////////////////////////////////
        }