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); } }
/// <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; }
/// <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); }
/// <summary> /// 拍照任务处理(多摄像头) /// </summary> /// <param name="takePicture">拍照参数</param> public void HandleShootInstructionControl(TakePictureControlMultiCamera takePicture) { //解析页面下发数据 GpsDataParser.ParseShootInstructionControl(takePicture); }
/// <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); } }
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; }