⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 f.cs

📁 老外Logix Mobile mCoreLib短信控件源码 通过串口或者手机数据线进行连接,可对手机进行 读写操作.
💻 CS
📖 第 1 页 / 共 5 页
字号:
        return flag4;
    }

    private void a(object A_0, SerialDataReceivedEventArgs A_1)
    {
        if (Monitor.TryEnter(this.l, this.@as))
        {
            try
            {
                StringBuilder builder = new StringBuilder("");
                string expression = "";
                int index = 0;
                string str = "";
                char[] chArray = "\r\n".ToCharArray();
                bool flag = false;
                int num2 = 2;
                if (this.ar > 0x19)
                {
                    num2 = (int) Math.Round((double) (((double) this.ar) / 25.0));
                }
                if (num2 <= 1)
                {
                    num2 = 2;
                }
                expression = "";
                str = "";
                index = 0;
                try
                {
                    if (this.r().BytesToRead > 0)
                    {
                        goto Label_0128;
                    }
                    return;
                Label_008F:
                    flag = false;
                    str = "";
                    try
                    {
                        str = this.r().ReadLine();
                        builder.Append(str);
                        builder.Append('\n');
                        flag = true;
                    }
                    catch (TimeoutException exception1)
                    {
                        ProjectData.SetProjectError(exception1);
                        TimeoutException exception = exception1;
                        builder.Append(str);
                        ProjectData.ClearProjectError();
                    }
                    if (!flag)
                    {
                        builder.Append(this.r().ReadExisting());
                    }
                    if (this.r().BytesToRead <= 0)
                    {
                        int num4 = num2;
                        for (int i = 1; i <= num4; i++)
                        {
                            Thread.Sleep(0x19);
                            if (this.r().BytesToRead > 0)
                            {
                                break;
                            }
                        }
                    }
                    Application.DoEvents();
                Label_0128:
                    if (this.r().BytesToRead > 0)
                    {
                        goto Label_008F;
                    }
                    expression = builder.ToString();
                    if (expression.Trim().Length > 0)
                    {
                        if ((((((expression.ToUpper().Trim().Contains("+CMT:") | expression.ToUpper().Trim().Contains("+CMTI:")) | expression.ToUpper().Trim().Contains("+CDS:")) | expression.ToUpper().Trim().Contains("+CDSI:")) | expression.ToUpper().Trim().Contains("RING")) | expression.ToUpper().Trim().Contains("+CLIP:")) | expression.ToUpper().Trim().Contains("+CUSD:"))
                        {
                            string[] strArray = Strings.Split(expression, "\r\n", -1, CompareMethod.Binary);
                            expression = "";
                            while (index <= strArray.GetUpperBound(0))
                            {
                                if ((((((strArray[index].ToUpper().Trim().StartsWith("+CMT:") | strArray[index].ToUpper().Trim().StartsWith("+CMTI:")) | strArray[index].ToUpper().Trim().StartsWith("+CDS:")) | strArray[index].ToUpper().Trim().StartsWith("+CDSI:")) | strArray[index].ToUpper().Trim().StartsWith("RING")) | strArray[index].ToUpper().Trim().StartsWith("+CLIP:")) | strArray[index].ToUpper().Trim().StartsWith("+CUSD:"))
                                {
                                    if (strArray[index].ToUpper().Trim().StartsWith("+CMT"))
                                    {
                                        if (strArray[index].ToUpper().Trim().StartsWith("+CMT:"))
                                        {
                                            try
                                            {
                                                bool flag2 = false;
                                                string item = strArray[index];
                                                while (!flag2)
                                                {
                                                    if (strArray[index + 1].Trim().Length > 0)
                                                    {
                                                        item = item + "\r\n" + strArray[index + 1];
                                                        flag2 = true;
                                                    }
                                                    index++;
                                                }
                                                if (this.s)
                                                {
                                                    this.k.c.Add(item, null, null, null);
                                                }
                                            }
                                            catch (Exception exception6)
                                            {
                                                ProjectData.SetProjectError(exception6);
                                                Exception exception2 = exception6;
                                                ProjectData.ClearProjectError();
                                            }
                                        }
                                        else if (strArray[index].ToUpper().Trim().StartsWith("+CMTI:") && this.s)
                                        {
                                            this.k.b.Add(strArray[index], null, null, null);
                                        }
                                    }
                                    else if (strArray[index].ToUpper().Trim().StartsWith("+CDS"))
                                    {
                                        if (strArray[index].ToUpper().Trim().StartsWith("+CDS:"))
                                        {
                                            try
                                            {
                                                bool flag3 = false;
                                                string str4 = strArray[index];
                                                while (!flag3)
                                                {
                                                    if (strArray[index + 1].Trim().Length > 0)
                                                    {
                                                        str4 = str4 + "\r\n" + strArray[index + 1];
                                                        flag3 = true;
                                                    }
                                                    index++;
                                                }
                                                if (this.u)
                                                {
                                                    this.k.d.Add(str4, null, null, null);
                                                }
                                            }
                                            catch (Exception exception7)
                                            {
                                                ProjectData.SetProjectError(exception7);
                                                Exception exception3 = exception7;
                                                ProjectData.ClearProjectError();
                                            }
                                        }
                                        else if (strArray[index].ToUpper().Trim().StartsWith("+CDSI:") && this.u)
                                        {
                                            this.k.e.Add(strArray[index], null, null, null);
                                        }
                                    }
                                    else if (strArray[index].ToUpper().Trim().StartsWith("RING"))
                                    {
                                        index++;
                                    }
                                    else if (strArray[index].ToUpper().Trim().StartsWith("+CLIP:"))
                                    {
                                        if (this.v)
                                        {
                                            this.k.f.Add(strArray[index], null, null, null);
                                        }
                                        index++;
                                    }
                                    else if (strArray[index].ToUpper().Trim().StartsWith("+CUSD:") && this.w)
                                    {
                                        this.k.h.Add(strArray[index], null, null, null);
                                    }
                                }
                                else if (expression.Length <= 0)
                                {
                                    expression = strArray[index];
                                }
                                else
                                {
                                    expression = expression + "\r\n" + strArray[index];
                                }
                                index++;
                            }
                            if ((this.k.f.Count > 0) & (this.m.e <= 0))
                            {
                                Thread thread = new Thread(new ThreadStart(this.g));
                                thread.Name = "CLIPThread";
                                thread.Priority = ThreadPriority.Highest;
                                thread.Start();
                            }
                            if ((this.k.c.Count > 0) & (this.m.a <= 0))
                            {
                                Thread thread2 = new Thread(new ThreadStart(this.e));
                                thread2.Name = "CMTThread";
                                thread2.Priority = ThreadPriority.Highest;
                                thread2.Start();
                            }
                            if ((this.k.b.Count > 0) & (this.m.b <= 0))
                            {
                                Thread thread3 = new Thread(new ThreadStart(this.f));
                                thread3.Name = "CMTIThread";
                                thread3.Priority = ThreadPriority.Highest;
                                thread3.Start();
                            }
                            if ((this.k.d.Count > 0) & (this.m.c <= 0))
                            {
                                Thread thread4 = new Thread(new ThreadStart(this.c));
                                thread4.Name = "CDSThread";
                                thread4.Priority = ThreadPriority.Highest;
                                thread4.Start();
                            }
                            if ((this.k.e.Count > 0) & (this.m.d <= 0))
                            {
                                Thread thread5 = new Thread(new ThreadStart(this.b));
                                thread5.Name = "CDSIThread";
                                thread5.Priority = ThreadPriority.Highest;
                                thread5.Start();
                            }
                            if ((this.k.h.Count > 0) & (this.m.g <= 0))
                            {
                                Thread thread6 = new Thread(new ThreadStart(this.a));
                                thread6.Name = "USSDThread";
                                thread6.Priority = ThreadPriority.Highest;
                                thread6.Start();
                            }
                        }
                    }
                    else
                    {
                        this.a.b("SerialDataReceived event returned zero characters");
                    }
                }
                catch (Exception exception8)
                {
                    ProjectData.SetProjectError(exception8);
                    Exception exception4 = exception8;
                    this.a.b("[GSM:SerialDataReceived:1] " + exception4.Message);
                    ProjectData.ClearProjectError();
                }
                if (expression.Length > 0)
                {
                    if (this.cr)
                    {
                        b k = this.k;
                        k.a = k.a + expression;
                    }
                    else
                    {
                        this.k.a = "";
                    }
                }
            }
            catch (Exception exception9)
            {
                ProjectData.SetProjectError(exception9);
                Exception exception5 = exception9;
                ProjectData.ClearProjectError();
            }
            finally
            {
                Monitor.Exit(this.l);
            }
        }
        else
        {
            this.a(0x2333L, "Thread monitor enter attempt timeout [GSM:SerialDataReceived:A]", "GENERAL");
        }
    }

    internal bool a(string A_0, bool A_1)
    {
        string str21 = "";
        string strA = "";
        string str20 = "";
        string str10 = "";
        string str2 = "";
        string str38 = "";
        string str18 = "";
        string str31 = "";
        string str19 = "";
        string str25 = "";
        string str8 = "";
        string str15 = "";
        string str40 = "";
        string str13 = "";
        string str17 = "";
        string str28 = "";
        string str24 = "";
        string str36 = "";
        string str34 = "";
        string str35 = "";
        string str11 = "";
        string str23 = "";
        string str3 = "";
        string str37 = "";
        string str = "";
        string str6 = "";
        string str5 = "";
        string str4 = "";
        string str22 = "";
        string str30 = "";
        int num = 0;
        int num7 = 0;
        string str9 = "";
        DateTime dateValue = new DateTime();
        string str7 = "";
        string str14 = "";
        string str39 = "";
        string str12 = "";
        string str16 = "";
        string str27 = "";
        string str33 = "";
        string str29 = "";
        bool flag = false;
        long num15 = 0L;
        int num3 = 0;
        long num14 = 0L;
        int num2 = 0;
        bool flag2 = false;
        try
        {
            int num8;
            long num13;
            int num17;
            string[] strArray2 = Strings.Split(A_0, "\r\n", -1, CompareMethod.Binary);
            string[] strArray = Strings.Split(strArray2[0], ",", -1, CompareMethod.Binary);
            if ((!Versioned.IsNumeric(strArray[0]) | strArray[0].Contains(".")) | strArray[0].Contains(","))
            {
                return false;
            }
            if (strArray2[1].Length < 2)
            {
                return false;
            }
            int num6 = Conversions.ToInteger(strArray[0]);
            str21 = strArray2[1];
            int num5 = (int) (this.m(Strings.Left(str21, 2)) * 2L);
            str21 = Strings.Right(str21, str21.Length - 2);
            if (num5 > 0)
            {
                strA = Strings.Left(str21, 2);
                str21 = Strings.Right(str21, str21.Length - 2);
                str20 = this.b(Strings.Left(str21, num5 - 2));
                if (string.Compare(Strings.Right(str20, 1), "F", true) == 0)
                {
                    str20 = Strings.Left(str20, str20.Length - 1);
                }
                if (string.Compare(strA, "91", true) == 0)
                {
                    str20 = "+" + str20;
                }
                str21 = Strings.Right(str21, (str21.Length - num5) + 2);
            }
            str10 = Strings.Left(str21, 2);
            str21 = Strings.Right(str21, str21.Length - 2);
            str2 = this.p(str10);
            str38 = Strings.Mid(str2, 2, 1);
            str18 = Strings.Mid(str2, 7, 2);
            if (str18 != "00")
            {
                goto Label_096E;
            }
            int length = (int) this.m(Strings.Left(str21, 2));
            if ((length % 2) != 0)
            {
                length++;
            }
            int num9 = length;
            str21 = Strings.Right(str21, str21.Length - 2);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -