245 lines
8.9 KiB
C#
245 lines
8.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using AndroidLIB;
|
|
|
|
namespace AndroidLIB
|
|
{
|
|
public class RadioMSG:MSG
|
|
{
|
|
public int rOpcode;
|
|
public int gwID;
|
|
public int rgwID;
|
|
public int zoneNr;
|
|
public int channelNr;
|
|
public int sc_id;
|
|
public int status;
|
|
public int emerg;
|
|
|
|
public int radioID;
|
|
public int groupID;
|
|
|
|
public string userID;
|
|
|
|
public RadioMSG(byte[] data, int dataLen)
|
|
: base(data, dataLen)
|
|
{
|
|
Parse();
|
|
}
|
|
public RadioMSG(MSG m)
|
|
: base(m._rawdata, m._len)
|
|
{
|
|
Parse();
|
|
}
|
|
|
|
private void Parse()
|
|
{
|
|
if (OK)
|
|
{
|
|
SMd.Debug("RadioMSG parsing :" + data);
|
|
string forParsing = data;
|
|
|
|
string[] tempArr = forParsing.Split('#');
|
|
|
|
rOpcode = Int32.Parse(tempArr[0]);
|
|
|
|
SMd.Debug("RadioOpCode " + rOpcode);
|
|
|
|
switch (rOpcode)
|
|
{
|
|
case (int)Radio_MSG_type.gw_list_req:
|
|
{
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.gw_zone_channel_req:
|
|
{
|
|
try
|
|
{
|
|
gwID = Int32.Parse(tempArr[1]);
|
|
rgwID = Int32.Parse(tempArr[2]);
|
|
zoneNr = Int32.Parse(tempArr[3]);
|
|
channelNr = Int32.Parse(tempArr[4]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.su_enable_disable_req:
|
|
{
|
|
SMd.Debug("su_enable_disable_req");
|
|
|
|
try
|
|
{
|
|
sc_id = Int32.Parse(tempArr[1]);
|
|
status = Int32.Parse(tempArr[2]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.poll_req:
|
|
{
|
|
try
|
|
{
|
|
sc_id = Int32.Parse(tempArr[1]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.dekey_req:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.emerg_req:
|
|
{
|
|
try
|
|
{
|
|
//sc_id = Int32.Parse(tempArr[1]);
|
|
emerg = Int32.Parse(tempArr[1]);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.ptt_all_init:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
userID = tempArr[2];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.ptt_grp_init:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
groupID = Int32.Parse(tmpArr2[2]);
|
|
|
|
userID = tempArr[2];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.ptt_prv_init:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
radioID = Int32.Parse(tmpArr2[2]);
|
|
|
|
userID = tempArr[2];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.ptt_all_stop:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
radioID = Int32.Parse(tmpArr2[2]);
|
|
|
|
userID = tempArr[2];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.ptt_grp_stop:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
radioID = Int32.Parse(tmpArr2[2]);
|
|
|
|
userID = tempArr[2];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.ptt_prv_stop:
|
|
{
|
|
try
|
|
{
|
|
String tmp = tempArr[1];
|
|
string[] tmpArr2 = tmp.Split('.');
|
|
gwID = Int32.Parse(tmpArr2[0]);
|
|
rgwID = Int32.Parse(tmpArr2[1]);
|
|
radioID = Int32.Parse(tmpArr2[2]);
|
|
|
|
userID = tempArr[2];
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
SMd.Debug(ex.ToString());
|
|
}
|
|
break;
|
|
}
|
|
case (int)Radio_MSG_type.gw_status_req:
|
|
{
|
|
break;
|
|
}
|
|
|
|
default:
|
|
SMd.Debug("Unknown rOPcode:" + rOpcode);
|
|
break;
|
|
}//endswitch
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|