193 lines
6.6 KiB
C#
193 lines
6.6 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
|
|||
|
namespace AndroidLIB
|
|||
|
{
|
|||
|
public class AndroidMSG:MSG
|
|||
|
{
|
|||
|
public int gwIMEI;
|
|||
|
public string radioIP;
|
|||
|
public String userID = "";
|
|||
|
public string smsTXT = "";
|
|||
|
public String seqIDsms = "";
|
|||
|
public int smsSCID = -1;
|
|||
|
public int timeGMT = 0;
|
|||
|
|
|||
|
public int his_sc_id = 0;
|
|||
|
public int his_startGMT = 0;
|
|||
|
public int his_stopGMT = 0;
|
|||
|
|
|||
|
public int alarm_id = 0;
|
|||
|
public int alarm_type = 0;
|
|||
|
|
|||
|
public int gw_id = 0;
|
|||
|
public int radio_gw_id = 0;
|
|||
|
public Int64 play_id = 0;
|
|||
|
public string unitName = "";
|
|||
|
|
|||
|
public string sourceIP;
|
|||
|
|
|||
|
public AndroidMSG(byte[] data, int dataLen, string sourceIP)
|
|||
|
: base(data, dataLen)
|
|||
|
{
|
|||
|
SMd.Debug("AndroidMSG constructor");
|
|||
|
this.sourceIP = sourceIP;
|
|||
|
Parse();
|
|||
|
}
|
|||
|
|
|||
|
private void Parse()
|
|||
|
{
|
|||
|
switch (base.opCode)
|
|||
|
{
|
|||
|
case (int)Android_MSG_type.Init_req:
|
|||
|
{
|
|||
|
string dat = base.data.Replace("#", "");
|
|||
|
if ((dat.Split('&')).Length > 1)
|
|||
|
{
|
|||
|
radioIP = (dat.Split('&'))[0];
|
|||
|
gwIMEI = Int32.Parse((dat.Split('&'))[1]);
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
case (int)Android_MSG_type.Login_List_req:
|
|||
|
{
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case (int)Android_MSG_type.Veh_req:
|
|||
|
{
|
|||
|
string dat = base.data.Replace("#", "");
|
|||
|
userID = dat;
|
|||
|
break;
|
|||
|
}
|
|||
|
case (int)Android_MSG_type.Recording_req:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
int i;
|
|||
|
string dat = temparr[0];
|
|||
|
//data not OK ... mark message as corupted!!!
|
|||
|
if (!Int32.TryParse(dat, out i))
|
|||
|
{
|
|||
|
base.OK = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
userID = dat;
|
|||
|
gw_id = Int32.Parse(temparr[1]);
|
|||
|
radio_gw_id = Int32.Parse(temparr[2]);
|
|||
|
break;
|
|||
|
}
|
|||
|
case (int)Android_MSG_type.SMS_req:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
int i;
|
|||
|
string dat = temparr[0];
|
|||
|
//data not OK ... mark message as corupted!!!
|
|||
|
if (!Int32.TryParse(dat, out i))
|
|||
|
{
|
|||
|
base.OK = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
smsSCID = Int32.Parse(dat);
|
|||
|
|
|||
|
timeGMT = Int32.Parse(temparr[1]);
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case (int)Android_MSG_type.Alarmhistory_req:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
userID = temparr[0];
|
|||
|
break;
|
|||
|
}
|
|||
|
case (int)Android_MSG_type.AlarmAck_req:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
int i;
|
|||
|
string dat = temparr[0];
|
|||
|
//data not OK ... mark message as corupted!!!
|
|||
|
if (!Int32.TryParse(dat, out i))
|
|||
|
{
|
|||
|
base.OK = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
alarm_id = Int32.Parse(dat);
|
|||
|
alarm_type = Int32.Parse(temparr[1]);
|
|||
|
userID = temparr[2];
|
|||
|
unitName = temparr[3];
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case (int)Android_MSG_type.SMS_last_req:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
userID = temparr[0];
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case (int)Android_MSG_type.LastPos_req:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
userID =temparr[0];
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case (int)Android_MSG_type.RecordPlay_req:
|
|||
|
{
|
|||
|
string dat = base.data.Replace("#", "");
|
|||
|
play_id = Int64.Parse(dat);
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
case (int)Android_MSG_type.SMS_send:
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
//data not OK ... mark message as corupted!!!
|
|||
|
if(temparr.Length < 3)
|
|||
|
{
|
|||
|
base.OK = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
int i;
|
|||
|
//data not OK ... mark message as corupted!!!
|
|||
|
if (!Int32.TryParse(temparr[1], out i))
|
|||
|
{
|
|||
|
base.OK = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
seqIDsms = base.seqID;
|
|||
|
userID = temparr[0];
|
|||
|
//SeqID = temparr[0];
|
|||
|
smsSCID = Int32.Parse(temparr[1]);
|
|||
|
smsTXT = temparr[2];
|
|||
|
break;
|
|||
|
}
|
|||
|
case (int)Android_MSG_type.GPShistory_req:
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string[] temparr = base.data.Split('#');
|
|||
|
|
|||
|
his_sc_id = Int32.Parse(temparr[0]);
|
|||
|
his_startGMT = Int32.Parse(temparr[1]);
|
|||
|
his_stopGMT = Int32.Parse(temparr[2]);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
base.OK = false;
|
|||
|
SMd.Debug(ex.ToString());
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
default:
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|