public void Complete(GrblResponseStatus status, int errorCode = 0) { if (ResponseStatus != GrblResponseStatus.Pending) { throw new InvalidOperationException(); } ResponseStatus = status; ResponseErrorCode = errorCode; }
private void completeStatusQueryRequest(GrblResponseStatus status) { lock (pendingRequests) { if (pendingStatusQueryRequest != null) { pendingStatusQueryRequest.Complete(status); pendingStatusQueryRequest = null; } } }
private void completeAll(GrblResponseStatus status) { lock (pendingRequests) { while (!pendingRequests.IsEmpty) { completeQueuedRequest(status); } completeStatusQueryRequest(status); } }
private void completeQueuedRequest(GrblResponseStatus status, int?errorCode = null) { lock (pendingRequests) { if (!pendingRequests.IsEmpty) { GrblRequest request = pendingRequests.Dequeue(); if (request.Type == GrblRequestType.Homing) { pendingHomingRequest = false; } if (!errorCode.HasValue) { request.Complete(status); } else { request.Complete(status, errorCode.Value); } } } }