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

📄 f.cs

📁 老外Logix Mobile mCoreLib短信控件源码 通过串口或者手机数据线进行连接,可对手机进行 读写操作.
💻 CS
📖 第 1 页 / 共 5 页
字号:
                catch (InvalidOperationException exception5)
                {
                    ProjectData.SetProjectError(exception5);
                    InvalidOperationException exception2 = exception5;
                    this.cr = false;
                    this.cu = false;
                    this.br = "Read message command error (Port not open). " + exception2.Message;
                    this.bs = 0x138fL;
                    this.aj();
                    flag2 = false;
                    ProjectData.ClearProjectError();
                    return flag2;
                }
                catch (TimeoutException exception6)
                {
                    ProjectData.SetProjectError(exception6);
                    TimeoutException exception3 = exception6;
                    this.cr = false;
                    this.cu = false;
                    this.br = "Read message command error (Timeout). " + exception3.Message;
                    this.bs = 0x1390L;
                    this.aj();
                    flag2 = false;
                    ProjectData.ClearProjectError();
                    return flag2;
                }
            Label_0323:
                Thread.Sleep((int) Math.Round((double) (((double) this.ar) / 2.0)));
                strA = strA + this.p();
                if ((((strA.Length > 0) & (string.Compare(strA, text, true) != 0)) & !strA.ToUpper().Contains("ERROR")) & strA.ToUpper().Contains("OK"))
                {
                    flag = true;
                    goto Label_03DD;
                }
                if (strA.ToUpper().Contains("ERROR"))
                {
                    goto Label_03DD;
                }
                Application.DoEvents();
            Label_03B0:
                if (!flag & (DateAndTime.DateDiff(DateInterval.Second, now, DateAndTime.Now, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1) < (((double) this.ak) / 1000.0)))
                {
                    goto Label_0323;
                }
            Label_03DD:
                this.cr = false;
                this.cu = false;
                this.a.b("Recv: " + strA);
                if (!flag)
                {
                    this.bt = "Invalid response to read message command";
                    this.bu = 0x1391L;
                    if (strA.Trim().Length <= 0)
                    {
                        this.aj();
                    }
                    return false;
                }
                strA = Strings.Replace(strA, text, "", 1, -1, CompareMethod.Binary);
                strA = this.a(strA, true, false, false);
                if (strA.Length > 0)
                {
                    strA = strA.Trim(trimChars);
                }
                if (strA.Length > 0)
                {
                    string[] strArray = Strings.Split(strA.ToUpper(), "+CMGL:", -1, CompareMethod.Binary);
                    int upperBound = strArray.GetUpperBound(0);
                    for (int j = 0; j <= upperBound; j++)
                    {
                        if (strArray[j].Trim().Length > 0)
                        {
                            this.a(strArray[j].Trim(), A_1);
                        }
                        Application.DoEvents();
                    }
                }
            }
            this.a.b("Processing incoming messages [" + this.cn.Count.ToString() + " Msgs]");
            this.ao();
            flag2 = true;
        }
        catch (Exception exception7)
        {
            ProjectData.SetProjectError(exception7);
            Exception exception4 = exception7;
            this.a.b("[GSM:ReadInbox:1] " + exception4.Message);
            flag2 = false;
            ProjectData.ClearProjectError();
        }
        this.cr = false;
        this.cu = false;
        return flag2;
    }

    private string a(int A_0, int A_1)
    {
        string str;
        int num = 2;
        string str4 = "";
        string str5 = "";
        string str3 = "1";
        bool flag = false;
        string str2 = "";
        try
        {
            int num2;
            if (((A_1 != 7) & (A_1 != 8)) & (A_1 != 0x10))
            {
                return "";
            }
            if (A_0 < 0)
            {
                flag = true;
                A_0 = 0 - A_0;
            }
            do
            {
                str4 = str5 + str4;
                num2 = Conversion.Int((int) (A_0 / num));
                str5 = (A_0 % num).ToString();
                A_0 = num2;
            }
            while (num2 > 1);
            str = num2.ToString() + str5 + str4;
            if (flag)
            {
                while ((str.Length % 4) != 0)
                {
                    str = "0" + str;
                }
                str2 = str;
                int length = str.Length;
                for (int i = 1; i <= length; i++)
                {
                    if (Strings.Mid(str, i, 1) == "0")
                    {
                        str2 = str2 + "1";
                    }
                    else
                    {
                        str2 = str2 + "0";
                    }
                }
                str = "";
                for (int j = str2.Length; j >= 1; j += -1)
                {
                    if (str3 == "0")
                    {
                        str = Strings.Mid(str2, j, 1) + str;
                    }
                    else if (Strings.Mid(str2, j, 1) == "0")
                    {
                        str = "1" + str;
                        str3 = "0";
                    }
                    else
                    {
                        str = "0" + str;
                    }
                }
            }
            switch (A_1)
            {
                case 7:
                    return Strings.Right("0000000" + str, 7);

                case 8:
                    return Strings.Right("00000000" + str, 8);

                case 9:
                case 10:
                case 11:
                case 12:
                case 13:
                case 14:
                case 15:
                    return str;

                case 0x10:
                    return Strings.Right("0000000000000000" + str, 0x10);
            }
        }
        catch (Exception exception1)
        {
            ProjectData.SetProjectError(exception1);
            Exception exception = exception1;
            this.a.b("[GSM:Biner:1] " + exception.Message);
            str = "";
            ProjectData.ClearProjectError();
        }
        return str;
    }

    internal bool a(int A_0, string A_1)
    {
        bool flag;
        string text = "";
        string str2 = "";
        bool flag2 = false;
        this.bv = "";
        this.bw = 0L;
        bool flag4 = false;
        this.a.b("Deleting message " + A_0.ToString() + " [Memory Loc: " + A_1 + "]");
        if (!this.av)
        {
            this.i(this.aw);
        }
        if (!this.a9 | (this.a5 != "READY"))
        {
            this.a.b("Verifying network registration status");
            if (!this.ai())
            {
                if (this.z == 0L)
                {
                    this.bv = this.ba;
                    this.bw = this.bb;
                }
                return false;
            }
        }
        if (!this.bj)
        {
            this.a.b("Verifying PDU support in modem");
            if (!this.au())
            {
                if (this.z == 0L)
                {
                    this.bv = "Cannot check PDU mode support";
                    this.bw = 0x1776L;
                }
                return false;
            }
        }
        if (!this.bk)
        {
            if (this.z == 0L)
            {
                this.bv = "Modem does not support PDU mode";
                this.bw = 0x1777L;
            }
            return false;
        }
        string[] array = Strings.Split(A_1, ",", -1, CompareMethod.Binary);
        int num2 = Information.UBound(array, 1);
        for (int i = 0; i <= num2; i++)
        {
            DateTime now;
            if (!this.r().IsOpen)
            {
                this.u();
            }
            if (!this.r().IsOpen | (this.z != 0L))
            {
                this.bv = "Cannot connect to modem for deleting message";
                this.bw = 0x1778L;
                return false;
            }
            str2 = "";
            text = "AT+CMGD=" + array[i].ToString() + "\r";
            bool flag3 = false;
            try
            {
                this.cr = true;
                if (Monitor.TryEnter(this.l, this.@as))
                {
                    try
                    {
                        this.k.a = "";
                    }
                    catch (Exception exception1)
                    {
                        ProjectData.SetProjectError(exception1);
                        Exception exception = exception1;
                        ProjectData.ClearProjectError();
                    }
                    finally
                    {
                        Monitor.Exit(this.l);
                    }
                }
                else
                {
                    this.cr = false;
                    this.bv = "Thread monitor enter attempt timeout [GSM:DeleteMessage:A]";
                    this.bw = 0x2333L;
                    this.aj();
                    return false;
                }
                this.r().Write(text);
                now = DateTime.Now;
                this.a.b("Modem Command: " + text);
                goto Label_0383;
            }
            catch (InvalidOperationException exception4)
            {
                ProjectData.SetProjectError(exception4);
                InvalidOperationException exception2 = exception4;
                this.cr = false;
                this.bv = "Delete message command error (Port not open). " + exception2.Message;
                this.bw = 0x1779L;
                this.aj();
                flag4 = false;
                ProjectData.ClearProjectError();
                return flag4;
            }
            catch (TimeoutException exception5)
            {
                ProjectData.SetProjectError(exception5);
                TimeoutException exception3 = exception5;
                this.cr = false;
                this.bv = "Delete message command error (Timeout). " + exception3.Message;
                this.bw = 0x177aL;
                this.aj();
                flag4 = false;
                ProjectData.ClearProjectError();
                return flag4;
            }
        Label_030E:
            Thread.Sleep((int) Math.Round((double) (((double) this.ar) / 2.0)));
            str2 = this.p();
            if (((str2.Length > 0) & str2.ToUpper().Contains("OK")) & !str2.ToUpper().Contains("ERROR"))
            {
                flag3 = true;
                goto Label_03B0;
            }
            if (str2.ToUpper().Contains("ERROR"))
            {
                goto Label_03B0;
            }
            Application.DoEvents();
        Label_0383:
            if (!flag3 & (DateAndTime.DateDiff(DateInterval.Second, now, DateTime.Now, FirstDayOfWeek.Sunday, FirstWeekOfYear.Jan1) < (((double) this.ak) / 1000.0)))
            {
                goto Label_030E;
            }
        Label_03B0:
            this.cr = false;
            if (!flag3)
            {
                this.a.b("Modem Response: " + str2);
                this.bv = "Invalid response to delete message command";
                this.bw = 0x177bL;
                if (str2.Trim().Length <= 0)
                {
                    this.aj();
                }
                return false;
            }
            flag2 = true;
            if (i == array.GetUpperBound(0))
            {
                flag = true;
            }
            this.cn.Remove(array[i]);
        }
        if (flag2)
        {
            this.co.Remove(A_0.ToString());
        }
        if (flag)
        {
            flag4 = true;
        }
        this.cr = false;

⌨️ 快捷键说明

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