Ejemplo n.º 1
0
        public static void saveStreamMessageSql(string tableName)
        {
            string strsql = null;
            streamMessagePool._stream_message user_field = new streamMessagePool._stream_message();
            FieldInfo[] fields = user_field.GetType().GetFields();

            strsql = kpiCommonClass.createListTable(fields);
           
            strsql = "create table " + tableName + " (" + strsql + " ) ";
            streamMessagePool .Acc.RunNoQuery(strsql);

            foreach (streamMessagePool._stream_message sm in streamMessagePool.ml)
            {

                strsql = kpiCommonClass.insertListTable(fields, sm);

                strsql = "insert into " + tableName + " values(" + strsql + ")";
                streamMessagePool .Acc.RunNoQuery(strsql);
            }
        }
Ejemplo n.º 2
0
        public static void open_iu_cs_file()
        {
            int file_line_number = 0;
            string file_line_detail = null;

            string line_detail = null;//消息行号
            int line_number = 0;//消息行号
            int read_message = 0;//是否读入消息
            int read_sctp = 0;//读入的消息是否有组包

            StreamReader rd = new StreamReader(streamMessagePool.signallingFilePath);
            rd.BaseStream.Seek(0, SeekOrigin.Begin);

            Queue<string> q = new Queue<string>();

            while (rd.Peek() >= 0)
            {
                GC.Collect();

                Application.DoEvents();

                //MemoryStream ms = new MemoryStream();
                //StreamWriter sw = new StreamWriter(ms);

                while (file_line_number < line_total_number + line_number && file_line_number >= line_number)//在此分次读取
                {
                    file_line_detail = rd.ReadLine();
                    //sw.WriteLine(file_line_detail);
                    q.Enqueue(file_line_detail);
                    file_line_number++;
                }

                //sw.Flush();
                //ms.Position = 0;
                //StreamReader reader = new StreamReader(ms);
                //reader.BaseStream.Seek(0, SeekOrigin.Begin);
                //while (reader.Peek() >= 0)

                pb = 0;

                while (q.Count > 0)
                {
                    //line_detail = reader.ReadLine();
                    line_detail = q.Dequeue();
                    line_number++;
                    read_message++;
                    pb++;

                    //在此调用父窗口的进度条,采用托管的方式传递
                    middleDelegate.DoSendPMessage(pb);
                    Application.DoEvents();

                    if (line_detail != null)
                    {
                        if (line_detail.Length > 10)
                        {
                            if (line_detail.Substring(0, 2).IndexOf("Fr") != -1)
                            {
                                read_message = 0;//开关参数
                                read_sctp = 0;
                            }
                        }

                        if (read_message == 0)//如果出现消息行,那么存入基本消息到内存
                        {
                            message_number++;
                            streamMessagePool._stream_message sm = new streamMessagePool._stream_message();
                            sm.message_begin_lineNumber = line_number;//消息开始位置
                            line_detail = regex.Replace(line_detail, " ");
                            string[] ar = line_detail.Split(Convert.ToChar(" "));
                            sm.message_frame = message_number.ToString();//----------------------------------------------->
                            sm.message_number = ar[1].Trim();
                            fr = message_number;
                            if (fr != 0)
                            {
                                //streamMessagePool.ml.ElementAt(fr - 1).message_end_lineNumber = line_number;

                                streamMessagePool._stream_message _sm = s.Pop();
                                _sm.message_end_lineNumber = line_number;
                                s.Push(_sm);

                            }
                            //streamMessagePool.ml.Add(sm);
                            s.Push(sm);
                        }

                        if (line_detail.IndexOf("Stream Control Transmission Protocol") != -1)
                        {
                            read_sctp++;
                            if (read_sctp != 1)//如果出现消息组包,那么直接复制前1条消息的内容
                            {
                                message_number++;
                                fr = message_number;
                                streamMessagePool._stream_message sm = new streamMessagePool._stream_message();

                                //streamMessagePool._stream_message _sm = streamMessagePool.ml.ElementAt(fr - 1);
                                streamMessagePool._stream_message _sm = s.Peek();

                                sm.message_begin_lineNumber = _sm.message_begin_lineNumber;
                                sm.message_frame = message_number.ToString();
                                sm.message_number = _sm.message_number;
                                sm.message_time = _sm.message_time;
                                sm.message_ttime = _sm.message_ttime;
                                sm.message_source = _sm.message_source;
                                sm.message_destination = _sm.message_destination;
                                sm.message_protocol = _sm.message_protocol;
                                sm.message_info = _sm.message_info;
                                sm.message_end_lineNumber = _sm.message_end_lineNumber;
                                if (fr != 1)
                                {
                                    _sm.message_end_lineNumber = line_number;
                                }

                                //streamMessagePool.ml.Add(sm);
                                s.Push(sm);
                            }
                        }

                        if (line_detail.Length > 2)
                        {
                            //ThreadPool.QueueUserWorkItem(new WaitCallback(infoName),line_detail);
                            protocolName(line_detail);
                            infoName(line_detail);
                        }
                    }
                }

                //reader.Dispose();
                //sw.Dispose();
                //ms.Dispose();
                //streamMessagePool.ml.ElementAt(streamMessagePool.ml.Count() - 1).message_end_lineNumber = line_number;

                streamMessagePool._stream_message _smLast = s.Pop();
                _smLast.message_end_lineNumber = line_number;
                s.Push(_smLast);

            }
            rd.Close();
            rd.Dispose();
            streamMessagePool.ml.AddRange(s.Reverse());
        }
Ejemplo n.º 3
0
 private void DataTableToList(DataTable dt)
 {
     //GC.Collect();
     Stack<streamMessagePool._stream_message> s = new Stack<streamMessagePool._stream_message>();
     int rc = dt.Rows.Count;
     for (int i = 0; i < rc; i++)
     {
         toolStripLabel1.Text = (int)(100 * i / rc) + "%";
         toolStripLabel1.Visible = true;
         Application.DoEvents();
         streamMessagePool._stream_message sm = new streamMessagePool._stream_message();
         sm.message_number = dt.Rows[i]["message_number"].ToString();
         sm.message_ttime = dt.Rows[i]["message_ttime"].ToString();
         sm.message_time = dt.Rows[i]["message_time"].ToString();
         sm.message_source = dt.Rows[i]["message_source"].ToString();
         sm.message_destination = dt.Rows[i]["message_destination"].ToString();
         sm.message_protocol = dt.Rows[i]["message_protocol"].ToString();
         sm.message_info = dt.Rows[i]["message_info"].ToString();
         sm.message_frame = dt.Rows[i]["message_frame"].ToString();
         sm.message_begin_lineNumber = Int32.Parse(dt.Rows[i]["message_begin_lineNumber"].ToString());
         sm.message_end_lineNumber = Int32.Parse(dt.Rows[i]["message_end_lineNumber"].ToString());
         sm.message_sccp_slr = dt.Rows[i]["message_sccp_slr"].ToString();
         sm.message_sccp_dlr = dt.Rows[i]["message_sccp_dlr"].ToString();
         sm.message_gsm_a_imsi = dt.Rows[i]["message_gsm_a_imsi"].ToString();
         sm.message_gsm_a_tmsi = dt.Rows[i]["message_gsm_a_tmsi"].ToString();
         sm.message_rnc_id = dt.Rows[i]["message_rnc_id"].ToString();
         sm.message_lac = dt.Rows[i]["message_lac"].ToString();
         sm.message_id_type = dt.Rows[i]["message_id_type"].ToString();
         sm.message_id_num = dt.Rows[i]["message_id_num"].ToString();
         sm.message_radioNetwork = dt.Rows[i]["message_radioNetwork"].ToString();
         sm.message_Cause = dt.Rows[i]["message_Cause"].ToString();
         sm.CalledPartyNumber= dt.Rows[i]["CalledPartyNumber"].ToString();
         sm.CallingPartyNumber= dt.Rows[i]["CallingPartyNumber"].ToString();
         sm.CIC = dt.Rows[i]["CIC"].ToString();
         s.Push(sm);
     }
     streamMessagePool.ml.AddRange(s.Reverse());
 }