예제 #1
0
        /// <summary>
        /// Writes this program's user input into XML.
        /// </summary>
        /// <param name="printerViewModel"></param>
        /// <param name="printViewModel"></param>
        /// <param name="gCodeManagerViewModel"></param>
        /// <returns></returns>
        public string SerializeModiPrint(PrinterViewModel printerViewModel, PrintViewModel printViewModel, GCodeManagerViewModel gCodeManagerViewModel)
        {
            using (base._stringWriter = new StringWriter())
            {
                using (base._xmlWriter = XmlWriter.Create(base._stringWriter, base._xmlWriterSettings))
                {
                    //Outmost element should be "ModiPrint".
                    base._xmlWriter.WriteStartElement("ModiPrint");

                    //GCode.
                    _gCodeManagerXMLSerializerModel.SerializeGCodeManager(base._xmlWriter, _gCodeManagerViewModel);

                    //Printer.
                    //It's very important to set the Printer before the Print, or else a lot of Printer equipment will not be found to set the Print.
                    _printerXMLSerializerModel.SerializePrinter(base._xmlWriter, _printerViewModel);

                    //Print.
                    _printXMLSerializerModel.SerializePrint(base._xmlWriter, _printViewModel);

                    //End outmost element "ModiPrint".
                    base._xmlWriter.WriteEndElement();
                }

                return(base._stringWriter.ToString());
            }
        }
        private PrinterViewModel BuildViewModel(IList <ConversionProfile> profiles = null)
        {
            _printerMappingsProvider = Substitute.For <ICurrentSettings <ObservableCollection <PrinterMapping> > >();

            _profilesProvider = Substitute.For <ICurrentSettings <ObservableCollection <ConversionProfile> > >();
            _printerMappingsProvider.Settings.Returns(_ => _settings.ApplicationSettings.PrinterMappings);
            _profilesProvider.Settings.Returns(_ => _settings.ConversionProfiles);

            var settingsProvider = Substitute.For <ISettingsProvider>();

            settingsProvider.Settings.Returns(_ => _settings);

            var printerHelper = Substitute.For <IPrinterHelper>();

            printerHelper.GetApplicablePDFCreatorPrinter(Arg.Any <string>(), Arg.Any <string>()).Returns("PDFCreator");

            var list = new ObservableCollection <ConversionProfile>();

            if (profiles != null && profiles.Count > 0)
            {
                foreach (var conversionProfile in profiles)
                {
                    list.Add(conversionProfile);
                }
            }

            _profilesProvider.Settings.Returns(list);

            var viewModel = new PrinterViewModel(_printerProvider, settingsProvider, _printerMappingsProvider, _profilesProvider, _printerActionAssistant, null, new DesignTimeTranslationUpdater(), printerHelper, null);

            viewModel.MountView();

            return(viewModel);
        }
예제 #3
0
        public async Task <ActionResult> Create(PrinterViewModel printer)
        {
            if (!ModelState.IsValid)
            {
                return(View(printer));
            }
            if (!string.IsNullOrEmpty(printer.Ip) && !StaticData.IsIp(printer.Ip))
            {
                ModelState.AddModelError(string.Empty, "Неправильный IP-адрес: " + printer.Ip + "!");
                return(View(printer));
            }
            var newPrinter = new Printer
            {
                Name       = printer.Name,
                Ip         = printer.Ip,
                Place      = printer.Place,
                Department = await _db.Departments.FindAsync(printer.DepartmentId)
            };

            _db.Printers.Add(newPrinter);
            foreach (var cartridge in printer.CartridgeIds
                     .Where(c => c != null)
                     .Distinct()
                     .Select(cartridgeId => _db.Items.FirstOrDefault(c => c.Id == cartridgeId))
                     .Where(cartridge => cartridge != null))
            {
                cartridge.Printers.Add(newPrinter);
                newPrinter.Cartridges.Add(cartridge);
            }
            await _db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #4
0
        // GET: Printers/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var printer = await _db.Printers.FindAsync(id);

            if (printer == null)
            {
                return(HttpNotFound());
            }
            var printerModel = new PrinterViewModel
            {
                Id           = printer.Id,
                Name         = printer.Name,
                Ip           = printer.Ip,
                Place        = printer.Place,
                DepartmentId = printer.Department.Id,
            };

            foreach (var cartridge in printer.Cartridges)
            {
                printerModel.CartridgeIds.Add(cartridge.Id);
            }
            return(View(printerModel));
        }
        async private void ToolbarItem_Save_Activated(object sender, EventArgs e)
        {
            var response = await DisplayAlert("Warning", "Are you sure you want to Create this Printer?", "Yes", "No");

            if (response)
            {
                var exists = await PrinterViewModel.SearchByName(ent_Name.Text);

                if (exists != null)
                {
                    await DisplayAlert("ERROR", "Name already Used. Please choose another", "OK");
                }
                else
                {
                    var status = await StatusViewModel.SearchByName(Status_Picker.Text);

                    var printColor = await PrintColorViewModel.SearchByName(Color_Picker.Text);

                    var printer = new PrinterViewModel()
                    {
                        Name           = ent_Name.Text,
                        StatusID       = status.ID,
                        ColorID        = printColor.ID,
                        Status         = status,
                        PrintColor     = printColor,
                        ProjectsQueued = 0,
                    };

                    await PrinterViewModel.Insert(printer);
                }
            }
        }
예제 #6
0
 public CalibrationViewModel(CalibrationModel CalibrationModel, ManualControlViewModel ManualControlViewModel, RealTimeStatusDataViewModel RealTimeStatusDataViewModel, PrinterViewModel PrinterViewModel)
 {
     _calibrationModel            = CalibrationModel;
     _manualControlViewModel      = ManualControlViewModel;
     _realTimeStatusDataViewModel = RealTimeStatusDataViewModel;
     _printerViewModel            = PrinterViewModel;
 }
        /// <summary>
        /// Writes Printer properties into XML.
        /// </summary>
        /// <param name="xmlWriter"></param>
        /// <param name="printerViewModel"></param>
        public void SerializePrinter(XmlWriter xmlWriter, PrinterViewModel printerViewModel)
        {
            //Outmost element should be "Printer".
            xmlWriter.WriteStartElement("Printer");

            //Output XML for Axes.
            foreach (AxisViewModel axisViewModel in printerViewModel.AxisViewModelList)
            {
                _axisXMLSerializerModel.SerializeAxis(xmlWriter, axisViewModel);
            }

            //Output XML for Printheads.
            foreach (PrintheadViewModel printheadViewModel in printerViewModel.PrintheadViewModelList)
            {
                _printheadXMLSerializerModel.SerializePrinthead(xmlWriter, printheadViewModel);
            }

            //Number of Z Axes Created.
            xmlWriter.WriteElementString("ZAxesCreatedCount", printerViewModel.ZAxesCreatedCount.ToString());

            //Number of Printheads Created.
            xmlWriter.WriteElementString("PrintheadsCreatedCount", printerViewModel.PrintheadsCreatedCount.ToString());

            //Close outmost element "Printer".
            xmlWriter.WriteEndElement();
        }
        async private void PrinterListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
        {
            if (e.SelectedItem == null)
            {
                return;
            }
            var prichild = e.SelectedItem as PrinterViewModel;

            prichild = await PrinterViewModel.PopulateForeignKeys(prichild);

            string action = await DisplayActionSheet("What would you like to know about the Printer?"
                                                     , "Projects Queued"
                                                     , "Printer Color");

            switch (action)
            {
            case "Projects Queued":
                await DisplayAlert("Projects Queued"
                                   , "Here the number of projects queued for this printer today: " + prichild.Requests.Count, "OK");

                break;

            case "Printer Color":
                await DisplayAlert("Printer Color"
                                   , "This printer only prints in " + prichild.PrintColor.Name, "OK");

                break;
            }
            PrinterListView.SelectedItem = null;
        }
예제 #9
0
        /// <summary>
        /// Deserialize a Printhead.
        /// </summary>
        /// <param name="xmlReader"></param>
        /// <param name="printerViewModel"></param>
        private void LoadPrinthead(XmlReader xmlReader, PrinterViewModel printerViewModel)
        {
            //Name of the new Printhead.
            string printheadName = xmlReader.GetAttribute("Name");

            //Reference of the new Printhead that will be deserialized.
            PrintheadViewModel newPrinthead = null;

            //See if there is a matching Printhead.
            bool matchingPrinthead = false;

            foreach (PrintheadViewModel printheadViewModel in printerViewModel.PrintheadViewModelList)
            {
                if (printheadViewModel.Name == printheadName)
                {
                    matchingPrinthead = true;
                    newPrinthead      = printheadViewModel;
                    break;
                }
            }

            //If there is no matching Printhead, then create a new Printhead.
            if (matchingPrinthead == false)
            {
                newPrinthead = printerViewModel.AddPrinthead(printheadName);
            }

            //Loads the new Printhead with properties from XML and remembers the newly deserialized Printhead.
            if (newPrinthead != null)
            {
                _printheadXMLDeserializerModel.DeserializePrinthead(xmlReader, newPrinthead);
                _deserializedPrintheadViewModelsList.Add(newPrinthead);
            }
        }
예제 #10
0
        /// <summary>
        /// Remove all Printheads that were not just deserialized.
        /// </summary>
        /// <param name="printerViewModel"></param>
        private void RemoveNonDeserializedPrintheads(PrinterViewModel printerViewModel)
        {
            //List of Printheads that need to be removed.
            //Printheads need to be removed if they are a part of the Printer but were not just deserialized.
            List <PrintheadViewModel> nonDeserializedPrintheadViewModelsList = new List <PrintheadViewModel>();

            //Check if existing Printhead is a deserialized Printhead.
            foreach (PrintheadViewModel existingPrintheadViewModel in printerViewModel.PrintheadViewModelList)
            {
                bool wasDeserialized = false;
                foreach (PrintheadViewModel deserializedPrintheadViewModel in _deserializedPrintheadViewModelsList)
                {
                    if (existingPrintheadViewModel.Name == deserializedPrintheadViewModel.Name)
                    {
                        wasDeserialized = true;
                        break;
                    }
                }

                //If existing Printhead was not a deserialized Material, mark it for removal.
                if (wasDeserialized == false)
                {
                    nonDeserializedPrintheadViewModelsList.Add(existingPrintheadViewModel);
                }
            }

            //Remove all non-deserialized Printheads.
            foreach (PrintheadViewModel nonDeserializedPrinthead in nonDeserializedPrintheadViewModelsList)
            {
                printerViewModel.RemovePrinthead(nonDeserializedPrinthead.Name);
            }
        }
예제 #11
0
        /// <summary>
        /// Remove all Axes that were not just deserialized.
        /// </summary>
        /// <param name="printerViewModel"></param>
        private void RemoveNonDeserializedAxes(PrinterViewModel printerViewModel)
        {
            //List of Axes that need to be removed.
            //Axes need to be removed if they are a part of the Printer but were not just deserialized.
            List <AxisViewModel> nonDeserializedZAxisViewModelsList = new List <AxisViewModel>();

            //Check if existing Axis is a deserialized Axis.
            foreach (AxisViewModel existingAxisViewModel in printerViewModel.ZAxisViewModelList)
            {
                bool wasDeserialized = false;
                foreach (AxisViewModel deserializedAxisViewModel in _deserializedAxisViewModelsList)
                {
                    if (existingAxisViewModel.Name == deserializedAxisViewModel.Name)
                    {
                        wasDeserialized = true;
                        break;
                    }
                }

                //If existing Axis was not a deserialized Axis, mark it for removal.
                if (wasDeserialized == false)
                {
                    nonDeserializedZAxisViewModelsList.Add(existingAxisViewModel);
                }
            }

            //Remove all non-deserialized Axes.
            foreach (AxisViewModel nonDeserializedZAxis in nonDeserializedZAxisViewModelsList)
            {
                printerViewModel.RemoveZAxis(nonDeserializedZAxis.Name);
            }
        }
예제 #12
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);
        }
        public object GetInfo([FromUri] PrinterViewModel model)
        {
            LogUtil.Info("执行获取打印机信息请求...");

            var result = SingleInstance <PrinterBLL> .Instance.GetPrinterInfo(base.CurrId, model.PrinterCode.ToUpper());

            return(OK(result));
        }
        public object DoUnBind([FromBody] PrinterViewModel model)
        {
            LogUtil.Info("执行解除打印机绑定请求...");

            var result = SingleInstance <PrinterBLL> .Instance.DoUnBindShopPrinter(base.CurrId, model.PrinterCode.ToUpper());

            return(OK(result));
        }
예제 #15
0
        public IActionResult PrinterList()
        {
            var model = new PrinterViewModel();

            model.Printers = _printerRepository.GetAllPrinters().Where(o => o.Printer_Model != "NA").ToList();

            return(View(model));
        }
예제 #16
0
        public IActionResult GetPrinter(int printerID)
        {
            var model = new PrinterViewModel();

            model.PrinterSelected = _printerRepository.GetPrinter(printerID);

            return(Json(model));
        }
예제 #17
0
        public IActionResult PrinterDelete()
        {
            var model = new PrinterViewModel();

            model.PrinterReturnByName = _printerRepository.GetAllPrinters().Select(o => new SelectListItem(o.Printer_Name, o.Printer_ID.ToString()));

            return(View(model));
        }
예제 #18
0
        public ActionResult LoadPrintData(PrinterViewModel viewModel)
        {
            PrinterViewModel model;

            model = BindPrinterViewModel(viewModel.TypeId, viewModel.Type, viewModel.Ids, viewModel.TemplateName);
            TempData["PrinterViewModel"] = model;
            return(PartialView("_PrintList", model));
        }
예제 #19
0
        public PrinterXMLDeserializerModel(GPIOPinListsViewModel GPIOPinListsViewModel, PrinterViewModel PrinterViewModel, ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
        {
            _gPIOPinListsViewModel = GPIOPinListsViewModel;
            _printerViewModel      = PrinterViewModel;

            _axisXMLDeserializerModel      = new AxisXMLDeserializerModel(_printerViewModel, base._errorListViewModel);
            _printheadXMLDeserializerModel = new PrintheadXMLDeserializerModel(_printerViewModel, base._errorListViewModel);
        }
        public object GetConfigs([FromUri] PrinterViewModel model)
        {
            LogUtil.Info("执行获取打印场景设置请求...");

            var result = SingleInstance <PrinterBLL> .Instance.GetShopPrinterConfigList(base.CurrId, model.PrinterCode.ToUpper(), BusinessType.Waimai);

            return(OK(result));
        }
예제 #21
0
        public async Task <ActionResult> Edit(PrinterViewModel printer)
        {
            if (!ModelState.IsValid)
            {
                return(View(printer));
            }
            if (!string.IsNullOrEmpty(printer.Ip) && !StaticData.IsIp(printer.Ip))
            {
                ModelState.AddModelError(string.Empty, "Неправильный IP-адрес: " + printer.Ip + "!");
                return(View(printer));
            }
            var editItem = await _db.Printers.FindAsync(printer.Id);

            if (editItem == null)
            {
                return(HttpNotFound());
            }
            editItem.Name  = printer.Name;
            editItem.Ip    = printer.Ip;
            editItem.Place = printer.Place;
            var department = await _db.Departments.FindAsync(printer.DepartmentId);

            if (department == null)
            {
                return(View(printer));
            }
            editItem.Department = department;
            //if (department.Printers.FirstOrDefault(p => p.Id == printer.Id) == null)
            //{
            //    department.Printers.Add(editItem);
            //    _db.Entry(department).State = EntityState.Modified;
            //}
            foreach (var cartridge in printer.CartridgeIds
                     .Select(cartridgeId => _db.Items.FirstOrDefault(c => c.Id == cartridgeId))
                     .Where(cartridge => cartridge != null))
            {
                if (cartridge.Printers.FirstOrDefault(p => p.Id == printer.Id) == null)
                {
                    cartridge.Printers.Add(editItem);
                    _db.Entry(cartridge).State = EntityState.Modified;
                }
                if (editItem.Cartridges.FirstOrDefault(c => c.Id == cartridge.Id) == null)
                {
                    editItem.Cartridges.Add(cartridge);
                }
            }
            foreach (var cartridge in editItem.Cartridges.ToList()
                     .Where(cartridge => printer.CartridgeIds.FirstOrDefault(c => c == cartridge.Id) == null))
            {
                editItem.Cartridges.Remove(cartridge);
                cartridge.Printers.Remove(cartridge.Printers.FirstOrDefault(p => p.Id == printer.Id));
            }
            _db.Entry(editItem).State = EntityState.Modified;
            await _db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
        public async void RefreshPrinterListView()
        {
            //await Helper.AzureAppServiceHelper.SyncAsync();
            PrinterListView.IsRefreshing = true;
            var pri = await PrinterViewModel.GetAll();

            _printers = new ObservableCollection <PrinterViewModel>(pri);
            PrinterListView.ItemsSource  = _printers;
            PrinterListView.IsRefreshing = false;
        }
        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);
        }
        protected override async void OnAppearing()
        {
            base.OnAppearing();
            var StringList = new List <string>();

            foreach (var p in await PrinterViewModel.GetAll())
            {
                StringList.Add(p.Name);
            }
            Printer_ListView.ItemsSource = StringList;
        }
예제 #25
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);
        }
예제 #26
0
        public virtual ActionResult PrintPallet(PrinterViewModel model)
        {
            //TC 33 : Enter empty on print pallet screen
            if (string.IsNullOrEmpty(model.Scan))
            {
                return(RedirectToAction(MVC_BoxPick.BoxPick.Home.AcceptPallet()));
            }
            //TC 34 : Enter invalid string on Print Pallet screen
            if (!model.PalletToPrint.Equals(model.Scan))
            {
                this.AddStatusMessage("The confirmation pallet did not match the original pallet.");
            }

            //Sent to pallet scan
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(MVC_BoxPick.BoxPick.Home.AcceptPallet()));
            }

            try
            {
                string labelPrinter = string.Empty;
                string printers     = _repos.Value.GetPrinter(model.PalletToPrint);
                //TC 35 : When no printer found
                if (string.IsNullOrWhiteSpace(printers))
                {
                    ModelState.AddModelError("", "No printer found, Please contact your system administrator");
                }
                else
                {
                    string[] printer = printers.Trim().Split(',');
                    if (string.IsNullOrEmpty(printer[0]))
                    {
                        ModelState.AddModelError("", "Label printer not found, Please contact your system administrator");
                    }
                    else
                    {
                        labelPrinter = printer[0];
                    }
                }

                if (ModelState.IsValid)
                {
                    _repos.Value.Print(model.PalletToPrint, labelPrinter);
                    this.AddStatusMessage(string.Format("Pallet {0} printed on {1} printer.", model.PalletToPrint, labelPrinter));
                }
            }
            catch (DbException ex)
            {
                ModelState.AddModelError("", ex.Message);
            }
            return(RedirectToAction(MVC_BoxPick.BoxPick.Home.AcceptPallet()));
        }
예제 #27
0
        public ModiPrintXMLSerializerModel(GCodeManagerViewModel GCodeManagerViewModel, PrinterViewModel PrinterViewModel, PrintViewModel PrintViewModel, ErrorListViewModel ErrorListViewModel) : base(ErrorListViewModel)
        {
            //ModiPrint parts.
            _gCodeManagerViewModel = GCodeManagerViewModel;
            _printerViewModel      = PrinterViewModel;
            _printViewModel        = PrintViewModel;

            //XML Serializers.
            _gCodeManagerXMLSerializerModel = new GCodeManagerXMLSerializerModel();
            _printerXMLSerializerModel      = new PrinterXMLSerializerModel();
            _printXMLSerializerModel        = new PrintXMLSerializerModel();
        }
예제 #28
0
        public MainViewModel()
        {
            //Error Handling.
            _errorListViewModel = new ErrorListViewModel();

            //Printer Model.
            _printerModel = new PrinterModel();

            //Print Model.
            _printModel = new PrintModel(_printerModel);

            //Serial Communication Incoming and Outgoing Message Interpreter.
            _realTimeStatusDataModel = new RealTimeStatusDataModel(_printerModel);

            //Serial Communication.
            _serialCommunicationOutgoingMessagesModel = new SerialCommunicationOutgoingMessagesModel();
            _serialCommunicationMainModel             = new SerialCommunicationMainModel(_serialCommunicationOutgoingMessagesModel, _printerModel, _printModel, _realTimeStatusDataModel, _errorListViewModel);
            _serialMessageDisplayViewModel            = new SerialMessageDisplayViewModel();
            _serialCommunicationViewModel             = new SerialCommunicationViewModel(_serialCommunicationMainModel, _serialCommunicationOutgoingMessagesModel, _serialMessageDisplayViewModel);

            //Printer View Model.
            _printerViewModel = new PrinterViewModel(_printerModel, _serialCommunicationMainModel.SerialCommunicationCommandSetsModel);

            //Print View Model.
            _printViewModel = new PrintViewModel(_printModel, _serialMessageDisplayViewModel);

            //Real Time Status.
            _realTimeStatusSerialInterpreterModel = new RealTimeStatusSerialInterpreterModel(_serialCommunicationMainModel, _printerModel, _printerViewModel, _realTimeStatusDataModel, _errorListViewModel);
            _realTimeStatusDataViewModel          = new RealTimeStatusDataViewModel(_realTimeStatusDataModel, _printerViewModel, _serialCommunicationMainModel.SerialCommunicationCommandSetsModel, _errorListViewModel);

            //Manual Commmands and Calibration.
            _manualControlModel     = new ManualControlModel(_printerModel, _serialCommunicationOutgoingMessagesModel, _realTimeStatusDataModel, _errorListViewModel);
            _calibrationModel       = new CalibrationModel(_realTimeStatusDataModel, _printerModel, _serialCommunicationOutgoingMessagesModel, _errorListViewModel);
            _manualControlViewModel = new ManualControlViewModel(_manualControlModel, _realTimeStatusDataViewModel, _printerViewModel);
            _calibrationViewModel   = new CalibrationViewModel(_calibrationModel, _manualControlViewModel, _realTimeStatusDataViewModel, _printerViewModel);

            //GCode.
            _uploadedGCodeModel    = new GCodeModel();
            _gCodeFileManagerModel = new GCodeFileManagerModel(_uploadedGCodeModel, _errorListViewModel);
            _gCodeConverterModel   = new GCodeConverterModel(_printerModel, _printModel, _realTimeStatusDataModel, _errorListViewModel);
            _gcodeManagerViewModel = new GCodeManagerViewModel(_gCodeFileManagerModel, _gCodeConverterModel, _printViewModel);

            //Printing.
            _printExecuteViewModel = new PrintExecuteViewModel(_gcodeManagerViewModel, _realTimeStatusDataModel, _calibrationViewModel, _serialCommunicationViewModel, _serialCommunicationOutgoingMessagesModel, _serialMessageDisplayViewModel, _printViewModel);

            //Settings.
            _saveLoadViewModel = new SaveLoadViewModel(_gcodeManagerViewModel, _printerViewModel, _printViewModel, _errorListViewModel);

            //Unset Main Window.
            _unsetMainViewModel = new UnsetMainViewModel();
        }
예제 #29
0
        /// <summary>
        /// Loads saved XML user inputs containing properties of the Printer, Print, and GCode.
        /// </summary>
        /// <param name="xml"></param>
        /// <param name="printerViewModel"></param>
        /// <param name="printViewModel"></param>
        /// <param name="gCodeManagerViewModel"></param>
        public void DeserializeModiPrint(string xml, PrinterViewModel printerViewModel, PrintViewModel printViewModel, GCodeManagerViewModel gCodeManagerViewModel)
        {
            using (base._stringReader = new StringReader(xml))
            {
                using (base._xmlReader = XmlReader.Create(base._stringReader, base._xmlReaderSettings))
                {
                    //Ensure that the outmost element is "ModiPrint".
                    if (!(base._xmlReader.Read()) ||
                        !(base._xmlReader.Name == "ModiPrint") ||
                        !(base._xmlReader.NodeType == XmlNodeType.Element))
                    {
                        return;
                    }

                    //Read through each line of the XML.
                    while (base._xmlReader.Read())
                    {
                        //Skip through newlines (this program's XML Writer uses newlines).
                        if ((base._xmlReader.Name != "\n") && (!String.IsNullOrWhiteSpace(base._xmlReader.Name)))
                        {
                            //End method if the end of "ModiPrint" element is reached.
                            if ((base._xmlReader.Name == "ModiPrint") && (base._xmlReader.NodeType == XmlNodeType.EndElement))
                            {
                                return;
                            }

                            //Deserialize and populate each property of the Print.
                            switch (base._xmlReader.Name)
                            {
                            case "GCodeManager":
                                _gCodeManagerXMLDeserializerModel.DeserializeGCode(base._xmlReader, _gCodeManagerViewModel);
                                break;

                            case "Printer":
                                _printerXMLDeserializerModel.DeserializePrinter(base._xmlReader, _printerViewModel);
                                break;

                            case "Print":
                                _printXMLDeserializerModel.DeserializePrint(base._xmlReader, _printViewModel);
                                break;

                            default:
                                base.ReportErrorUnrecognizedElement(base._xmlReader);
                                break;
                            }
                        }
                    }
                }
            }
        }
예제 #30
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);
        }