/// <summary> /// 外部接口设置VOBC状态信息 /// </summary> /// <param name="ip">产品设备IP信息</param> /// <param name="Port">端口信息</param> /// <param name="vInfo">VOBC状态信息类实例</param> /// <returns></returns> public bool SetProductVobcStateInfo(string ip, int Port, VOBCStateInfoClass vInfo) { bool reValue = false; foreach (IProduct product in this) { if (product.Ip == ip && product.Port == Convert.ToString(Port)) { //防护 必须是VOBC产品 if (product is VOBCProduct) { (product as VOBCProduct).VobcStateInfo = vInfo; reValue = true; } else { reValue = false; } } else { reValue = false; } } return(reValue); }
/// <summary> /// VOBC设备预检 /// </summary> /// <param name="vobc">VOBC产品车载状态信息</param> /// <returns>预检失败原因明细</returns> private string PreCheck(VOBCStateInfoClass vInfo, VOBCStateInfoClass oppovInfo) { string failReason = String.Empty; //未进行状态获取操作 if (null == vInfo) { failReason = "未完成‘状态获取’操作或未获取到状态"; } else if (null == oppovInfo) { failReason = "未完成对端‘状态获取’操作或未获取到对端状态"; } //ATP状态 else if (vInfo.AtpStatus != "正常") { failReason = "预检ATP状态为:" + vInfo.AtpStatus; } //ATO状态 else if (vInfo.AtoStatus != "正常") { failReason = "预检ATO状态为:" + vInfo.AtoStatus; } //MMI状态 else if (vInfo.MmiStatus != "正常") { failReason = "预检MMI状态为:" + vInfo.MmiStatus; } //CCOV状态 else if (vInfo.AtpTftpStatus != "正常") { failReason = "预检CCOV状态为:" + vInfo.AtpTftpStatus; } else if (vInfo.PreResult != true) { //通控给出的总预检结果 failReason = "本端预检失败"; //零速 if (vInfo.IsSteady != true) { failReason = "预检车辆非0速"; } //车辆位置 else if (vInfo.TrainPosition != "无位置") { failReason = "预检车辆:" + vInfo.TrainPosition; } else { //TODO } } else if (oppovInfo.PreResult != true) { //对端通控给出的总预检结果 failReason = "对端预检失败"; } else { //什么都不做 } return(failReason); }