📄 f.cs
字号:
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 + -