Beispiel #1
0
        private static void AddNewDirectMissingFileErrors(FilePath fileName, ErrorListViewModel errors, ReferencedFileSave rfs)
        {
            var directErrorsFound = new List <ErrorViewModel>();

            TryAddDirectMissingFileError(directErrorsFound, rfs);

            if (directErrorsFound.Any())
            {
                var existingErrors = errors.Errors
                                     .Where(item => item is MissingFileErrorViewModel)
                                     .Select(item => item as MissingFileErrorViewModel);

                foreach (MissingFileErrorViewModel newError in directErrorsFound)
                {
                    var alreadyExists = existingErrors.Any(item => item.AbsoluteMissingFile == newError.AbsoluteMissingFile);

                    if (!alreadyExists)
                    {
                        lock (GlueState.ErrorListSyncLock)
                        {
                            errors.Errors.Add(newError);
                        }
                    }
                }
            }
        }
Beispiel #2
0
 internal static void HandleFileReadError(FilePath filePath, ErrorListViewModel errorListViewModel)
 {
     TaskManager.Self.AddSync(() =>
     {
         ErrorCreateRemoveLogic.AddNewErrorsForFileReadError(filePath, errorListViewModel);
     }, $"Handle file read error {filePath}");
 }
Beispiel #3
0
        public RealTimeStatusDataViewModel(RealTimeStatusDataModel RealTimeStatusDataModel, PrinterViewModel PrinterViewModel, SerialCommunicationCommandSetsModel SerialCommunicationCommandSetsModel, ErrorListViewModel ErrorListViewModel)
        {
            _realTimeStatusDataModel             = RealTimeStatusDataModel;
            _printerViewModel                    = PrinterViewModel;
            _serialCommunicationCommandSetsModel = SerialCommunicationCommandSetsModel;
            _errorListViewModel                  = ErrorListViewModel;

            Initialize();

            //Subscribe to events.
            _realTimeStatusDataModel.RecordSetAxisExecuted += new RecordSetAxisExecutedEventHandler(UpdateRecordSetAxis);
            _realTimeStatusDataModel.RecordSetMotorizedPrintheadExecuted += new RecordSetMotorizedPrintheadExecutedEventHandler(UpdateSetPrinthead);
            _realTimeStatusDataModel.RecordSetValvePrintheadExecuted     += new RecordSetValvePrintheadExecutedEventHandler(UpdateSetPrinthead);
            _realTimeStatusDataModel.RecordMoveAxesExecuted += new RecordMoveAxesExecutedEventHandler(UpdateRecordMoveAxes);
            _realTimeStatusDataModel.RecordMotorizedPrintWithMovementExecuted    += new RecordMotorizedPrintWithMovementExecutedEventHandler(UpdateRecordMotorizedPrintWithMovement);
            _realTimeStatusDataModel.RecordValvePrintWithMovementExecuted        += new RecordValvePrintWithMovementExecutedEventHandler(UpdateRecordValvePrintWithMovement);
            _realTimeStatusDataModel.RecordMotorizedPrintWithoutMovementExecuted += new RecordMotorizedPrintWithoutMovementExecutedEventHandler(UpdateRecordMotorizedPrintWithoutMovement);
            _realTimeStatusDataModel.RecordValvePrintWithoutMovementExecuted     += new RecordValvePrintWithoutMovementExecutedEventHandler(UpdateRecordValvePrintWithoutMovement);
            _realTimeStatusDataModel.RecordValveCloseExecuted  += new RecordValveCloseExecutedEventHandler(UpdateRecordValveClose);
            _realTimeStatusDataModel.TaskQueuedMessagesUpdated += new TaskQueuedMessagesUpdatedEventHandler(UpdateTaskQueuedMessages);
            _realTimeStatusDataModel.ErrorMessagesUpdated      += new ErrorMessagesUpdatedEventHandler(UpdateErrorMessages);

            _realTimeStatusDataModel.RecordLimitExecuted += new RecordLimitExecutedEventHandler(UpdatePositions);

            _realTimeStatusDataModel.RealTimeStatusDataAborted += new RealTimeStatusDataAbortedEventHandler(Abort);

            _serialCommunicationCommandSetsModel.CommandSetPositionChanged += new CommandSetPositionChangedEventHandler(UpdatePositions);
        }
Beispiel #4
0
        private static void AddNewIndirectMissingFileErrors(ErrorListViewModel errors)
        {
            // can only be an indirect error if the file can reference content
            // Update - but the changed file can be referenced too, even though
            // it itself may not reference content (like a png)
            //var canReferenceContent = FileHelper.DoesFileReferenceContent(fileName.Standardized);
            //if(canReferenceContent)


            // If a file changes, then we need to see if there are any indirect missing files caused by the change.
            // The easiest way to do this is to perform a full scan and not add dupes:
            var indirectErrorsFound = new List <ErrorViewModel>();
            var allFiles            = GlueState.Self.GetAllReferencedFiles();

            foreach (var file in allFiles)
            {
                TryAddIndirectMissingFileErrors(indirectErrorsFound, file);
            }

            // now add them:
            var existingIndirects = errors.Errors.Where(item => item is IndirectMissingFileErrorViewModel).Select(item => item as IndirectMissingFileErrorViewModel);

            foreach (var candidateToAdd in indirectErrorsFound)
            {
                var shouldAdd = existingIndirects.Any(item => item.Matches(candidateToAdd)) == false;
                if (shouldAdd)
                {
                    lock (GlueState.ErrorListSyncLock)
                    {
                        errors.Errors.Add(candidateToAdd);
                    }
                }
            }
        }
        public List <ErrorListViewModel> GetAllErrorLogs(int appID)
        {
            List <ErrorListViewModel> logs = new List <ErrorListViewModel>();

            using (ErrorLoggerDBContext context = new ErrorLoggerDBContext())
            {
                try
                {
                    var app = context.Applications.Where(x => x.ApplicationId.Equals(appID)).First();

                    foreach (Error err in app.errors)
                    {
                        ErrorListViewModel errorView = new ErrorListViewModel
                        {
                            logLevel         = err.logLevel,
                            errorDescription = err.errorDescription,
                            timestamp        = Convert.ToDateTime(err.timestamp),
                            exceptionMessage = err.exceptionMessage,
                            appID            = err.applicationID,
                            applicationName  = app.applicationName
                        };
                        logs.Add(errorView);
                    }
                }
                catch (Exception ex)
                {
                    Log.Error(string.Format("Function : GetAllErrorLogs CustomizeDeveloperMessage: Not able to get Errors for application {0}. Excetion Message: {1} ", appID, ex));
                    throw new Exception(string.Format("CustomizeDeveloperMessage: Not able to get Errors for application {0}. ", appID));
                }
            }

            return(logs);
        }
Beispiel #6
0
        public static void RefreshAllErrors(ErrorListViewModel errorListViewModel)
        {
            TaskManager.Self.AddSync(() =>
            {
                // todo - need to store a list of IErrorReporter's somewhere, and loop through them
                // here
                lock (GlueState.ErrorListSyncLock)
                {
                    errorListViewModel.Errors.Clear();
                }
                var reporters = Container.Get <List <IErrorReporter> >();
                foreach (var reporter in reporters)
                {
                    var errors = reporter.GetAllErrors();

                    foreach (var error in errors)
                    {
                        lock (GlueState.ErrorListSyncLock)
                        {
                            errorListViewModel.Errors.Add(error);
                        }
                    }
                }
            }
                                     , "Refresh all errors");
        }
Beispiel #7
0
        public GCodeConverterModel(PrinterModel PrinterModel, PrintModel PrintModel, RealTimeStatusDataModel RealTimeStatusDataModel, ErrorListViewModel ErrorListViewModel)
        {
            _printerModel            = PrinterModel;
            _printModel              = PrintModel;
            _realTimeStatusDataModel = RealTimeStatusDataModel;
            _errorListViewModel      = ErrorListViewModel;

            InstantiateGCodeConverterClasses();
        }
        public XMLDeserializerInitializeModel(ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
        {
            //XmlReader will be instantiated and disposed of in derived class methods.

            //XML Reader Settings.
            _xmlReaderSettings = new XmlReaderSettings();
            _xmlReaderSettings.ConformanceLevel = ConformanceLevel.Fragment;
            _xmlReaderSettings.CloseInput       = true;
        }
Beispiel #9
0
 private ErrorListViewModel GetdefaultErrorListViewModel()
 {
     if (_defaultErrorListViewModel == null)
     {
         var iconSource = LoggerModule.CreateImageSource(@"Icons/BuildErrorList_16x.png");
         _defaultErrorListViewModel = new ErrorListViewModel(this, iconSource);
     }
     return(_defaultErrorListViewModel);
 }
        public SaveLoadViewModel(GCodeManagerViewModel GCodeManagerViewModel, PrinterViewModel PrinterViewModel, PrintViewModel PrintViewModel, ErrorListViewModel ErrorListViewModel)
        {
            _gCodeManagerViewModel = GCodeManagerViewModel;
            _printerViewModel      = PrinterViewModel;
            _printViewModel        = PrintViewModel;
            _errorListViewModel    = ErrorListViewModel;

            _modiPrintXMLSerializerModel   = new ModiPrintXMLSerializerModel(_gCodeManagerViewModel, _printerViewModel, _printViewModel, _errorListViewModel);
            _modiPrintXMLDeserializerModel = new ModiPrintXMLDeserializerModel(_gCodeManagerViewModel, _printerViewModel, _printerViewModel.GPIOPinListsViewModel, _printViewModel, _errorListViewModel);
        }
Beispiel #11
0
        internal static void HandleFileChange(FilePath filePath, ErrorListViewModel errorListViewModel)
        {
            TaskManager.Self.AddSync(() =>
            {
                // Add new errors:
                ErrorCreateRemoveLogic.AddNewErrorsForChangedFile(filePath, errorListViewModel);

                ErrorCreateRemoveLogic.RemoveFixedErrorsForChangedFile(filePath, errorListViewModel);
            }, $"Handle file change {filePath}");
        }
Beispiel #12
0
        public RealTimeStatusSerialInterpreterModel(SerialCommunicationMainModel SerialCommunicationMainModel, PrinterModel PrinterModel, PrinterViewModel PrinterViewModel,
                                                    RealTimeStatusDataModel RealTimeStatusDataModel, ErrorListViewModel ErrorListViewModel)
        {
            _serialCommunicationMainModel = SerialCommunicationMainModel;
            _printerModel            = PrinterModel;
            _printerViewModel        = PrinterViewModel;
            _realTimeStatusDataModel = RealTimeStatusDataModel;
            _errorListViewModel      = ErrorListViewModel;

            _serialCommunicationMainModel.SerialCommunicationMessageReceived += new SerialCommunicationMessageReceivedEventHandler(SerialCommunicationMessageReceived);
        }
        public XMLSerializerInitializeModel(ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
        {
            //StringWriter and XmlWriter will be instantiated and disposed of in derived class methods.

            //XML Writer Settings.
            _xmlWriterSettings        = new XmlWriterSettings();
            _xmlWriterSettings.Indent = true;
            _xmlWriterSettings.NewLineOnAttributes = true;
            _xmlWriterSettings.ConformanceLevel    = ConformanceLevel.Fragment;
            _xmlWriterSettings.OmitXmlDeclaration  = true;
            _xmlWriterSettings.CloseOutput         = true;
        }
        public CalibrationModel(RealTimeStatusDataModel RealTimeStatusDataModel, PrinterModel PrinterModel, SerialCommunicationOutgoingMessagesModel SerialCommunicationOutgoingMessagesModel, ErrorListViewModel ErrorListViewModel)
        {
            _realTimeStatusDataModel = RealTimeStatusDataModel;
            _printerModel            = PrinterModel;
            _serialCommunicationOutgoingMessagesModel = SerialCommunicationOutgoingMessagesModel;

            ParametersModel parametersModel = new ParametersModel(_printerModel, null);

            _writeSetAxisModel = new WriteSetAxisModel(parametersModel);

            _errorListViewModel = ErrorListViewModel;
        }
        public ManualControlModel(PrinterModel PrinterModel, SerialCommunicationOutgoingMessagesModel SerialCommunicationOutgoingMessagesModel,
                                  RealTimeStatusDataModel RealTimeStatusDataModel, ErrorListViewModel ErrorListViewModel)
        {
            _printerModel = PrinterModel;
            _serialCommunicationOutgoingMessagesModel = SerialCommunicationOutgoingMessagesModel;
            _realTimeStatusDataModel = RealTimeStatusDataModel;
            _errorListViewModel      = ErrorListViewModel;

            ParametersModel parametersModel = new ParametersModel(_printerModel, null);

            _writeSetPrintheadModel = new WriteSetPrintheadModel(parametersModel);
            _writeSetAxisModel      = new WriteSetAxisModel(parametersModel);
        }
Beispiel #16
0
        private static void CreateItem(ErrorListViewModel newItem)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri(SERVICE_URL);

            var response = client.PostAsJsonAsync(GENERAL_ACTION, newItem).Result;

            if (response.StatusCode.Equals(System.Net.HttpStatusCode.InternalServerError))
            {
                Log.Debug("Post Fail. Exception Message : " + response.ReasonPhrase);
            }
        }
Beispiel #17
0
        public static void AddNewErrorsForChangedFile(FilePath fileName, ErrorListViewModel errors)
        {
            var rfs = GlueCommands.Self.FileCommands.GetReferencedFile(fileName.Standardized);

            if (rfs != null)
            {
                AddNewDirectMissingFileErrors(fileName, errors, rfs);
            }

            AddNewIndirectMissingFileErrors(errors);

            AddFileParseErrors(fileName, errors);
        }
        public SerialCommunicationCommandSetsModel(
            RealTimeStatusDataModel RealTimeStatusDataModel, SerialCommunicationMainModel SerialCommunicationMainModel, PrinterModel PrinterModel, PrintModel PrintModel, ErrorListViewModel ErrorListViewModel)
        {
            _realTimeStatusDataModel      = RealTimeStatusDataModel;
            _serialCommunicationMainModel = SerialCommunicationMainModel;
            _printerModel       = PrinterModel;
            _printModel         = PrintModel;
            _errorListViewModel = ErrorListViewModel;

            ParametersModel parametersModel = new ParametersModel(_printerModel, null);

            _writeSetAxisModel      = new WriteSetAxisModel(parametersModel);
            _setWritePrintheadModel = new SetWritePrintheadModel(parametersModel);
        }
Beispiel #19
0
        public ModiPrintXMLDeserializerModel(GCodeManagerViewModel GCodeManagerViewModel, PrinterViewModel PrinterViewModel, GPIOPinListsViewModel GPIOPinListsViewModel, PrintViewModel PrintViewModel,
                                             ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
        {
            //ModiPrint parts.
            _gCodeManagerViewModel = GCodeManagerViewModel;
            _printerViewModel      = PrinterViewModel;
            _gPIOPinListsViewModel = GPIOPinListsViewModel;
            _printViewModel        = PrintViewModel;

            //XML Serializers.
            _gCodeManagerXMLDeserializerModel = new GCodeManagerXMLDeserializerModel(_errorListViewModel);
            _printerXMLDeserializerModel      = new PrinterXMLDeserializerModel(_gPIOPinListsViewModel, _printerViewModel, _errorListViewModel);
            _printXMLDeserializerModel        = new PrintXMLDeserializerModel(_printerViewModel, _errorListViewModel);
        }
Beispiel #20
0
        internal static void RemoveFixedErrorsForChangedFile(FilePath filePath, ErrorListViewModel errorListViewModel)
        {
            for (int i = errorListViewModel.Errors.Count - 1; i > -1; i--)
            {
                var error = errorListViewModel.Errors[i];

                if (error.ReactsToFileChange(filePath) && error.GetIfIsFixed())
                {
                    lock (GlueState.ErrorListSyncLock)
                    {
                        errorListViewModel.Errors.RemoveAt(i);
                    }
                }
            }
        }
        public override void StartUp()
        {
            control = new ErrorWindow();
            tab     = AddToTab(PluginManager.BottomTab, control, "Errors");

            errorListViewModel = GlueState.Self.ErrorList;
            errorListViewModel.Errors.CollectionChanged += HandleErrorsCollectionChanged;
            errorListViewModel.RefreshClicked           += HandleRefreshClicked;

            control.DataContext = errorListViewModel;


            this.ReactToLoadedGlux        += HandleLoadedGlux;
            this.ReactToFileChangeHandler += HandleFileChanged;
            this.ReactToFileRemoved       += HandleFileRemoved;
            this.ReactToUnloadedGlux      += HandleUnloadedGlux;
            this.ReactToFileReadError     += HandleFileReadError;
        }
Beispiel #22
0
        public static void RefreshAllErrors(ErrorListViewModel errorListViewModel)
        {
            TaskManager.Self.AddSync(() =>
            {
                lock (GlueState.ErrorListSyncLock)
                {
                    errorListViewModel.Errors.Clear();
                }
                var missingFiles = ErrorCreateRemoveLogic.GetMissingFileErrorViewModels();

                foreach (var missingFile in missingFiles)
                {
                    lock (GlueState.ErrorListSyncLock)
                    {
                        errorListViewModel.Errors.Add(missingFile);
                    }
                }
            }
                                     , "Refresh all errors");
        }
Beispiel #23
0
        public override void StartUp()
        {
            EditorObjects.IoC.Container.Get <List <IErrorReporter> >()
            .Add(new ErrorCreateRemoveLogic());

            control = new ErrorWindow();
            tab     = AddToTab(PluginManager.BottomTab, control, "Errors");

            errorListViewModel = GlueState.Self.ErrorList;
            errorListViewModel.Errors.CollectionChanged += HandleErrorsCollectionChanged;
            errorListViewModel.RefreshClicked           += HandleRefreshClicked;

            control.DataContext = errorListViewModel;


            this.ReactToLoadedGlux        += HandleLoadedGlux;
            this.ReactToFileChangeHandler += HandleFileChanged;
            this.ReactToFileRemoved       += HandleFileRemoved;
            this.ReactToUnloadedGlux      += HandleUnloadedGlux;
            this.ReactToFileReadError     += HandleFileReadError;
        }
Beispiel #24
0
        private static void AddFileParseErrors(FilePath fileName, ErrorListViewModel errors)
        {
            var generalResponse = GlueCommands.Self.FileCommands.GetLastParseResponse(fileName);

            if (generalResponse.Succeeded == false)
            {
                var existingFileParseErrors = errors.Errors
                                              .Where(item => item is FileParseErrorViewModel)
                                              .Select(item => item as FileParseErrorViewModel)
                                              .Where(item => item.FilePath == fileName && item.GeneralResponse.Message == generalResponse.Message);

                if (existingFileParseErrors.Count() == 0)
                {
                    // add it:
                    FileParseErrorViewModel newError = new FileParseErrorViewModel(fileName, generalResponse);
                    lock (GlueState.ErrorListSyncLock)
                    {
                        errors.Errors.Add(newError);
                    }
                }
            }
        }
        public ParametersModel(PrinterModel PrinterModel, ErrorListViewModel ErrorListViewModel)
        {
            _printerModel = PrinterModel;

            _xCoord       = new CoordinateModel(CoordinateType.X, true, this, 0, 0, 0);
            _yCoord       = new CoordinateModel(CoordinateType.Y, true, this, 0, 0, 0);
            _zCoord       = new CoordinateModel(CoordinateType.Z, true, this, 0, 0, 0);
            _eRepRapCoord = new CoordinateModel(CoordinateType.S, false, this, 0, 0, 0);

            // _dropletModel is not set yet. A new material must be set before this class is instantiated.

            //This program needs to track the E coordinates for each of its printheads.
            //Some printheads, such as the valve-based ones, do not need to track E.
            //It's easier to just create an E coordinate for every printhead though.
            //The index of the E coordinate list equals the index of the Printer's Printheads list.
            foreach (PrintheadModel printheadModel in _printerModel.PrintheadModelList)
            {
                _eModiPrintCoordList.Add(new CoordinateModel(CoordinateType.E, true, this, 0, 0, 0));
            }

            _errorReporterViewModel = new ErrorReporterViewModel(ErrorListViewModel);
        }
Beispiel #26
0
        public void log(string error_, int logLevel_, Exception ex = null)
        {
            ErrorListViewModel err = new ErrorListViewModel()
            {
                errorDescription = error_,
                logLevel         = (LogLevelEnum)logLevel_,
                timestamp        = DateTime.Now,
                appID            = appID_
            };

            if (ex != null)
            {
                err.exceptionMessage = ex.Message;
            }

            try
            {
                CreateItem(err);
            }
            catch (Exception exception)
            {
                Log.Error("Exception caught in DLLLibrary exception block. Exception :" + exception.Message);
            }
        }
Beispiel #27
0
 public ContinuousPrintStyleXMLDeserializerModel(ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
 {
 }
Beispiel #28
0
 internal static void AddNewErrorsForFileReadError(FilePath filePath, ErrorListViewModel errorListViewModel)
 {
     AddFileParseErrors(filePath, errorListViewModel);
 }
Beispiel #29
0
        internal static void RemoveFixedErrorsForRemovedRfs(ReferencedFileSave removedFile, ErrorListViewModel errorListViewModel)
        {
            FilePath filePath = GlueCommands.Self.GetAbsoluteFileName(removedFile);

            for (int i = errorListViewModel.Errors.Count - 1; i > -1; i--)
            {
                var error = errorListViewModel.Errors[i];

                if (error.ReactsToFileChange(filePath) && error.GetIfIsFixed())
                {
                    lock (GlueState.ErrorListSyncLock)
                    {
                        errorListViewModel.Errors.RemoveAt(i);
                    }
                }
            }
        }
Beispiel #30
0
 public PrintXMLDeserializerModel(PrinterViewModel PrinterViewModel, ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
 {
     _materialXMLDeserializerModel = new MaterialXMLDeserializerModel(PrinterViewModel, ErrorListViewModel);
 }