?? kaaaaaaa.a
字號:
?using System;
using System.Collections.Generic;
using System.Text;
namespace GPSClassLibrary
{
/// <summary>
/// 緯度類型
/// </summary>
public enum LatitudeType:byte {
/// <summary>
/// 北緯
/// </summary>
North = (byte)'N',
/// <summary>
/// 南緯
/// </summary>
South = (byte)'S'
};
/// <summary>
/// 經度類型
/// </summary>
public enum LongitudeType:byte {
/// <summary>
/// 西經
/// </summary>
West = (byte)'W',
/// <summary>
/// 東經
/// </summary>
East = (byte)'E'
};
/// <summary>
/// GPS狀態
/// </summary>
public enum GPSState:byte {
/// <summary>
/// 已定位
/// </summary>
Located = 0x00,
/// <summary>
/// 未定位
/// </summary>
Unlocated = 0x01,
/// <summary>
/// 正在估算
/// </summary>
Calculating = 0x02
};
/// <summary>
/// 定位信息報文
/// </summary>
public class GPPI
{
#region 定位報文格式
//$GPPI,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>
//<1>UTC時間:時分秒(hhmmss)
//<2>機器編號
//<3>緯度:double
//<4>緯度半球N或S
//<5>經度:double
//<6>經度半球E或W
//<7>GPS狀態:0=未定位,1=已定位,2=正在估算
//<8>海拔高度:(-9999.9~9999.9)
#endregion
#region Pivate
//
DateTime utcTime;
string machineName = "Unname";
double latitude = 0.0;
LatitudeType latitudeType = LatitudeType.North;
double longitude = 0.0;
LongitudeType longitudeType = LongitudeType.East;
GPSState gps_state = GPSState.Calculating;
double height = 0;
#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 double Latitude
{
set { latitude = value; }
get { return latitude; }
}
/// <summary>
/// 緯度類型,南緯還是北緯
/// </summary>
public LatitudeType LatitudeType
{
set { latitudeType = value; }
get { return latitudeType; }
}
/// <summary>
/// 經度值
/// </summary>
public double Longitude
{
set { longitude = value; }
get { return longitude; }
}
/// <summary>
/// 經度類型,西經還是東經
/// </summary>
public LongitudeType LongitudeType
{
set { longitudeType = value; }
get { return longitudeType; }
}
/// <summary>
/// GPS的狀態
/// </summary>
public GPSState GPSState
{
set { gps_state = value; }
get { return gps_state; }
}
/// <summary>
/// 海拔高度
/// </summary>
public double Height
{
get { return height; }
set { height = value; }
}
#endregion
#region Constrution
/// <summary>
/// 用報文構造
/// </summary>
/// <param name="datagram"></param>
public GPPI(string datagram)
{
string[] splitStr = datagram.Split(@",".ToCharArray());
if (splitStr.Length != 9)
return;
try
{
utcTime = DateTime.Parse(splitStr[1]);
machineName = splitStr[2];
latitude = double.Parse(splitStr[3]);
latitudeType = (LatitudeType)byte.Parse(splitStr[4]);
longitude = double.Parse(splitStr[5]);
LongitudeType = (LongitudeType)byte.Parse(splitStr[6]);
gps_state = (GPSState)byte.Parse(splitStr[7]);
height = double.Parse(splitStr[8]);
}
catch
{
return;
}
}
#endregion
#region Method
/// <summary>
/// 輸出傳輸字符串
/// </summary>
/// <returns></returns>
public override string ToString()
{
// 產生時間
utcTime = new DateTime();
return @"$GPPI,"
+ utcTime.ToString() + ","
+ machineName + ","
+ latitude.ToString() + ","
+ latitudeType.ToString() + ","
+ longitude.ToString() + ","
+ longitudeType.ToString() + ","
+ gps_state.ToString() + ","
+ height.ToString()
+ "\n";
}
#endregion
}
/// <summary>
/// 狀態報文
/// </summary>
public class GPSI
{
#region 狀態報文格式
//狀態信息:
//$GPSI,<1>,<2>,<3>,<4>,<5>
//<1>UTC時間:時分秒(hhmmss)
//<2>機器編號
//<3>引擎溫度 單位攝氏度
//<4>剩余油量 百分數
//<5>負載量 單位公斤
#endregion
#region Private
DateTime utcTime ;
string machineName = "Unname";
float enginTemperature = 0.0f;
float oilSurplus = 100;
int heaviyness = 0;
#endregion
#region Construction
public GPSI(string datagram)
{
string[] splitStr = datagram.Split(@",".ToCharArray());
utcTime = DateTime.Parse(splitStr[1]);
machineName = splitStr[2];
enginTemperature = float.Parse(splitStr[3]);
oilSurplus = float.Parse(splitStr[4]);
heaviyness = int.Parse(splitStr[5]);
}
#endregion
#region Attribute
/// <summary>
/// 報文產生時間
/// </summary>
DateTime UTCTime
{
get { return utcTime; }
set { utcTime = value; }
}
/// <summary>
/// 機器名或叫機器編號
/// </summary>
string MachineName
{
set { machineName = value; }
get { return machineName; }
}
/// <summary>
/// 引擎溫度
/// </summary>
float EngineTemperature
{
set { enginTemperature = value; }
get { return enginTemperature; }
}
/// <summary>
/// 剩余油量
/// </summary>
float OilSurplus
{
set
{
oilSurplus = value;
if (oilSurplus > 100)
oilSurplus = 100;
else
if (oilSurplus < 0)
oilSurplus = 0;
}
get
{ return oilSurplus; }
}
/// <summary>
/// 負載量
/// </summary>
int Heavyness
{
set { heaviyness = value; }
get { return heaviyness; }
}
#endregion
#region Method
/// <summary>
/// 輸入報文字符串
/// </summary>
/// <returns></returns>
public override string ToString()
{
utcTime = new DateTime();
return @"$GPSI,"
+ machineName.ToString() + ","
+ enginTemperature.ToString() + ","
+ oilSurplus.ToString() + ","
+ heaviyness.ToString()
+ "\n";
}
#endregion
}
/// <summary>
/// 報警原因
/// </summary>
public enum AlarmReason : byte
{
/// <summary>
/// 無狀況
/// </summary>
None = 0x00,
/// <summary>
/// 資源缺乏
/// </summary>
ResourceLack = 0x01,
/// <summary>
/// 硬件故障
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -