📄 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 + -