?? kaaaaaaa.a
字號:
/// </summary>
HarewareError = 0x2,
/// <summary>
/// 遇匪
/// </summary>
Robber = 0x10,
/// <summary>
/// 自然災害
/// </summary>
NaturalDisaster = 0x20
}
/// <summary>
/// 報警報文
/// </summary>
public class GPAI
{
#region 報警報文格式
//$GPAI,<1>,<2>,<3>,<4>,<5>
//<1>UTC時間:時分秒(hhmmss)
//<2>機器編號
//<3>1=資源缺乏|2=硬件故障|4=遇匪|8=撞車|16=自然災難
#endregion
#region Private
DateTime utcTime;
string machineName;
AlarmReason alarmReason = AlarmReason.None;
#endregion
#region Constrution
public GPAI(string datagram)
{
string[] splitStr = datagram.Split(@",".ToCharArray());
utcTime = DateTime.Parse(splitStr[1]);
machineName = splitStr[2];
alarmReason = (AlarmReason)byte.Parse(splitStr[3]);
}
#endregion
#region Attribute
/// <summary>
/// 報文產生時間
/// </summary>
public DateTime UTCTime
{
get { return utcTime; }
set { utcTime = value; }
}
/// <summary>
/// 機器名或叫機器編號
/// </summary>
public string MachineName
{
set { machineName = value; }
get { return machineName; }
}
/// <summary>
/// 報警原因
/// </summary>
public AlarmReason AlarmReason
{
set { alarmReason = value; }
get { return alarmReason; }
}
#endregion
#region Method
/// <summary>
/// 輸入傳輸報文
/// </summary>
/// <returns></returns>
public override string ToString()
{
utcTime = new DateTime();
return @"$GPAI,"
+ utcTime.ToString() + ","
+ machineName + ","
+ alarmReason.ToString()
+ "\n";
}
#endregion
}
/// <summary>
/// 請求狀態報文
/// </summary>
public class GPRS
{
#region 請求狀態信息報文格式
//主機->從機:
//請求狀態信息
//$GPRSI,<1>
//<1>UTC時間:時分秒(hhmmss)
#endregion
#region Private
DateTime utcTime;
#endregion
#region Constrution
public GPRS(string datagram)
{
string[] splitStr = datagram.Split(@",".ToCharArray());
utcTime = DateTime.Parse(splitStr[1]);
}
#endregion
#region Attribute
/// <summary>
/// 報文產生時間
/// </summary>
DateTime UTCTime
{
set { utcTime = value; }
get { return utcTime; }
}
#endregion
#region Method
/// <summary>
/// 輸入報文字符串
/// </summary>
/// <returns></returns>
public override string ToString()
{
utcTime = new DateTime();
return @"$GPRSI,"
+ utcTime.ToString()
+ "\n";
}
#endregion
}
/// <summary>
/// GPS命令
/// </summary>
public enum GPCommand : byte
{
/// <summary>
/// 無
/// </summary>
None = 0x00,
/// <summary>
/// 斷油
/// </summary>
StopOiling = 0x1,
/// <summary>
/// 斷水
/// </summary>
StopWater = 0x2,
/// <summary>
/// 熄火,關引擎
/// </summary>
CloseEngine = 0x4,
/// <summary>
/// 鎖車匙
/// </summary>
Lock = 0x10,
/// <summary>
/// 鎖檔
/// </summary>
LockShift = 0x20
}
/// <summary>
/// 命令報文
/// </summary>
public class GPCD
{
#region 命令報文格式
//$GPCP,<1>,<2>
//類型:1B 固定為00H
//<1>UTC時間:時分秒(hhmmss)
//<2>1=斷油|2=斷水|4=關引擎|8=鎖車匙|16=鎖檔
#endregion
#region Private
DateTime utcTime;
GPCommand gpCommand = GPCommand.None;
#endregion
#region Constrution
public GPCD(string datagram)
{
string[] splitStr = datagram.Split(@",".ToCharArray());
utcTime = DateTime.Parse(splitStr[1]);
gpCommand = (GPCommand)byte.Parse(splitStr[2]);
}
#endregion
#region Attribute
/// <summary>
/// 報文產生時間
/// </summary>
public DateTime UTCTime
{
set { utcTime = value; }
get { return utcTime; }
}
/// <summary>
/// 命令內容
/// </summary>
public GPCommand GPCommand
{
set { gpCommand = value; }
get { return gpCommand; }
}
#endregion
#region Method
public override string ToString()
{
utcTime = new DateTime();
return @"$GDCP,"
+ utcTime.ToString() + ","
+ gpCommand.ToString()
+ "\n";
}
#endregion
}
/// <summary>
/// 報文類型
/// </summary>
public enum PackageType : byte
{
/// <summary>
/// 非定義類型
/// </summary>
Undefine = 0xFF,
/// <summary>
/// 定位報文
/// </summary>
GPPI = 0x00,
/// <summary>
/// 狀態報文
/// </summary>
GPSI = 0x01,
/// <summary>
/// 報警報文
/// </summary>
GPAI = 0x02,
/// <summary>
/// 請求狀態報文報文
/// </summary>
GPRS = 0x3,
/// <summary>
/// 命令報文
/// </summary>
GPCD = 0x4
}
public class PackageFactory
{
/// <summary>
/// 獲得報文的類型
/// </summary>
/// <param name="datagram"></param>
/// <returns></returns>
public static PackageType GetPackageType(string datagram)
{
string[] TypePreString = { "$GPPI", "$GPSI", "$GPAI", "$GPRS", "$GPCD" };
for (int i = 0; i < TypePreString.Length; i++)
{
if (datagram.StartsWith(TypePreString[i]))
return (PackageType)i;
}
return PackageType.Undefine;
}
/// <summary>
/// 通過數據報字符串構造實例
/// </summary>
/// <param name="datagram">數據報字符串</param>
/// <returns></returns>
public static GPPI CreateGPPI(string datagram)
{
return new GPPI(datagram);
}
/// <summary>
/// 通過數據報字符串構造實例
/// </summary>
/// <param name="datagram">數據報字符串</param>
/// <returns></returns>
public static GPSI CreateGPSI(string datagram)
{
return new GPSI(datagram);
}
/// <summary>
/// 通過數據報字符串構造實例
/// </summary>
/// <param name="datagram">數據報字符串</param>
/// <returns></returns>
public static GPAI CreateGPAI(string datagram)
{
return new GPAI(datagram);
}
/// <summary>
/// 通過數據報字符串構造實例
/// </summary>
/// <param name="datagram">數據報字符串</param>
/// <returns></returns>
public static GPRS CreateGPRS(string datagram)
{
return new GPRS(datagram);
}
/// <summary>
/// 通過數據報字符串構造實例
/// </summary>
/// <param name="datagram">數據報字符串</param>
/// <returns></returns>
public static GPCD CreateGPCD(string datagram)
{
return new GPCD(datagram);
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -