public Response icar_SetMultiSegSpeedAlarm(CmdParam.ParamType paramType_0, string string_1, string string_2, CmdParam.CommMode commMode_0, PathAlarmList pathAlarmList) { Response response = new Response(); base.logMsg.FunctionName = "icar_SetMultiSegSpeedAlarm"; base.logMsg.Msg = "发送:类型-" + paramType_0.ToString() + ",车辆-" + string_1; base.log.WriteLog(base.logMsg); if (!base.CheckCar(paramType_0, string_1, string_2)) { response.ErrorMsg = base.alarmMsg.AlarmText = base.ErrorMsg; base.log.WriteAlarm(base.alarmMsg); return response; } if (base.isStartCommon()) { foreach (Bussiness.CarInfo info in base.carInfoList) { try { Car car = new Car(); int num = -1; for (int i = 0; i < pathAlarmList.Count; i++) { PathAlarm alarm = (PathAlarm) pathAlarmList[i]; DataTable table = car.GetNewPathId(info.CarId, alarm.PathName, num); if (table == null) { response.ErrorMsg = base.errMsg.ErrorText = string.Format("\"{0}\"获取偏移路线ID失败!", info.CarNum); base.log.WriteError(base.errMsg); return response; } int num3 = int.Parse(table.Rows[0][0].ToString()); if (-1 == num3) { response.ErrorMsg = base.errMsg.ErrorText = string.Format("\"{0}\"偏移路线ID已满,请删除部分偏移路线!", info.CarNum); base.log.WriteError(base.errMsg); return response; } num = int.Parse(table.Rows[0][1].ToString()); alarm.ID = num3; } object pvRegions = pathAlarmList.pvRegions; int newOrderId = SendBase.CarCmdSend.GetNewOrderId(); base.SaveCmdParm(newOrderId.ToString() + "|" + info.CarId.ToString() + ";"); string orderIDParam = response.OrderIDParam; response.OrderIDParam = orderIDParam + newOrderId.ToString() + "|" + info.CarId.ToString() + ";"; if ((info.ProtocolName != SendBase.m_ProtocolName) && (pathAlarmList.protocolType == CarProtocolType.交通厅)) { base.userInfo.DownCommd.AddCarNewLogData(newOrderId, info.CarNum, "接收", pathAlarmList.OrderCode.ToString(), "失败", "", "终端不支持该协议!"); base.errMsg.ErrorText = "下发消息指令时发生错误!"; response.ErrorMsg = base.ErrorMsg = base.errMsg.ErrorText; return response; } base.userInfo.DownCommd.AddCarNewLogData(newOrderId, info.CarNum, "发送", pathAlarmList.OrderCode.ToString(), "等待", "", ""); car.InsertPathIntoGisCar(info.CarId, base.WorkId, newOrderId, pathAlarmList.AlarmPathDot); if (pathAlarmList.OrderCode == CmdParam.OrderCode.设置分路段超速报警) { for (int j = 0; j < pathAlarmList.Count; j++) { PathAlarm alarm2 = (PathAlarm) pathAlarmList[j]; if (((alarm2.PathSegmentAlarmList != null) && (alarm2.PathSegmentAlarmList.Count != 0)) || !(info.ProtocolName == SendBase.m_ProtocolName)) { car.UpdateTrafficPathAlarm_tmp(base.WorkId, newOrderId, info.CarId, alarm2.PathName, 1, alarm2.Speed, alarm2.Time, alarm2.ID, (alarm2.BeginTime == null) ? "" : alarm2.BeginTime.ToString(), (alarm2.EndTime == null) ? "" : alarm2.EndTime.ToString(), alarm2.PathFlag, alarm2.DriEnough, alarm2.DriNoEnough); } } } if ((info.ProtocolName == SendBase.m_ProtocolName) && (pathAlarmList.protocolType == CarProtocolType.交通厅)) { for (int k = 0; k < pathAlarmList.Count; k++) { PathAlarm alarm3 = (PathAlarm) pathAlarmList[k]; string conntent = ""; alarm3.OrderCode = pathAlarmList.OrderCode; string str2 = alarm3.ToXmlString(base.CalOrderId(base.WorkId, newOrderId), info.SimNum, SendBase.m_ProtocolName, (int) commMode_0, "SetPathAlarm", ref conntent); response.ResultCode = SendBase.CarCmdSend.icar_SendCmdXML(base.WorkId, newOrderId, info.SimNum, SendBase.m_ProtocolName, (int) alarm3.OrderCode, (int) commMode_0, str2); } } else { if ((info.ProtocolName != SendBase.m_ProtocolName) && (pathAlarmList.protocolType == CarProtocolType.交通厅)) { base.userInfo.DownCommd.AddCarNewLogData(newOrderId, info.CarNum, "接收", pathAlarmList.OrderCode.ToString(), "失败", "", "终端不支持该协议!"); response.ErrorMsg = base.ErrorMsg = base.errMsg.ErrorText; response.ResultCode = 0L; return response; } response.ResultCode = SendBase.CarCmdSend.icar_SimpleCmd(base.WorkId, newOrderId, info.SimNum, CmdParam.CmdCode.设置分段超速报警, ref pvRegions); } if (response.ResultCode != 0L) { base.alarmMsg.FunctionName = "icar_SetMultiSegSpeedAlarm"; base.alarmMsg.AlarmText = string.Concat(new object[] { "workid-", base.WorkId, ",simNum-", info.SimNum, ",OrderCode-", pathAlarmList.OrderCode }); base.alarmMsg.Code = response.ResultCode.ToString(); base.log.WriteAlarm(base.alarmMsg); } int num7 = 0; while (true) { if (num7 >= pathAlarmList.Count) { break; } PathAlarm alarm4 = (PathAlarm) pathAlarmList[num7]; if ((pathAlarmList.OrderCode == CmdParam.OrderCode.设置分路段超速报警) && (pathAlarmList.protocolType == CarProtocolType.交通厅)) { try { if ((info.ProtocolName == SendBase.m_ProtocolName) && (pathAlarmList.protocolType == CarProtocolType.交通厅)) { for (int m = 0; m < alarm4.PathSegmentAlarmList.Count; m++) { car.InsertTrafficSegmentParam(info.CarId, alarm4.ParentID, alarm4.PathSegmentAlarmList[m].PathSegmentID, alarm4.PathSegmentAlarmList[m].TopSpeed, alarm4.PathSegmentAlarmList[m].HoldTime, alarm4.PathSegmentAlarmList[m].DriEnough, alarm4.PathSegmentAlarmList[m].DriNoEnough, alarm4.PathSegmentAlarmList[m].Flag, alarm4.PathSegmentAlarmList[m].PathWidth); } } } catch (Exception exception) { base.log.WriteError(base.errMsg, exception); } } num7++; } response.ResultCode = 0L; continue; } catch (Exception exception2) { base.errMsg.ErrorText = "下发消息指令时发生错误!"; response.ErrorMsg = base.ErrorMsg = base.errMsg.ErrorText; base.log.WriteError(base.errMsg, exception2); } } return response; } response.ErrorMsg = base.ErrorMsg; return response; }