Exemple #1
0
 public KaiYanDataParser(TransfersType t, string codefix,IGPSDataProcessor Storage)
     : base(t,Storage)
 {
     base.TransfersType = t;
     base.CodePrefix = codefix;
     _ProcessAppLayerCmd = new ProcessAppLayerCmd(this);
     _ProcessAppLayerCmd.SendAnswerToWebEvent += new ProcessAppLayerCmd.SendAnswerToWebHandler(base
         .OnSendAnswerToWebEvent);
     _ProcessAppLayerCmd.SendDataEvent += new ProcessAppLayerCmd.SendDataHandler(base.OnSendDataEvent);
 }
Exemple #2
0
        public QueryIncomingTransfersParameters(TransfersType transfersType)
        {
            switch (transfersType)
            {
            case TransfersType.All:
                TransfersTypeString = "all";
                break;

            case TransfersType.Available:
                TransfersTypeString = "available";
                break;

            case TransfersType.Unavailable:
                TransfersTypeString = "unavailable";
                break;
            }
        }
Exemple #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 protected AnalyseBase(TransfersType t,IGPSDataProcessor Storage)
 {
     _TransfersType = t;
     _StorageService = Storage;
 }
        /// <summary>
        /// 解析GPS数据
        /// </summary>
        /// <param name="transferType">传输数据的协议类型:如TCP、UDP</param>
        /// <param name="buf">接收到的byte数据</param>
        /// <param name="aResponseList">需返回的应答数据</param>
        /// <param name="gpsCode">解析后输出的GPSCode</param>
        /// <param name="sessionID">会话ID</param>
        /// <returns></returns>
        public List<GPSDataEntity> Parse(TransfersType transferType, byte[] buf, out List<byte[]> aResponseList, out string fullGpsCode, string sessionID)
        {
            string gpscode = GetGpsCodeByBytes(buf);
            fullGpsCode = base.CodePrefix + gpscode;
            aResponseList = new List<byte[]>();
            if (buf[2] != 0x85)
                aResponseList.Add(BoShiJieInstructionSet.CenterReply(buf));

            LongHanData gpsData = null;
            List<GPSDataEntity> ObjectList = new List<GPSDataEntity>();

            bool blnIsPosData = false;
            var robberyImageSetting = BoShiJieVehicleSettings.Instance.SendRobberyImageSetting(fullGpsCode);
            if (robberyImageSetting != null)
                aResponseList.Add(robberyImageSetting);



            switch (buf[2])
            {
                case 0xB1://握手
                    if (String.IsNullOrEmpty(gpscode))
                        break;
                    if (transferType == TransfersType.IsTcp)
                    {
                        OnAddConnectionEvent(fullGpsCode, sessionID);
                    }
                    else
                    {
                        var reply = BoShiJieInstructionSet.CenterReply(buf);
                        string[] strremortpoint = sessionID.Split(':');
                        IPEndPoint ippoint = new IPEndPoint(IPAddress.Parse(strremortpoint[0]), int.Parse(strremortpoint[1]));
                        OnSendDataEvent((EndPoint)ippoint, reply);
                        OnAddConnectionEvent(fullGpsCode, sessionID);
                    }

                    break;
                case 0x80://主发位置数据
                    gpsData = GPSDataDecoder(buf); //数据解析

                    //将连接加入连接集合,如果是连接后的第一点数据,则同时会更新路由关系表
                    //注意UpdateFirstDataRela的先后关系
                    if (!String.IsNullOrEmpty(gpsData.FullGpsCode))
                    {
                        OnAddConnectionEvent(gpsData.FullGpsCode, sessionID);
                    }
                    //更新上一次数据
                    if (TCPConnList.Instance().IsFirstDataOfConn(sessionID))
                    {
                        //更改记录状态,标明以后的数据已不是第一点数据
                        TCPConnList.Instance().UpdateFirstDataRela(sessionID, 0);
                    }

                    ObjectList.Add(gpsData.BaseData);
                    blnIsPosData = true;
                    break;
                case 0x8E://补传位置数据
                    try
                    {
                        gpsData = GPSDataDecoder(buf); //数据补传解析
                        ComputeMileAgeAndVerifyDataForFetch(ref gpsData, mMaxSpeedMeterPerSecond);
                        ObjectList.Add(gpsData.BaseData);
                    }
                    catch { }
                    break;
                case 0x85://终端应答
                    OnPostSendAnswerHandlerEvent(string.Empty, true, fullGpsCode, ControlCmdType.LongHanAnswered, true);
                    //updated by lixun on 2010/12/10 博实结协议由3字节里程变为4字节后,80/81/85/8E数据格式都一样
                    //gpsData = ConvertBytesToEntity(buf);
                    gpsData = GPSDataDecoder(buf);
                    ObjectList.Add(gpsData.BaseData);
                    Logger.Trace("[终端应答]--" + gpsData.FullGpsCode);
                    break;
                case 0x8D://图片帧数据
                    ProcessPictureFrame(buf);
                    break;
                default:
                    break;
            }

            #region 备份

            //switch (transferType)
            //{
            //    //若是TCP的数据,只做解析,不存数据库
            //    case TransfersType.IsTcp:
            //        if (buf[2] == 0xB1)
            //        {
            //            if (!String.IsNullOrEmpty(gpscode))
            //            {
            //                OnAddConnectionEvent(gpsCode, sessionID);

            //                var robberyImageSetting = LongHanVehicleSettings.Instance.SendRobberyImageSetting(gpsCode);
            //                if (robberyImageSetting != null)
            //                    aResponseList.Add(robberyImageSetting);
            //            }
            //        }
            //        else if (buf[2] == 0x85)
            //        {
            //            OnPostSendAnswerHandlerEvent(string.Empty, true, gpsCode, ControlCmdType.LongHanAnswered, true);
            //            gpsData = ConvertBytesToEntity(buf);
            //            //ObjectList.Add(gpsData.BaseData);

            //        }
            //        else if (buf[2] == 0x80)
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据解析

            //            //将连接加入连接集合,如果是连接后的第一点数据,则同时会更新路由关系表
            //            //注意UpdateFirstDataRela的先后关系
            //            if (!String.IsNullOrEmpty(gpsData.FullGpsCode))
            //            {
            //                OnAddConnectionEvent(gpsData.FullGpsCode, sessionID);
            //                gpsCode = gpsData.FullGpsCode;

            //                var robberyImageSetting = LongHanVehicleSettings.Instance.SendRobberyImageSetting(gpsCode);
            //                if (robberyImageSetting != null)
            //                    aResponseList.Add(robberyImageSetting);
            //            }
            //            //更新上一次数据
            //            if (TCPConnList.Instance().IsFirstDataOfConn(sessionID))
            //            {
            //                //更新上一点数据
            //                CacheUtility.UpdateLastGPSData(gpsData.FullGpsCode);

            //                //更改记录状态,标明以后的数据已不是第一点数据
            //                TCPConnList.Instance().UpdateFirstDataRela(sessionID, 0);
            //            }

            //            //获取上一个GPS数据点
            //            GPSDataEntity aLastData = GetLastGPSData(gpsData.FullGpsCode);

            //            //根据上一点计算里程
            //            ComputeMileAgeAndVerifyData(ref gpsData, aLastData, mMaxSpeedMeterPerSecond);

            //            ObjectList.Add(gpsData.BaseData);
            //            blnIsPosData = true;
            //        }
            //        else if (buf[2] == 0x8E)//补传数据
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据补传解析
            //            ComputeMileAgeAndVerifyDataForFetch(ref gpsData, mMaxSpeedMeterPerSecond);
            //            ObjectList.Add(gpsData.BaseData);
            //        }
            //        else if (buf[2] == 0x8D)
            //        {
            //            ProcessPictureFrame(buf);
            //        }
            //        break;

            //    default:
            //        if (buf[2] == 0xB1)
            //        {
            //            var reply = LongHanInstructionSet.CenterReply(buf);
            //            string[] strremortpoint = sessionID.Split(':');
            //            IPEndPoint ippoint = new IPEndPoint(IPAddress.Parse(strremortpoint[0]), int.Parse(strremortpoint[1]));
            //            OnSendDataEvent((EndPoint)ippoint, reply);
            //            OnAddConnectionEvent(gpsCode, sessionID);

            //        }
            //        //else //应答数据
            //        if (buf[2] == 0x85)
            //        {
            //            OnPostSendAnswerHandlerEvent(string.Empty, true, gpsCode, ControlCmdType.LongHanAnswered, true);
            //            gpsData = ConvertBytesToEntity(buf);
            //            //ObjectList.Add(gpsData.BaseData);
            //        }

            //        else if (buf[2] == 0x80)//位置数据
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据解析

            //            //将连接加入连接集合,如果是连接后的第一点数据,则同时会更新路由关系表
            //            //注意UpdateFirstDataRela的先后关系
            //            if (!String.IsNullOrEmpty(gpsData.FullGpsCode))
            //            {
            //                OnAddConnectionEvent(gpsData.FullGpsCode, sessionID);
            //            }
            //            //更新上一次数据
            //            if (TCPConnList.Instance().IsFirstDataOfConn(sessionID))
            //            {
            //                //更新上一点数据
            //                CacheUtility.UpdateLastGPSData(gpsData.FullGpsCode);

            //                //更改记录状态,标明以后的数据已不是第一点数据
            //                TCPConnList.Instance().UpdateFirstDataRela(sessionID, 0);
            //            }

            //            //获取上一个GPS数据点
            //            GPSDataEntity aLastData = GetLastGPSData(gpsData.FullGpsCode);

            //            //根据上一点计算里程
            //            ComputeMileAgeAndVerifyData(ref gpsData, aLastData, mMaxSpeedMeterPerSecond);

            //            ObjectList.Add(gpsData.BaseData);
            //            blnIsPosData = true;

            //        }
            //        else if (buf[2] == 0x8E)//补传数据
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据补传解析
            //            ComputeMileAgeAndVerifyDataForFetch(ref gpsData, mMaxSpeedMeterPerSecond);
            //            ObjectList.Add(gpsData.BaseData);
            //        }
            //        else if (buf[2] == 0x8D) //图片回传数据
            //        {
            //            ProcessPictureFrame(buf);
            //        }
            #endregion

            if (gpsData != null)
            {
                LongHanData aLongHanDataGpsData = gpsData as LongHanData;

                if (blnIsPosData)
                {
                    if (aLongHanDataGpsData.BaseData.PlunderState == 0)
                    {
                        aResponseList = new List<byte[]>();

                        aResponseList.Add(CreateCancelAlarmMessage(buf));
                    }
                }
                //gpsCode = aLongHanDataGpsData.BaseData.GPSCode;
            }
            //        break;

            //}
            return ObjectList;
        }
        //private static void UpdatePhotoingType(string strGPSCode, byte PhotoingType)
        //{
        //    Logger.Info("[拍照]设置拍照类型:GPSCode:" + strGPSCode + "--PhotoingType:" + PhotoingType.ToString());
        //    lock (CurPhotoingType)
        //    {
        //        if (CurPhotoingType.ContainsKey(strGPSCode))
        //            CurPhotoingType[strGPSCode] = PhotoingType;
        //        else
        //            CurPhotoingType.Add(strGPSCode, PhotoingType);
        //    }

        //}

        public BoShiJieDataParser(TransfersType t, string codefix, IGPSDataProcessor Storage)
            : base(t, Storage)
        {
            //照片最大上传时间
            TAKEPICTURETIMEOUT = 80;

            base.TransfersType = t;
            base.CodePrefix = codefix;
            if (t == TransfersType.IsTcp)
            {
                BoShiJiePictures.Instance.ParserTCP = this;
                _ProcessAppLayerCmd = new ProcessAppLayerCmd(this);
                _ProcessAppLayerCmd.SendAnswerToWebEvent += new ProcessAppLayerCmd.SendAnswerToWebHandler(base
                    .OnSendAnswerToWebEvent);
                _ProcessAppLayerCmd.SendDataEvent += new ProcessAppLayerCmd.SendDataHandler(base.OnSendDataEvent);
            }

            //拍照路径
            PhotoPath = ConfigHelper.GetConfig("PhotoPath");

            if (t == TransfersType.IsUdp)
            {
                BoShiJiePictures.Instance.ParserUDP = this;
                BoShiJieVehicleSettings.Instance.Parser = this;
                ClearEvent += new ClearEnvironment(BoShiJiePictures.Instance.RemovePic);
                HardwareSendPic = new Dictionary<string, BoShiJiePicture>();
            }
        }
Exemple #6
0
        /// <summary> 将接收到的数据加入队列
        /// 
        /// </summary>
        /// <param name="receivedBytes"></param>
        //public override void AddInBytesQueue(SessionData sessionData)
        //{
        //    lock (ReceivedBytesQueue)
        //    {
        //        ReceivedBytesQueue.Enqueue(sessionData);
        //    }
        //}       

        public DiBiaoDataParser(TransfersType t, string codefix,IGPSDataProcessor Storage)
            : base(t,Storage)
        {
            //base.StorageService = Storage;
            base.TransfersType = t;
            base.CodePrefix = codefix;
            _ProcessAppLayerCmd = new ProcessAppLayerCmd(this);
            _ProcessAppLayerCmd.SendAnswerToWebEvent += new ProcessAppLayerCmd.SendAnswerToWebHandler(base
                .OnSendAnswerToWebEvent);
            _ProcessAppLayerCmd.SendDataEvent += new ProcessAppLayerCmd.SendDataHandler(base.OnSendDataEvent);
            //拍照初始化数据
            InitData();            
        }       
        /// <summary>
        /// 解析GPS数据
        /// </summary>
        /// <param name="transferType">传输数据的协议类型:如TCP、UDP</param>
        /// <param name="buf">接收到的byte数据</param>
        /// <param name="aResponseList">需返回的应答数据</param>
        /// <param name="gpsCode">解析后输出的GPSCode</param>
        /// <param name="sessionID">会话ID</param>
        /// <returns></returns>
        public List<GPSDataEntity> Parse(TransfersType transferType, byte[] buf, out List<byte[]> aResponseList, out string fullGpsCode, string sessionID)
        {

            fullGpsCode = string.Empty;
            string gpscode = GetGpsCodeByBytes(buf);
            fullGpsCode = base.CodePrefix + gpscode;            
            aResponseList = new List<byte[]>();            

            //updated by lixun 对于图像数据0x8D统一在后面进行回应处理
            if (buf[2] != 0x85 || buf[2] != 0x8D)
            {
                byte[] ReplyMsg = LongHanInstructionSet.CenterReply(buf);
                if (base.TransfersType == TransfersType.IsTcp && buf[2] == 0x80)
                {
                    //对于TCP通道的定位数据,要根据状态位确定是不是需要回复
                }
                else
                {
                    if (buf[2] == 0xA0 && base.TransfersType == TransfersType.IsUdp)
                    {
                        //根据协议,回复指令需要采用TCP协议
                        SendToVehicle(fullGpsCode, ReplyMsg);
                    }
                    else
                    {
                        aResponseList.Add(ReplyMsg);
                    }
                }


            }            

            LongHanData gpsData = null;
            int iNeedReply=0;
            List<GPSDataEntity> ObjectList = new List<GPSDataEntity>();

            bool blnIsPosData = false;

            switch (buf[2])
            {
                case 0xB1://握手
                    if (String.IsNullOrEmpty(gpscode))
                        break;
                    if (transferType == TransfersType.IsTcp)
                    {
                        OnAddConnectionEvent(fullGpsCode, sessionID);
                    }
                    else
                    {
                        var reply = LongHanInstructionSet.CenterReply(buf);
                        string[] strremortpoint = sessionID.Split(':');
                        IPEndPoint ippoint = new IPEndPoint(IPAddress.Parse(strremortpoint[0]), int.Parse(strremortpoint[1]));
                        OnSendDataEvent((EndPoint)ippoint, reply);
                        OnAddConnectionEvent(fullGpsCode, sessionID);
                    }
                    var robberyImageSetting = LongHanVehicleSettings.Instance.SendRobberyImageSetting(fullGpsCode);
                    if (robberyImageSetting != null)
                        aResponseList.Add(robberyImageSetting);
                    break;
                case 0x80://主发位置数据
                    StringBuilder builer = new StringBuilder();
                    gpsData = GPSDataDecoder(buf, ref iNeedReply);

                    //TCP 方式时,终端上发信息到中心的指令,根据位置数据里的中心是否应答设置来确认是否下发确认信息 
                    if (iNeedReply == 1 && transferType==TransfersType.IsTcp)
                    {
                        aResponseList.Add(LongHanInstructionSet.CenterReply(buf));
                    }
                    //aResponseList.Add(LongHanInstructionSet.SetAccOnTimingUpload(fullGpsCode)); 
                    //将连接加入连接集合,如果是连接后的第一点数据,则同时会更新路由关系表
                    //注意UpdateFirstDataRela的先后关系
                    if (!String.IsNullOrEmpty(gpsData.FullGpsCode))
                    {
                        OnAddConnectionEvent(gpsData.FullGpsCode, sessionID);
                    }
                    //更新上一次数据
                    if (TCPConnList.Instance().IsFirstDataOfConn(sessionID))
                    {
                        //更改记录状态,标明以后的数据已不是第一点数据
                        TCPConnList.Instance().UpdateFirstDataRela(sessionID, 0);
                    }

                    ObjectList.Add(gpsData.BaseData);
                    blnIsPosData = true;
                    break;
                case 0x8E://补传位置数据
                    try
                    {
                        gpsData = GPSDataDecoder(buf, ref iNeedReply); //数据补传解析
                        ComputeMileAgeAndVerifyDataForFetch(ref gpsData, mMaxSpeedMeterPerSecond);
                        ObjectList.Add(gpsData.BaseData);
                    }
                    catch { }
                    break;
                case 0x85://终端应答
                    OnPostSendAnswerHandlerEvent(string.Empty, true, fullGpsCode, ControlCmdType.LongHanAnswered, true);
                    gpsData = ConvertBytesToEntity(buf, ref iNeedReply);
                    break;
                case 0x8D://图片帧数据
                    //if (ProcessPictureFrame(buf))
                    //{
                    //    //updated by lixun 龙瀚工程师答复:如果对每一个图片数据包进行UDP回应,但是对于最后一个数据包,如果发
                    //    //现有丢包的情况,则不需要回应,等待补发
                    //    aResponseList.Add(LongHanInstructionSet.CenterReply(buf));                        
                    //}
                    break;
                case 0xA0://图片上传提示
                    //LongHanPictures.Instance.Remove(fullGpsCode);
                    break;
                default:
                    break;
            }

            #region 备份

            //switch (transferType)
            //{
            //    //若是TCP的数据,只做解析,不存数据库
            //    case TransfersType.IsTcp:
            //        if (buf[2] == 0xB1)
            //        {
            //            if (!String.IsNullOrEmpty(gpscode))
            //            {
            //                OnAddConnectionEvent(gpsCode, sessionID);

            //                var robberyImageSetting = LongHanVehicleSettings.Instance.SendRobberyImageSetting(gpsCode);
            //                if (robberyImageSetting != null)
            //                    aResponseList.Add(robberyImageSetting);
            //            }
            //        }
            //        else if (buf[2] == 0x85)
            //        {
            //            OnPostSendAnswerHandlerEvent(string.Empty, true, gpsCode, ControlCmdType.LongHanAnswered, true);
            //            gpsData = ConvertBytesToEntity(buf);
            //            //ObjectList.Add(gpsData.BaseData);

            //        }
            //        else if (buf[2] == 0x80)
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据解析

            //            //将连接加入连接集合,如果是连接后的第一点数据,则同时会更新路由关系表
            //            //注意UpdateFirstDataRela的先后关系
            //            if (!String.IsNullOrEmpty(gpsData.FullGpsCode))
            //            {
            //                OnAddConnectionEvent(gpsData.FullGpsCode, sessionID);
            //                gpsCode = gpsData.FullGpsCode;

            //                var robberyImageSetting = LongHanVehicleSettings.Instance.SendRobberyImageSetting(gpsCode);
            //                if (robberyImageSetting != null)
            //                    aResponseList.Add(robberyImageSetting);
            //            }
            //            //更新上一次数据
            //            if (TCPConnList.Instance().IsFirstDataOfConn(sessionID))
            //            {
            //                //更新上一点数据
            //                CacheUtility.UpdateLastGPSData(gpsData.FullGpsCode);

            //                //更改记录状态,标明以后的数据已不是第一点数据
            //                TCPConnList.Instance().UpdateFirstDataRela(sessionID, 0);
            //            }

            //            //获取上一个GPS数据点
            //            GPSDataEntity aLastData = GetLastGPSData(gpsData.FullGpsCode);

            //            //根据上一点计算里程
            //            ComputeMileAgeAndVerifyData(ref gpsData, aLastData, mMaxSpeedMeterPerSecond);

            //            ObjectList.Add(gpsData.BaseData);
            //            blnIsPosData = true;
            //        }
            //        else if (buf[2] == 0x8E)//补传数据
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据补传解析
            //            ComputeMileAgeAndVerifyDataForFetch(ref gpsData, mMaxSpeedMeterPerSecond);
            //            ObjectList.Add(gpsData.BaseData);
            //        }
            //        else if (buf[2] == 0x8D)
            //        {
            //            ProcessPictureFrame(buf);
            //        }
            //        break;

            //    default:
            //        if (buf[2] == 0xB1)
            //        {
            //            var reply = LongHanInstructionSet.CenterReply(buf);
            //            string[] strremortpoint = sessionID.Split(':');
            //            IPEndPoint ippoint = new IPEndPoint(IPAddress.Parse(strremortpoint[0]), int.Parse(strremortpoint[1]));
            //            OnSendDataEvent((EndPoint)ippoint, reply);
            //            OnAddConnectionEvent(gpsCode, sessionID);

            //        }
            //        //else //应答数据
            //        if (buf[2] == 0x85)
            //        {
            //            OnPostSendAnswerHandlerEvent(string.Empty, true, gpsCode, ControlCmdType.LongHanAnswered, true);
            //            gpsData = ConvertBytesToEntity(buf);
            //            //ObjectList.Add(gpsData.BaseData);
            //        }

            //        else if (buf[2] == 0x80)//位置数据
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据解析

            //            //将连接加入连接集合,如果是连接后的第一点数据,则同时会更新路由关系表
            //            //注意UpdateFirstDataRela的先后关系
            //            if (!String.IsNullOrEmpty(gpsData.FullGpsCode))
            //            {
            //                OnAddConnectionEvent(gpsData.FullGpsCode, sessionID);
            //            }
            //            //更新上一次数据
            //            if (TCPConnList.Instance().IsFirstDataOfConn(sessionID))
            //            {
            //                //更新上一点数据
            //                CacheUtility.UpdateLastGPSData(gpsData.FullGpsCode);

            //                //更改记录状态,标明以后的数据已不是第一点数据
            //                TCPConnList.Instance().UpdateFirstDataRela(sessionID, 0);
            //            }

            //            //获取上一个GPS数据点
            //            GPSDataEntity aLastData = GetLastGPSData(gpsData.FullGpsCode);

            //            //根据上一点计算里程
            //            ComputeMileAgeAndVerifyData(ref gpsData, aLastData, mMaxSpeedMeterPerSecond);

            //            ObjectList.Add(gpsData.BaseData);
            //            blnIsPosData = true;

            //        }
            //        else if (buf[2] == 0x8E)//补传数据
            //        {
            //            gpsData = GPSDataDecoder(buf); //数据补传解析
            //            ComputeMileAgeAndVerifyDataForFetch(ref gpsData, mMaxSpeedMeterPerSecond);
            //            ObjectList.Add(gpsData.BaseData);
            //        }
            //        else if (buf[2] == 0x8D) //图片回传数据
            //        {
            //            ProcessPictureFrame(buf);
            //        }
            #endregion

            if (gpsData != null)
            {
                LongHanData aLongHanDataGpsData = gpsData as LongHanData;

                if (blnIsPosData)
                {
                    if (aLongHanDataGpsData.BaseData.PlunderState == 0)
                    {
                        aResponseList = new List<byte[]>();

                        aResponseList.Add(CreateCancelAlarmMessage(buf));
                    }
                }
                //gpsCode = aLongHanDataGpsData.BaseData.GPSCode;
            }
            //        break;

            //}
            return ObjectList;
        }
        public LongHanDataParser(TransfersType t, string codefix,IGPSDataProcessor Storage)
            : base(t, Storage)
        {
            base.TransfersType = t;
            base.CodePrefix = codefix;
            _ProcessAppLayerCmd = new ProcessAppLayerCmd(this);
            _ProcessAppLayerCmd.SendAnswerToWebEvent += new ProcessAppLayerCmd.SendAnswerToWebHandler(base
                .OnSendAnswerToWebEvent);
            _ProcessAppLayerCmd.SendDataEvent += new ProcessAppLayerCmd.SendDataHandler(base.OnSendDataEvent);
            //拍照路径
            PhotoPath = ConfigHelper.GetConfig("PhotoPath");
            //LongHanPictures.Instance.Parser = this;
            LongHanVehicleSettings.Instance.Parser = this;

            //if (t == TransfersType.IsTcp)
            //{
            //    ContinuouslyShutters.Instance.IntervalTakePhoto = new ContinuouslyShutters.IntervalTakePhotoHandler(LongHanContinuouslyTakePhotoHandler);
            //    IntervalShutters.Instance.Parser = this;
            //    IntervalShutters.Instance.ReloadSetting(codefix);
            //    IntervalShutters.Instance.IntervalTakePhoto = new ContinuouslyShutters.IntervalTakePhotoHandler(LongHanIntervalTakePhotoHandler);
            //}

        }