예제 #1
0
        public void Send()
        {
            try
            {
                TakePictureControlMultiCamera takePicture = new TakePictureControlMultiCamera();
                //如果是上一张是第一张照片
                if (task.IsFirstPhoto)
                {
                    task.IsFirstPhoto = false;
                    task.CurrentCameraIndex = 0;
                }
                else
                {
                    if (task.CurrentCameraIndex < task.CameraIds.Length-1)
                    {
                        task.CurrentCameraIndex++;
                    }
                    else
                    {
                        task.CurrentCameraIndex = 0;
                    }
                }
                takePicture.CameraIds = task.CameraIds[task.CurrentCameraIndex].ToString();
                takePicture.SerialNumber = Guid.NewGuid().ToString();
                takePicture.GPSCode = task.GPSCode;
                takePicture.Data.ShootType = SimpleCmdType.TakePictureForDoorShot;
                takePicture.Data.CameraIdsLen = (byte)Encoding.Default.GetBytes(takePicture.CameraIds).Length;
                takePicture.Data.SerialNumberLen = (byte)Encoding.Default.GetBytes(takePicture.SerialNumber).Length;
                takePicture.Data.GPSCodeLen = (byte)Encoding.Default.GetBytes(takePicture.GPSCode).Length;

                Util.Common.LogFatal(string.Format("发送开门拍照指令,GPSCode:{0};CameraID:{1}",takePicture.GPSCode, takePicture.CameraIds));

                byte[] dataBuffer = new byte[takePicture.GetLength()];
                takePicture.WriteBuffer(0, dataBuffer);
                CmdData cmdData = new CmdData();
                cmdData.Data.Cmd = ControlCmdType.SendTakePictureMultiCamera;
                cmdData.DataBuffer = dataBuffer;
                cmdData.Data.DataLen = (ushort)dataBuffer.Length;
                byte[] destBuffer = new byte[cmdData.GetLenth()];
                cmdData.WriteBuffer(0, destBuffer);

                System.Net.IPEndPoint remoteGateway = Util.Common.GetGPSGatewayRouter(task.GPSCode);
                if (null == remoteGateway)
                {
                    Logger.Info(string.Format("获取不到{0}的IP端口.", task.GPSCode));
                    return;
                }
                gwClient.Connect(remoteGateway);
                gwClient.Send(destBuffer, destBuffer.Length);
                Util.Common.LogFatal(string.Format("SendPhotographCmd gpscode:{0},vehicleCode:{1},CameraID:{2}", task.GPSCode, task.VehicleCode, task.CameraIds[task.CurrentCameraIndex]));
            }
            catch (System.Exception ex)
            {
                PES.Beehive.Logging.Logger.Fatal(ex);
                PES.Beehive.Logging.Logger.Error(ex);
            }
        }
예제 #2
0
파일: Form1.cs 프로젝트: hhahh2011/CH.Gps
        /// <summary>
        /// 多摄像头拍照
        /// </summary>
        /// <param name="eventIndex"></param>
        /// <returns></returns>
        private byte[] TakePicture(int eventIndex)
        {
            TakePictureControlMultiCamera takePicture = new TakePictureControlMultiCamera();
            takePicture.CameraIds = this.txtParam2.Text.Trim();
            takePicture.Data.GpsType = GPSType.BoShiJie;
            takePicture.SerialNumber = Guid.NewGuid().ToString();
            takePicture.GPSCode = txtGpsCode.Text.Trim();
            takePicture.Data.GPSCodeLen = (byte)Encoding.Default.GetBytes(takePicture.GPSCode).Length;
            takePicture.Data.CameraIdsLen = (byte)Encoding.Default.GetBytes(takePicture.CameraIds).Length;
            takePicture.Data.SerialNumberLen = (byte)Encoding.Default.GetBytes(takePicture.SerialNumber).Length;
            takePicture.Data.IsGpsAckMsg = true;

            switch (eventIndex)
            {
                //实时抓拍
                case 5:
                    takePicture.Data.ShootType = SimpleCmdType.RealTimeShoot;

                    break;

                //正常连拍
                case 6:
                    takePicture.Data.ShootType = SimpleCmdType.NormalSeriateShoot;
                    takePicture.Data.TurnsCount = Convert.ToUInt16(this.txtParam1.Text.Trim());
                    break;
            }

            byte[] dataBuffer = new byte[takePicture.GetLength()];
            takePicture.WriteBuffer(0, dataBuffer);


            CmdData cmdData = new CmdData();
            cmdData.Data.Cmd = ControlCmdType.SendTakePictureMultiCamera;
            cmdData.DataBuffer = dataBuffer;
            cmdData.Data.DataLen = (ushort)dataBuffer.Length;

            byte[] destBuffer = new byte[cmdData.GetLenth()];
            cmdData.WriteBuffer(0, destBuffer);

            return destBuffer;


        }
예제 #3
0
 /// <summary>
 /// 解析拍照控制命令(多摄像头)
 /// </summary>
 /// <param name="takePicture">拍照实体</param>
 /// <param name="instructionLen">解析后的命令长度</param>
 /// <param name="instruction">命令</param>
 public virtual void ParseShootInstructionControl(TakePictureControlMultiCamera takePicture)
 {
     if (!PicTaskPool.ContainsKey(takePicture.GPSCode))
     {
         PicTaskPool.Add(takePicture.GPSCode, new Queue<TakePicTask>());
     }
     Queue<TakePicTask> taskQueue = PicTaskPool[takePicture.GPSCode];
     string[] CameraIds = takePicture.CameraIds.Split(',');
     List<ushort> CameraIdList = new List<ushort>();
     for (int i = 0, i_Count = CameraIds.Length; i < i_Count; i++)
     {
         CameraIdList.Add(Convert.ToUInt16(CameraIds[i]));
     }
     switch (takePicture.Data.ShootType)
     {
         //实时抓拍:对应数据库表的该字段值为22,即enumInstructionType.enumInstructionType_GPSRealTimeTakePicture==22
         case SimpleCmdType.RealTimeShoot:
             TakePicTask objRealTimeShoot = new TakePicTask();
             objRealTimeShoot.GPSCode = takePicture.GPSCode;
             objRealTimeShoot.TaskType = SimpleCmdType.RealTimeShoot;
             objRealTimeShoot.CurrentCameraIndex = 0;
             objRealTimeShoot.CameraList = CameraIdList;
             objRealTimeShoot.Status = TakePicTaskStatus.NotStart;
             objRealTimeShoot.SerialNumber = takePicture.SerialNumber;
             taskQueue.Enqueue(objRealTimeShoot);
             Logger.Trace(string.Format("[添加拍照任务]实时抓拍,Camera ID为:{0};GPSCode:{1};队列中任务数:{2};任务序列号:{3};", takePicture.CameraIds, takePicture.GPSCode, taskQueue.Count, takePicture.SerialNumber));
             break;
         //正常连拍:对应数据库表的该字段值为20,即enumInstructionType.enumInstructionType_GPSTakePictureNormalShootTime==20
         case SimpleCmdType.NormalSeriateShoot:
             NormalSeriateShootTask objNormalSeriateShoot = new NormalSeriateShootTask();
             objNormalSeriateShoot.GPSCode = takePicture.GPSCode;
             objNormalSeriateShoot.TaskType = SimpleCmdType.NormalSeriateShoot;
             objNormalSeriateShoot.CurrentCameraIndex = 0;
             objNormalSeriateShoot.HaveTurnsCount = 0;
             objNormalSeriateShoot.TurnsCount = takePicture.Data.TurnsCount;
             objNormalSeriateShoot.CameraList = CameraIdList;
             objNormalSeriateShoot.Status = TakePicTaskStatus.NotStart;
             objNormalSeriateShoot.SerialNumber = takePicture.SerialNumber;
             taskQueue.Enqueue(objNormalSeriateShoot);
             Logger.Trace(string.Format("[添加拍照任务]正常连拍,Camera ID为:{0};GPSCode:{1};队列中任务数:{2};任务序列号:{3};总轮数:{4}",takePicture.CameraIds,takePicture.GPSCode,taskQueue.Count,takePicture.SerialNumber,takePicture.Data.TurnsCount));
             break;
         //开门连续拍照
         case SimpleCmdType.TakePictureForDoorShot:
             TakePicTask objDoorShot = new TakePicTask();
             objDoorShot.GPSCode = takePicture.GPSCode;
             objDoorShot.TaskType = SimpleCmdType.TakePictureForDoorShot;
             objDoorShot.CurrentCameraIndex = 0;
             objDoorShot.CameraList = CameraIdList;
             objDoorShot.Status = TakePicTaskStatus.NotStart;
             objDoorShot.SerialNumber = takePicture.SerialNumber;
             taskQueue.Enqueue(objDoorShot);
             Logger.Trace(string.Format("[添加拍照任务]开门连续拍照,Camera ID为:{0};GPSCode:{1};队列中任务数:{2};任务序列号:{3};", takePicture.CameraIds, takePicture.GPSCode, taskQueue.Count, takePicture.SerialNumber));
             break;
         default:
             Logger.Trace(string.Format("[添加拍照任务]未知类型,Camera ID为:{0};GPSCode:{1};队列中任务数:{2};任务序列号:{3};", takePicture.CameraIds, takePicture.GPSCode, taskQueue.Count, takePicture.SerialNumber));
             break;
     }
     //添加完任务,先执行一次该gpscode的任务列表
     DoShoot(takePicture.GPSCode, false);
 }
예제 #4
0
 /// <summary>
 /// 拍照任务处理(多摄像头)
 /// </summary>
 /// <param name="takePicture">拍照参数</param>
 public void HandleShootInstructionControl(TakePictureControlMultiCamera takePicture)
 {
     //解析页面下发数据
     GpsDataParser.ParseShootInstructionControl(takePicture);
 }
예제 #5
0
        /// <summary>
        /// 选择应用层下发的任务
        /// </summary>
        /// <param name="receivedBuffer">接收缓冲区数据</param>
        /// <param name="remotePoint">客户端端点</param>
        public void SwitchEvent(EndPoint remotePoint, byte[] receivedBuffer)
        {
            try
            {
                //GPSCode
                string gpsCode = string.Empty;

                //读取命令
                CmdData cmdData = new CmdData();

                //读入数据
                cmdData.ReadBuffer(0, receivedBuffer);
                Logger.Trace("收到应用层下发指令,指令类型:" + cmdData.Data.Cmd.ToString());

                byte[] sendBuffer = null;

                switch (cmdData.Data.Cmd)
                {
                    //调度命令
                    case ControlCmdType.DispatchControl:

                        DispatchControl DispatchControl = new DispatchControl();

                        //读入数据
                        DispatchControl.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + DispatchControl.GPSCode);

                        //将连接加入连接哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(DispatchControl.GPSCode, remotePoint);

                        //下发调度命令
                        HandleDispatchControlInfo(DispatchControl);

                        break;

                    //监听喊话
                    case ControlCmdType.ListenCall:

                        ListenCallControl CallControl = new ListenCallControl();

                        //读入数据
                        CallControl.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + CallControl.GPSCode);

                        //将连接加入连接哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(CallControl.GPSCode, remotePoint);

                        //下发调度命令
                        HandleListenCallInfo(CallControl);

                        break;

                    //简单控制命令
                    //case ControlCmdType.SimpleInstruction:
                    //下发广告或LED其它命令
                    case ControlCmdType.LEDControl:

                        SimpleInstructionControl SimpleControl = new SimpleInstructionControl();
                        SimpleControl.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + SimpleControl.GPSCode);

                        //将连接加入连接哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(SimpleControl.GPSCode, remotePoint);

                        HandleSimpleInstructionControl(SimpleControl);

                        break;

                    //下发拍照的动作
                    case ControlCmdType.SendTakePicture:

                        TakePictureControl takePicture = new TakePictureControl();
                        takePicture.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + takePicture.GPSCode);

                        //将连接加入哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(takePicture.GPSCode, remotePoint);

                        HandleShootInstructionControl(takePicture);

                        break;

                    //下发拍照的动作(多摄像头)
                    case ControlCmdType.SendTakePictureMultiCamera:

                        TakePictureControlMultiCamera takePictureMultiCamera = new TakePictureControlMultiCamera();
                        takePictureMultiCamera.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + takePictureMultiCamera.GPSCode);

                        //将连接加入哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(takePictureMultiCamera.GPSCode, remotePoint);

                        HandleShootInstructionControl(takePictureMultiCamera);

                        break;

                    case ControlCmdType.SupplyOilCircuit:
                    //强制断油断电
                    case ControlCmdType.BreakOilCircuitByForce:
                    //智能断油断电
                    case ControlCmdType.BreakOilCircuitBySmart:

                        ControlOilCircuit ControlOil = new ControlOilCircuit();

                        ControlOil.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + ControlOil.GPSCode);

                        //将连接加入连接哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(ControlOil.GPSCode, remotePoint);

                        //油路通断控制
                        HandleBreakOilCircuit(ControlOil);

                        break;

                    //北京视展LED控制
                    case ControlCmdType.BJSZLedControl:
                    case ControlCmdType.SendAdvertisement:

                        LEDControl ledControl = new LEDControl();
                        ledControl.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + ledControl.GPSCode);
                        //将连接加入连接哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(ledControl.GPSCode, remotePoint);
                        HandleBJSZLEDContentInfo(ledControl);
                        break;

                    //解除报警
                    case ControlCmdType.DischargeAlarm:

                        DischangeAlarmControl dischangeAlarm = new DischangeAlarmControl();
                        dischangeAlarm.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + dischangeAlarm.GPSCode);
                        //将连接加入连接哈希表
                        GpsDataParser.OnPostAppLayerAddressEvent(dischangeAlarm.GPSCode, remotePoint);
                        DischargeAlarm(dischangeAlarm);

                        break;

                    //超速报警
                    case ControlCmdType.OverSpeedAlarm:

                        OverSpeedAlarmControl overSpeedAlarm = new OverSpeedAlarmControl();
                        overSpeedAlarm.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + overSpeedAlarm.GPSCode);
                        GpsDataParser.OnPostAppLayerAddressEvent(overSpeedAlarm.GPSCode, remotePoint);
                        HandleOverSpeed(overSpeedAlarm);

                        break;

                    //获取网关活动信息
                    case ControlCmdType.GetGatewayActiveInfo:

                        GatewayActiveInfo activeInfo = new GatewayActiveInfo();
                        activeInfo.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + activeInfo.GPSCode);
                        GpsDataParser.OnPostAppLayerAddressEvent(activeInfo.GPSCode, remotePoint);
                        SendGatewayActiveInfo(activeInfo, remotePoint);
                        break;
                    //更新GPS总里程值
                    case ControlCmdType.updatemileage:

                        UpdateMileage UpMileage = new UpdateMileage();
                        UpMileage.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + UpMileage.GPSCode);
                        GpsDataParser.OnPostAppLayerAddressEvent(UpMileage.GPSCode, remotePoint);
                        SendUpdateMileage(UpMileage);
                        break;
                    //设置GPS上传周期
                    case ControlCmdType.SendGPSPosUploadInterval:

                        GPSPosUploadInterval posUploadInterval = new GPSPosUploadInterval();
                        posUploadInterval.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + posUploadInterval.GPSCode);
                        GpsDataParser.OnPostAppLayerAddressEvent(posUploadInterval.GPSCode, remotePoint);
                        HandleGPSPosUploadInterval(posUploadInterval);
                        break;

                    //设置移动台初始经参数
                    case ControlCmdType.SetMobileInitPara:

                        SetMobileInitPara setMobileInitPara = new SetMobileInitPara();
                        setMobileInitPara.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + setMobileInitPara.GPSCode);
                        SetMobileInitPara(setMobileInitPara);

                        break;

                    //雅迅设备,配置报警器
                    case ControlCmdType.AllocateAnnounciator:

                        SetAnnounciator setAnnounciator = new SetAnnounciator();
                        setAnnounciator.ReadBuffer(0, cmdData.DataBuffer);

                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + setAnnounciator.GPSCode);

                        gpsCode = setAnnounciator.GPSCode;

                        sendBuffer = GpsDataParser.ParseControlInstruction(ControlCmdType.AllocateAnnounciator, setAnnounciator);

                        break;
                    case ControlCmdType.SetCircleRegion:
                    case ControlCmdType.SetRectangleRegion:
                    case ControlCmdType.SetPloygon:
                    case ControlCmdType.SetFixedLine:
                    case ControlCmdType.RemoveCircleRegion:
                    case ControlCmdType.RemoveRectangleRegion:
                    case ControlCmdType.RemovePloygon:
                    case ControlCmdType.RemoveFixedLine:
                    case ControlCmdType.TMLControl:
                    case ControlCmdType.SendTxtToTML:
                    case ControlCmdType.PhoneCallback:
                    case ControlCmdType.CameraShootImmediately:
                    case ControlCmdType.PositionQueryReq:
                    case ControlCmdType.SetStopCarAlarm:
                    case ControlCmdType.SetOverFatigueAlarm:
                    case ControlCmdType.SetOverSpeedAlarm:
                    case ControlCmdType.GetRravelRecord:

                        BuBiaoCommonControl BBControl = new BuBiaoCommonControl();
                        BBControl.ReadBuffer(0, cmdData.DataBuffer);

                        GpsDataParser.OnPostAppLayerAddressEvent(BBControl.GPSCode, remotePoint);
                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + BBControl.GPSCode);

                        HandleBuBiaoMessage(BBControl, cmdData.Data.Cmd);
                        break;
                    //部标解除报警
                    case ControlCmdType.ReleaseAlarm:
                        BuBiaoCommonControl ReleaseControl = new BuBiaoCommonControl();
                        ReleaseControl.ReadBuffer(0, cmdData.DataBuffer);

                        GpsDataParser.ReleaseAlarm(ReleaseControl);
                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + ReleaseControl.GPSCode);
                        break;
                    case ControlCmdType.OpenGPS:
                        KKSSimpleControl openGPSControl = new KKSSimpleControl();
                        openGPSControl.ReadBuffer(0, cmdData.DataBuffer);
                        GpsDataParser.OnPostAppLayerAddressEvent(openGPSControl.GPSCode, remotePoint);
                        HandleKKSSimpleControlInfo(ControlCmdType.OpenGPS, openGPSControl);
                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + openGPSControl.GPSCode);
                        break;
                    case ControlCmdType.SetFriendNumber:
                        KKSSimpleControl setfriendnumberControl = new KKSSimpleControl();
                        setfriendnumberControl.ReadBuffer(0, cmdData.DataBuffer);
                        GpsDataParser.OnPostAppLayerAddressEvent(setfriendnumberControl.GPSCode, remotePoint);
                        HandleKKSSimpleControlInfo(ControlCmdType.SetFriendNumber,setfriendnumberControl);
                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + setfriendnumberControl.GPSCode);
                        break;
                    case ControlCmdType.GetFriendNumber:
                        KKSSimpleControl getfriendnumberControl = new KKSSimpleControl();
                        getfriendnumberControl.ReadBuffer(0, cmdData.DataBuffer);
                        GpsDataParser.OnPostAppLayerAddressEvent(getfriendnumberControl.GPSCode, remotePoint);
                        HandleKKSSimpleControlInfo(ControlCmdType.GetFriendNumber,getfriendnumberControl);
                        Logger.Trace("应用层下发指令类型:" + cmdData.Data.Cmd.ToString() + ";GPSCode:" + getfriendnumberControl.GPSCode);
                        break;

                    default:


                        break;
                }
                //GpsDataParser.OnPostSendHandlerEvent(gpsCode, string.Empty, sendBuffer);
            }
            catch (Exception ex)
            {
                Logger.Error(ex, null);
            }
        }
예제 #6
0
        public string GetGpsCodeFromBuffer(byte[] receivedBuffer)
        {
            string gpsCode = string.Empty;

            try
            {
                CmdData cmdData = new CmdData();
                cmdData.ReadBuffer(0, receivedBuffer);
                switch (cmdData.Data.Cmd)
                {
                    //调度命令
                    case ControlCmdType.DispatchControl:
                        DispatchControl DispatchControl = new DispatchControl();
                        DispatchControl.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = DispatchControl.GPSCode;

                        break;

                    //监听喊话
                    case ControlCmdType.ListenCall:
                        ListenCallControl CallControl = new ListenCallControl();
                        CallControl.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = CallControl.GPSCode;
                        break;

                    case ControlCmdType.LEDControl:
                        SimpleInstructionControl SimpleControl = new SimpleInstructionControl();
                        SimpleControl.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = SimpleControl.GPSCode;

                        break;

                    //下发拍照的动作
                    case ControlCmdType.SendTakePicture:
                        TakePictureControl takePicture = new TakePictureControl();
                        takePicture.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = takePicture.GPSCode;

                        break;

                    //下发拍照的动作(多摄像头)
                    case ControlCmdType.SendTakePictureMultiCamera:
                        TakePictureControlMultiCamera takePictureMultiCamera = new TakePictureControlMultiCamera();
                        takePictureMultiCamera.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = takePictureMultiCamera.GPSCode;
                        break;

                    case ControlCmdType.SupplyOilCircuit:
                    //强制断油断电
                    case ControlCmdType.BreakOilCircuitByForce:
                    //智能断油断电
                    case ControlCmdType.BreakOilCircuitBySmart:
                        ControlOilCircuit ControlOil = new ControlOilCircuit();
                        ControlOil.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = ControlOil.GPSCode;
                        break;

                    //北京视展LED控制
                    case ControlCmdType.BJSZLedControl:
                    case ControlCmdType.SendAdvertisement:
                        LEDControl ledControl = new LEDControl();
                        ledControl.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = ledControl.GPSCode;

                        break;
                    //解除报警
                    case ControlCmdType.DischargeAlarm:
                        DischangeAlarmControl dischangeAlarm = new DischangeAlarmControl();
                        dischangeAlarm.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = dischangeAlarm.GPSCode;

                        break;

                    //超速报警
                    case ControlCmdType.OverSpeedAlarm:
                        OverSpeedAlarmControl overSpeedAlarm = new OverSpeedAlarmControl();
                        overSpeedAlarm.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = overSpeedAlarm.GPSCode;
                        break;

                    //获取网关活动信息
                    case ControlCmdType.GetGatewayActiveInfo:
                        GatewayActiveInfo activeInfo = new GatewayActiveInfo();
                        activeInfo.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = activeInfo.GPSCode;
                        break;
                    //更新GPS总里程值
                    case ControlCmdType.updatemileage:
                        UpdateMileage UpMileage = new UpdateMileage();
                        UpMileage.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = UpMileage.GPSCode;
                        break;
                    //设置GPS上传周期
                    case ControlCmdType.SendGPSPosUploadInterval:
                        GPSPosUploadInterval posUploadInterval = new GPSPosUploadInterval();
                        posUploadInterval.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = posUploadInterval.GPSCode;
                        break;

                    //设置移动台初始经参数
                    case ControlCmdType.SetMobileInitPara:
                        SetMobileInitPara setMobileInitPara = new SetMobileInitPara();
                        setMobileInitPara.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = setMobileInitPara.GPSCode;
                        break;

                    //雅迅设备,配置报警器
                    case ControlCmdType.AllocateAnnounciator:
                        SetAnnounciator setAnnounciator = new SetAnnounciator();
                        setAnnounciator.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = setAnnounciator.GPSCode;
                        break;
                    case ControlCmdType.SetCircleRegion:
                    case ControlCmdType.SetRectangleRegion:
                    case ControlCmdType.SetPloygon:
                    case ControlCmdType.SetFixedLine:
                    case ControlCmdType.RemoveCircleRegion:
                    case ControlCmdType.RemoveRectangleRegion:
                    case ControlCmdType.RemovePloygon:
                    case ControlCmdType.RemoveFixedLine:
                    case ControlCmdType.TMLControl:
                    case ControlCmdType.SendTxtToTML:
                    case ControlCmdType.PhoneCallback:
                    case ControlCmdType.CameraShootImmediately:
                    case ControlCmdType.PositionQueryReq:
                    case ControlCmdType.SetStopCarAlarm:
                    case ControlCmdType.SetOverFatigueAlarm:
                    case ControlCmdType.SetOverSpeedAlarm:
                    case ControlCmdType.GetRravelRecord:
                    //case ControlCmdType.MediaInfoSetting:
                    //case ControlCmdType.MediaInfoService:
                    //case ControlCmdType.EventSetting:
                    //case ControlCmdType.PublishQuestion:
                    //case ControlCmdType.TempLocationTrace:
                    //case ControlCmdType.VehicleControl:

                        BuBiaoCommonControl BBControl = new BuBiaoCommonControl();
                        BBControl.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = BBControl.GPSCode;
                        break;
                    //部标解除报警
                    case ControlCmdType.ReleaseAlarm:
                        BuBiaoCommonControl ReleaseControl = new BuBiaoCommonControl();
                        ReleaseControl.ReadBuffer(0, cmdData.DataBuffer);
                        gpsCode = ReleaseControl.GPSCode;
                        break;

                    default:
                        break;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex, null);
            }

            return gpsCode;
        }