⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kaaaaaaa.a

📁 gps
💻 A
📖 第 1 页 / 共 2 页
字号:
        /// </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 + -