public override void EndFixPoint_OnSnapped(Core.Parts.FixPoint stranger, Core.Parts.FixPoint.SnapEventArgs e) { RouteStatus rs = ((IRouteStatus)stranger.Parent).GetRouteStatus(stranger); rs.OnRouteStatusChanged += rs_OnRouteStatusChanged; base.EndFixPoint_OnSnapped(stranger, e); }
private void SuspiciousRoute() { if (Status != RouteStatus.Invalid) { Status = RouteStatus.Suspicious; } }
public override void EndFixPoint_OnUnSnapped(Core.Parts.FixPoint stranger) { ThisRouteStatus = new RouteStatus(); NextRouteStatus.OnRouteStatusChanged -= NextRouteStatus_OnAvailableChanged; NextConveyor = null; NextRouteStatus = null; }
public Neighbor() { ports = new SynchronizedCollection <Port>(); canRoutePackets = RouteStatus.Unknow; osPlatform = Platform.Unknow; ips = new SynchronizedCollection <IPAddress>(); }
private void AdditionalDocument() { if (Status == RouteStatus.Pass) { Status = RouteStatus.AdditionalDocument; } }
public CasePhotocell(CasePhotocellInfo info, BaseTrack conv) : base(info, conv) { photocellInfo = info; AssemblyInfo ai = new AssemblyInfo(); conveyor = conv; photocellDisplay = new CasePhotocellDisplay(new PhotocellDisplayInfo { width = info.width }); photocellDisplay.ListSolutionExplorer = false; photocellDisplay.OnPhotocellDisplayDeleted += photocellDisplay_OnPhotocellDisplayDeleted; Add(photocellDisplay, new Vector3(info.length / 2, 0, 0)); sensor.OnEnter += sensor_OnEnter; sensor.OnLeave += sensor_OnLeave; sensor.Color = Color.Green; sensor.Visible = false; conv.TransportSection.Route.InsertActionPoint(sensor); //If the photocell is connected to a belt conveyor then we want to pause the timers if the conveyor is not available if (conveyor is IBeltControl) { beltControl = conveyor as IRouteStatus; routeStatus = beltControl.GetRouteStatus(conveyor.StartFixPoint); routeStatus.OnRouteStatusChanged += routeStatus_OnRouteStatusChanged; } OnNameChanged += CasePhotocell_OnNameChanged; }
private void DestinationConveyorRouteStatus_OnRouteStatusChanged(object sender, RouteStatusChangedEventArgs e) { RouteStatus routeStatus = (RouteStatus)sender; if (routeStatus != null) { DestinationStatusChanged(routeStatus); var currentTask = Tasks.Count > 0 ? Tasks[0] : null; if (currentTask != null && currentTask.Destination != null) { if (currentTask.Destination.FixPointRouteStatus == routeStatus) { if (e._available == RouteStatuses.Blocked) { Tasks.RemoveAt(0); } // Make sure the destination conveyor who's status has changed matches the current task // Allow within acceptable tolerance for the positioning of the conveyor and fixpoint var isCurrentTask = currentTask.Destination.LocalPosition.X.WithinRange(conveyor.LocalPosition.X, 0.01f); if (e._available == RouteStatuses.Available && isCurrentTask) { conveyor.ThisRouteStatus.Available = RouteStatuses.Request; } } } } }
private void SetState(RouteStatus status) { switch (status) { case RouteStatus.Pass: label10.BackColor = Color.LawnGreen; label10.ForeColor = Color.Black; label10.Text = "可以成行"; break; case RouteStatus.AdditionalDocument: label10.BackColor = Color.SkyBlue; label10.ForeColor = Color.Black; label10.Text = "需要额外旅行文件"; break; case RouteStatus.Suspicious: label10.BackColor = Color.Yellow; label10.ForeColor = Color.Black; label10.Text = "可疑"; break; case RouteStatus.Invalid: label10.BackColor = Color.Red; label10.ForeColor = Color.White; label10.Text = "无法成行"; break; } }
public override void EndFixPoint_OnUnSnapped(Core.Parts.FixPoint stranger) { RouteStatus rs = ((IRouteStatus)stranger.Parent).GetRouteStatus(stranger); rs.OnRouteStatusChanged -= rs_OnRouteStatusChanged; base.EndFixPoint_OnUnSnapped(stranger); }
public Neighbor() { ports = new SynchronizedCollection<Port>(); canRoutePackets = RouteStatus.Unknow; osPlatform = Platform.Unknow; ips = new SynchronizedCollection<IPAddress>(); }
public SRoute(Route route, IEnumerable <SCheckPoint> checkPoints, Culture culture) { Id = route.Id; Name = route.GetName(culture); Rating = route.RelativeRating; AuthorId = route.Author; Status = RouteStatus.GetStatus(route.Status).GetName(culture); CheckPoints = checkPoints; }
private static bool IsExpectedResponse(BypassSheetInfoResponse response, RouteStatus expectedStatus, params HashSet <int>[] expectedSheets) { return(response.RouteStatus == expectedStatus && response.UniqueBypassSheets.Count == expectedSheets.Length && !response.UniqueBypassSheets .Where((t, i) => !AreEqualsSets(t.Stamps, expectedSheets[i])) .Any()); }
public void DivertSection_EndFixPoint_OnUnSnapped(Core.Parts.FixPoint stranger) { divertSection.TransportSection.Route.NextRoute = null; ThisRouteStatus = new RouteStatus(); NextRouteStatus.OnRouteStatusChanged -= NextRouteStatus_OnAvailableChanged; NextConveyor = null; NextRouteStatus = null; Reset(); }
public void Plan(DateTime date) { if (date < DateTime.Today.AddDays(1)) { throw new InvalidOperationException("Route can only plan from tomorrow."); } Status = RouteStatus.Planned; Date = date; }
/// <summary> /// 批量修改线路上下架状态 /// </summary> /// <param name="status">线路上下架状态</param> /// <param name="routes">线路编号</param> /// <returns></returns> public bool UpdateRouteStatus(RouteStatus status, params string[] routes) { bool result = false; if (routes.Length > 0) { if (dal.UpdateRouteStatus(status, ArrayToStr(routes)) > 0) { result = true; } } return(result); }
public DisposalEntry(RouteStatus rs, int curDay, int curRoute) { InitializeComponent(); // Disable the navigation bar NavigationPage.SetHasBackButton(this, false); // Create a message to listen for Jump Requests MessagingCenter.Subscribe <JumpToCustomer, int>(this, "JumpTo", (sender, arg) => { _currentCustomerIndex = arg; UpdateRoutine(MoveDirection.Jump); }); // Get the customer list for the day and route _currentDay = curDay + 1; _currentRoute = curRoute + 1; _routeDesc = string.Format("Truck - {0}", _currentRoute); CurrentCustomerList = CCustomerList.GetCustomerListing(_currentDay, _currentRoute); // If the list comes back blank ... tell the user and go back if (CurrentCustomerList == null) { DisplayAlert("Customer List", "The customer list cannot be loaded. The most likely cause is due to a missing file. Please press the Update Customer List button and then try again.", "OK"); Navigation.PopAsync(); } // If this is a new route, clear every thing out if (rs == RouteStatus.StartNew) { CollectionRecord.DeleteDayAndRoute(_currentDay, _currentRoute); } // Fill in the other items that are collected ReadItemsToCollect(); // Go to the first record UpdateRoutine(MoveDirection.Forward); // Set an event when those items are selected CurrentItemList.ItemSelected += (sender, e) => { ItemsCollected colItem = (ItemsCollected)e.SelectedItem; if (colItem != null) { CollectedItems.Add(new CollectionRecord(_currentCustomerId, _currentDay, _currentRoute, colItem.ID.ToString(), 1, colItem.ItemDescription, DateTime.Now, _routeDesc, colItem.MinimumPrice)); } AddToList(); }; }
public ActionResult AddStatus(FormCollection formValues) { var status = new RouteStatus(); if (TryUpdateModel(status)) { if (unitOfWork.routeRepository.GetRouteStatuses().FirstOrDefault(os => os.Name == status.Name) != null) { ModelState.AddModelError(string.Empty, "Status with the same name is in database yet. Change name."); return(View(status)); } unitOfWork.routeRepository.AddRouteStatus(status); unitOfWork.Save(); return(RedirectToAction("Statuses")); } return(View(status)); }
public static string DisplayName(this RouteStatus status) { switch (status) { case RouteStatus.New: return("New"); case RouteStatus.InProgress: return("In progress"); case RouteStatus.Completed: return("Completed"); case RouteStatus.Pending: return("Pending"); default: return("New"); } }
private void Populate(PublishedRtzMessage entity, bool ignoreStatusInMessage = false) { var msg = Serialization.ByteArrayToString(entity.Message); var parser = RtzParserFactory.Create(msg); var routeStatusString = parser.RouteStatus; RouteStatus routeStatus = RouteStatus.Unknown; int statusId; if (int.TryParse(routeStatusString, out statusId)) { routeStatus = (RouteStatus)statusId; } if (!ignoreStatusInMessage) { entity.MessageStatus = (RouteStatus)statusId; } DateTime?validityPeriodStart = parser.ValidityPeriodStart; if (validityPeriodStart == DateTime.MinValue) { entity.MessageValidFrom = null; } else { entity.MessageValidFrom = validityPeriodStart; } DateTime?validityPeriodStop = parser.ValidityPeriodStop; if (validityPeriodStop == DateTime.MinValue) { entity.MessageValidTo = null; } else { entity.MessageValidTo = validityPeriodStop; } }
private void SetNextDivertRouteStatus(bool value) { if (value) { IRouteStatus afterNextConv = divertSection.NextConveyor; if (afterNextConv is StraightConveyor) { StraightConveyor straight = afterNextConv as StraightConveyor; NextDivertRouteStatus = straight.NextConveyor.GetRouteStatus(divertSection.EndFixPoint.Attached); } else if (afterNextConv is CurveConveyor) { CurveConveyor curve = afterNextConv as CurveConveyor; NextDivertRouteStatus = curve.NextConveyor.GetRouteStatus(divertSection.EndFixPoint.Attached); } } else { NextDivertRouteStatus = divertSection.NextConveyor.GetRouteStatus(divertSection.EndFixPoint.Attached); } }
/// <summary> /// 协议错误 /// </summary> /// <param name="exception"></param> /// <returns></returns> private string ProtocolError(WebException exception) { try { var codes = exception.Message.Split(new[] { '(', ')' }, StringSplitOptions.RemoveEmptyEntries); if (codes.Length == 3) { if (int.TryParse(codes[1], out var s)) { switch (s) { case 404: Status = RouteStatus.NotFind; return(ToErrorString(ErrorCode.NetworkError, "页面不存在", "页面不存在")); case 503: Status = RouteStatus.Unavailable; return(ToErrorString(ErrorCode.NetworkError, "拒绝访问", "页面不存在")); } } } Status = RouteStatus.RemoteError; var msg = ReadResponse(exception.Response); LogRecorder.Error($"Call {Host}/{ApiName} Error:{msg}"); return(msg); //ToErrorString(ErrorCode.NetworkError, "未知错误", ); } catch (Exception e) { Status = RouteStatus.LocalException; LogRecorder.Exception(e); return(ToErrorString(ErrorCode.NetworkError, "未知错误", e.Message)); } finally { exception.Response?.Close(); } }
/// <summary> /// As the accumilation conveyor length is not set conventually it is set via positions, outfeedsection /// infeedsection and AccPitch. We have to wait until all these are set. So we need this method to place /// transition points. /// </summary> public void ConvLocationConfiguration(string level) { Leaving.OnEnter += Leaving_OnEnter; RouteStatus nextRouteStatus = new RouteStatus() { Available = RouteStatuses.Available }; NextRouteStatus = nextRouteStatus; Leaving.Distance = Length; foreach (AccumulationSensor sensor in sensors) { //The accumilation conveyor PEC last (wrt the load travel direction) position is called "0", this is position 2 for the multishuttle. //The accumilation conveyor PEC second from last position (wrt the load travel direction) is called "1", this is position 1 for the multishuttle. int convPosName; if (int.TryParse(sensor.sensor.Name, out convPosName) && convPosName == 0) { LocationB = sensor.sensor; LocationB.LocName = string.Format("{0}{1}{2}{3}{4}", AisleNumber.ToString().PadLeft(2, '0'), (char)Side, level, (char)ConveyorTypes.Pick, "B"); ParentMultiShuttle.ConveyorLocations.Add(LocationB); sensor.sensor.OnEnter += sensor_OnEnterB; //sensor.sensor.OnLeave += sensor_OnLeave2; //sensor.sensor.leaving.Edge = ActionPoint.Edges.Leading; //sensor.sensor.leaving.Distance = sensor.sensor.leaving.Distance + 0.02f;//ParentMultiShuttle.workarround; //Workaround for a load switiching to another conveyor whilst blocking a sensor, hopfully Xcelgo will fix this } else if (int.TryParse(sensor.sensor.Name, out convPosName) && convPosName == 1) { LocationA = sensor.sensor; LocationA.LocName = string.Format("{0}{1}{2}{3}{4}", AisleNumber.ToString().PadLeft(2, '0'), (char)Side, level, (char)ConveyorTypes.Pick, "A"); ParentMultiShuttle.ConveyorLocations.Add(sensor.sensor); sensor.sensor.OnEnter += sensor_OnEnterA; } } LocationB.Visible = false; }
/// <summary> /// 取返回值 /// </summary> /// <returns></returns> public async Task <string> Call() { string jsonResult; Status = RouteStatus.None; try { var resp = await _webRequest.GetResponseAsync(); jsonResult = ReadResponse(resp); } catch (WebException e) { LogRecorder.Exception(e); jsonResult = e.Status == WebExceptionStatus.ProtocolError ? ProtocolError(e) : ResponseError(e); } catch (Exception e) { Status = RouteStatus.LocalException; LogRecorder.Exception(e); jsonResult = ToErrorString(ErrorCode.LocalException, "未知错误", e.Message); } return(string.IsNullOrWhiteSpace(jsonResult) ? ApiResult.RemoteEmptyErrorJson : jsonResult); }
private void InvalidRoute() { Status = RouteStatus.Invalid; }
public BypassSheetInfoResponse(RouteStatus routeStatus, IReadOnlyList <BypassSheet> uniqueBypassSheets) { RouteStatus = routeStatus; UniqueBypassSheets = uniqueBypassSheets; }
private void DestinationStatusChanged(RouteStatus routeStatus) { OnDestinationStatusChanged?.Invoke(this, routeStatus); }
private string ResponseError(WebException e) { e.Response?.Close(); switch (e.Status) { case WebExceptionStatus.CacheEntryNotFound: Status = RouteStatus.NotFind; return(ToErrorString(ErrorCode.NetworkError, "找不到指定的缓存项")); case WebExceptionStatus.ConnectFailure: Status = RouteStatus.LocalError; return(ToErrorString(ErrorCode.NetworkError, "在传输级别无法联系远程服务点")); case WebExceptionStatus.ConnectionClosed: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "过早关闭连接")); case WebExceptionStatus.KeepAliveFailure: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "指定保持活动状态的标头的请求的连接意外关闭")); case WebExceptionStatus.MessageLengthLimitExceeded: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "已收到一条消息的发送请求时超出指定的限制或从服务器接收响应")); case WebExceptionStatus.NameResolutionFailure: Status = RouteStatus.NotFind; return(ToErrorString(ErrorCode.NetworkError, "名称解析程序服务或无法解析主机名")); case WebExceptionStatus.Pending: Status = RouteStatus.LocalError; return(ToErrorString(ErrorCode.NetworkError, "内部异步请求处于挂起状态")); case WebExceptionStatus.PipelineFailure: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "该请求是管线请求和连接被关闭之前收到响应")); case WebExceptionStatus.ProxyNameResolutionFailure: Status = RouteStatus.NotFind; return(ToErrorString(ErrorCode.NetworkError, "名称解析程序服务无法解析代理服务器主机名")); case WebExceptionStatus.ReceiveFailure: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "从远程服务器未收到完整的响应")); case WebExceptionStatus.RequestCanceled: Status = RouteStatus.Unavailable; return(ToErrorString(ErrorCode.NetworkError, "请求已取消")); case WebExceptionStatus.RequestProhibitedByCachePolicy: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "缓存策略不允许该请求")); case WebExceptionStatus.RequestProhibitedByProxy: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "由该代理不允许此请求")); case WebExceptionStatus.SecureChannelFailure: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "使用 SSL 建立连接时出错")); case WebExceptionStatus.SendFailure: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "无法与远程服务器发送一个完整的请求")); case WebExceptionStatus.ServerProtocolViolation: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "服务器响应不是有效的 HTTP 响应")); case WebExceptionStatus.Timeout: Status = RouteStatus.RemoteError; return(ToErrorString(ErrorCode.NetworkError, "请求的超时期限内未不收到任何响应")); case WebExceptionStatus.TrustFailure: Status = RouteStatus.DenyAccess; return(ToErrorString(ErrorCode.NetworkError, "无法验证服务器证书")); default: Status = RouteStatus.LocalException; return(ToErrorString(ErrorCode.NetworkError, "内部服务器异常(未知错误)")); } }
public ActionResult AddStatus() { var status = new RouteStatus(); return(View(status)); }
public void SetStatus(RouteStatus status) { this.status = status; }
public void AddRouteStatus(RouteStatus status) { context.RouteStauses.Add(status); }
public void DeleteRouteStatus(RouteStatus routeStatus) { context.RouteStauses.Remove(routeStatus); }