?? sgip.cs
字號:
get { return _userNumber; }
set
{
apiHelper.CheckMaxBytes(value, 21);
_userNumber = apiHelper.Prefix86ForMobilbeNumber(value);
}
}
/// <summary>
/// 該命令所涉及的短消息的當(dāng)前執(zhí)行狀態(tài) 0:發(fā)送成功 1:等待發(fā)送 2:發(fā)送失敗
/// </summary>
public byte State
{
get
{
return _state;
}
set
{
_state = value;
}
}
/// <summary>
/// 當(dāng)State=2時(shí)為錯(cuò)誤碼值,否則為0
/// </summary>
public byte ErrorCode
{
get
{
return _errorCode;
}
set
{
_errorCode = value;
}
}
/// <summary>
/// 保留,最多8個(gè)字節(jié)
/// </summary>
public byte[] Reserved
{
get { return _reserved; }
set
{
apiHelper.CheckMaxBytes(value, 8);
_reserved = value;
}
}
#endregion
public override uint GetCommandID()
{
return Command.SGIP_REPORT;
}
public override int GetLength()
{
return 44;
}
public override byte[] GetBytes()
{
byte[] result = new byte[this.GetLength()];
int nIndex = 0;
_sequenceNumber.GetBytes().CopyTo(result, nIndex);
nIndex += _sequenceNumber.GetLength();
result[nIndex++] = _reportType;
Encoding.Default.GetBytes(_userNumber).CopyTo(result, nIndex);
nIndex += 21;
result[nIndex++] = _state;
result[nIndex++] = _errorCode;
_reserved.CopyTo(result, nIndex);
return result;
}
internal override void ReadFromBytes(byte[] buffer, int startIndex)
{
int nIndex = startIndex;
_sequenceNumber.ReadFromBytes(buffer, nIndex);
nIndex += _sequenceNumber.GetLength();
_reportType = buffer[nIndex++];
_userNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
nIndex += 21;
_state = buffer[nIndex++];
_errorCode = buffer[nIndex++];
Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
}
}
public class Report_Resp: ResponseBody
{
public override uint GetCommandID()
{
return Command.SGIP_REPORT_RESP;
}
}
/// <summary>
/// UserRpt命令和UserRpt_Resp應(yīng)答用于完成對用戶鑒權(quán)后,由SMG向手機(jī)用戶所注冊的SP發(fā)送命令,對手機(jī)用戶進(jìn)行狀態(tài)配置。
/// </summary>
public class UserRpt : Body
{
public override uint GetCommandID()
{
return Command.SGIP_USERRPT;
}
#region private member's
private string _spNumber = ""; //21, SP的接入號碼
private string _userNumber = ""; //21, 待配置的手機(jī)號碼,手機(jī)號碼前加“86”國別標(biāo)志
private byte _userCondition; //1, 0:注銷;1:欠費(fèi)停機(jī);2:恢復(fù)正常
private byte[] _reserved = new byte[8]; //保留,擴(kuò)展用
#endregion
#region public property's
/// <summary>
/// SP的接入號碼
/// </summary>
public string SPNumber
{
get { return _spNumber; }
set
{
apiHelper.CheckMaxBytes(value, 21);
_spNumber = value;
}
}
/// <summary>
/// 待配置的手機(jī)號碼,手機(jī)號碼前加“86”國別標(biāo)志
/// </summary>
public string UserNumber
{
get { return _userNumber; }
set
{
apiHelper.CheckMaxBytes(value, 21);
_userNumber = apiHelper.Prefix86ForMobilbeNumber(value);
}
}
/// <summary>
/// 0:注銷;1:欠費(fèi)停機(jī);2:恢復(fù)正常
/// </summary>
public byte UserCondition
{
get
{
return _userCondition;
}
set
{
_userCondition = value;
}
}
/// <summary>
/// 保留,最多8個(gè)字節(jié)
/// </summary>
public byte[] Reserved
{
get { return _reserved; }
set
{
apiHelper.CheckMaxBytes(value, 8);
_reserved = value;
}
}
#endregion
public override int GetLength()
{
return 51;
}
public override byte[] GetBytes()
{
byte[] result = new byte[this.GetLength()];
int nIndex = 0;
Encoding.Default.GetBytes(_spNumber).CopyTo(result, nIndex);
nIndex += 21;
Encoding.Default.GetBytes(_userNumber).CopyTo(result, nIndex);
nIndex += 21;
result[nIndex++] = _userCondition;
_reserved.CopyTo(result, nIndex);
return result;
}
internal override void ReadFromBytes(byte[] buffer, int startIndex)
{
int nIndex = startIndex;
_spNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
nIndex += 21;
_userNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
nIndex += 21;
_userCondition = buffer[nIndex++];
Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
}
}
/// <summary>
/// UserRpt命令和UserRpt_Resp應(yīng)答用于完成對用戶鑒權(quán)后,由SMG向手機(jī)用戶所注冊的SP發(fā)送命令,對手機(jī)用戶進(jìn)行狀態(tài)配置。
/// </summary>
public class UserRpt_Resp : ResponseBody
{
public override uint GetCommandID()
{
return Command.SGIP_USERRPT_RESP;
}
}
public class Trace : Body
{
#region private members
private SequenceNumber _sequenceNumber = new SequenceNumber(); //12, 被跟蹤MT短消息的命令序列號
private string _userNumber = ""; //21, 接收短消息的手機(jī)號,手機(jī)號碼前加“86”國別標(biāo)志
private byte[] _reserved = new byte[8]; // 保留,最多8個(gè)字節(jié)
#endregion
#region public propertys
/// <summary>
/// 被跟蹤MT短消息的命令序列號
/// </summary>
public SequenceNumber SequenceNumber
{
get { return _sequenceNumber; }
set { _sequenceNumber = value; }
}
/// <summary>
/// 接收短消息的手機(jī)號,手機(jī)號碼前加“86”國別標(biāo)志
/// </summary>
public string UserNumber
{
get { return _userNumber; }
set
{
apiHelper.CheckMaxBytes(value, 21);
_userNumber = apiHelper.Prefix86ForMobilbeNumber(value);
}
}
/// <summary>
/// 保留,最多8個(gè)字節(jié)
/// </summary>
public byte[] Reserved
{
get { return _reserved; }
set
{
apiHelper.CheckMaxBytes(value, 8);
_reserved = value;
}
}
#endregion
public override uint GetCommandID()
{
return Command.SGIP_TRACE;
}
public override int GetLength()
{
return 41;
}
public override byte[] GetBytes()
{
byte[] result = new byte[this.GetLength()];
int nIndex = 0;
_sequenceNumber.GetBytes().CopyTo(result, nIndex);
nIndex += _sequenceNumber.GetLength();
Encoding.Default.GetBytes(_userNumber).CopyTo(result, nIndex);
nIndex += 21;
_reserved.CopyTo(result, nIndex);
return result;
}
internal override void ReadFromBytes(byte[] buffer, int startIndex)
{
int nIndex = startIndex;
_sequenceNumber.ReadFromBytes(buffer, nIndex);
nIndex += _sequenceNumber.GetLength();
_userNumber = apiHelper.GetASCIIString(buffer, nIndex, 21);
nIndex += 21;
Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
}
}
public class Trace_Resp: Body
{
private byte _count; //1, 被跟蹤MT短消息經(jīng)過的節(jié)點(diǎn)個(gè)數(shù),當(dāng)被跟蹤短消息經(jīng)過多個(gè)節(jié)點(diǎn)時(shí),以下各個(gè)字段可重復(fù)
private byte _result; //1, Trace命令在該節(jié)點(diǎn)是否成功接收。十六進(jìn)制數(shù)字 0:接收成功 1:等待處理 其它:錯(cuò)誤碼
private string _nodeId = ""; //6, 節(jié)點(diǎn)編號
private string _receiveTime = ""; //16, 被跟蹤的短消息到達(dá)該節(jié)點(diǎn)時(shí)刻,格式為“yymmddhhmmss”
private string _sendTime = ""; //16, 該節(jié)點(diǎn)發(fā)出被跟蹤的短消息時(shí)刻,格式為“yymmddhhmmss”
private byte[] _reserved = new byte[8]; //保留,擴(kuò)展用
/// <summary>
/// 被跟蹤MT短消息經(jīng)過的節(jié)點(diǎn)個(gè)數(shù),當(dāng)被跟蹤短消息經(jīng)過多個(gè)節(jié)點(diǎn)時(shí),以下各個(gè)字段可重復(fù)
/// </summary>
public byte Count
{
get
{
return _count;
}
set
{
_count = value;
}
}
/// <summary>
/// Trace命令在該節(jié)點(diǎn)是否成功接收。十六進(jìn)制數(shù)字 0:接收成功 1:等待處理 其它:錯(cuò)誤碼
/// </summary>
public byte Result
{
get
{
return _result;
}
set
{
_result = value;
}
}
/// <summary>
/// 節(jié)點(diǎn)編號
/// </summary>
public string NodeId
{
get { return _nodeId; }
set
{
apiHelper.CheckMaxBytes(value, 6);
_nodeId = value;
}
}
/// <summary>
/// 被跟蹤的短消息到達(dá)該節(jié)點(diǎn)時(shí)刻,格式為“yymmddhhmmss”
/// </summary>
public string ReceiveTime
{
get { return _receiveTime; }
set
{
apiHelper.CheckMaxBytes(value, 16);
_receiveTime = value;
}
}
/// <summary>
/// 該節(jié)點(diǎn)發(fā)出被跟蹤的短消息時(shí)刻,格式為“yymmddhhmmss”
/// </summary>
public string SendTime
{
get { return _sendTime; }
set
{
apiHelper.CheckMaxBytes(value, 16);
_sendTime = value;
}
}
/// <summary>
/// 保留,最多8個(gè)字節(jié)
/// </summary>
public byte[] Reserved
{
get { return _reserved; }
set
{
apiHelper.CheckMaxBytes(value, 8);
_reserved = value;
}
}
public override uint GetCommandID()
{
return Command.SGIP_TRACE_RESP;
}
public override byte[] GetBytes()
{
byte[] buffer = new byte[this.GetLength()];
int nIndex = 0;
buffer[nIndex++] = _count;
buffer[nIndex++] = _result;
Encoding.ASCII.GetBytes(_nodeId).CopyTo(buffer, nIndex);
nIndex += 6;
Encoding.ASCII.GetBytes(_receiveTime).CopyTo(buffer, nIndex);
nIndex += 16;
Encoding.ASCII.GetBytes(_sendTime).CopyTo(buffer, nIndex);
nIndex += 16;
_reserved.CopyTo(buffer, nIndex);
return buffer;
}
public override int GetLength()
{
return 48;
}
internal override void ReadFromBytes(byte[] buffer, int startIndex)
{
int nIndex = startIndex;
_count = buffer[nIndex++];
_result = buffer[nIndex++];
_nodeId = apiHelper.GetASCIIString(buffer, nIndex, 6);
nIndex += 6;
_receiveTime = apiHelper.GetASCIIString(buffer, nIndex, 16);
nIndex += 16;
_sendTime = apiHelper.GetASCIIString(buffer, nIndex, 16);
nIndex += 16;
Buffer.BlockCopy(buffer, nIndex, _reserved, 0, 8);
}
}
/// <summary>
/// 自定義的命令
/// </summary>
public class KeepAlive : Body
{
public override uint GetCommandID()
{
return Command.SGIP_KEEPALIVE;
}
}
/// <summary>
/// 自定義的命令
/// </summary>
public class KeepAlive_Resp : Body
{
public override uint GetCommandID()
{
return Command.SGIP_KEEPALIVE_RESP;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -