void ExecuteW5() { WipeCombination.Add(string.Format("W5.{0} ({1})", "@CONTINUE_FAIL_AT_SAME_COMPONENT".Translate(), ViewModelLocator.Atom.WipeVM.CmpFailTimes)); object[] _params = { (object)ViewModelLocator.Atom.WipeVM.CmpFailTimes }; var alg = JudgeWipeAlgorithmFactory.CreateAlgorithm("W5", _params); PrinterManager.getInstance().JudgeWipeRoutines.Add(alg); }
void ExecuteW3() { WipeCombination.Add(String.Format("W3.{0}", "@BRIDGE_DETECT".Translate())); var alg = JudgeWipeAlgorithmFactory.CreateAlgorithm("W3",null); PrinterManager.getInstance().JudgeWipeRoutines.Add(alg); }
void ExecuteDeleteLane() { Log4.PrinterLogger.Info("[A]Press Delete button."); if (LaneContainer.Count > 0) { RemoveOneLaneSetting(); if (LaneContainer.Count == 1) { PrinterManager.getInstance().EnableLane2SettingUI(false); } else if (LaneContainer.Count == 0) { PrinterManager.getInstance().EnableLane1SettingUI(false); PrinterManager.getInstance().EnableLane2SettingUI(false); } } else { Log4.PrinterLogger.Info("[A]There is no data."); TRMessageBox.Show("@THERE_IS_NO_DATA".Translate(), "@PRINTER_CENTER".Translate()); } }
void ExecuteAddLane() { Log4.PrinterLogger.Info("[A]Press Add button."); if (LaneContainer.Count < 2) { AddOneLaneSetting(); if (LaneContainer.Count == 1) { PrinterManager.getInstance().EnableLane1SettingUI(true); } else if (LaneContainer.Count == 2) { PrinterManager.getInstance().EnableLane1SettingUI(true); PrinterManager.getInstance().EnableLane2SettingUI(true); } } else { Log4.PrinterLogger.Info("[A]upport at most 2 lane."); TRMessageBox.Show("@SUPPORT_AT_MOST_2_LANE".Translate(), "@PRINTER_CENTER".Translate()); } }
void ExecuteW2() { WipeCombination.Add(String.Format("W2.{0} ({1}-{2})", "@PEAK_OF_SINGLE_PAD_VOLUME".Translate(), ViewModelLocator.Atom.WipeVM.PeakRange.LowerBound, ViewModelLocator.Atom.WipeVM.PeakRange.UpperBound )); object[] _params = { (object)ViewModelLocator.Atom.WipeVM.PeakRange.LowerBound , (object)ViewModelLocator.Atom.WipeVM.PeakRange.UpperBound }; var alg = JudgeWipeAlgorithmFactory.CreateAlgorithm("W2", _params); PrinterManager.getInstance().JudgeWipeRoutines.Add(alg); }
void ExecuteW1() { WipeCombination.Add(String.Format("W1.{0} ({1}-{2})", "@AVERAGE_VOLUME_PERCENTAGE".Translate(), ViewModelLocator.Atom.WipeVM.AvgVolRange.LowerBound, ViewModelLocator.Atom.WipeVM.AvgVolRange.UpperBound )); object[] _params = { (object)ViewModelLocator.Atom.WipeVM.AvgVolRange.LowerBound , (object)ViewModelLocator.Atom.WipeVM.AvgVolRange.UpperBound }; var alg = JudgeWipeAlgorithmFactory.CreateAlgorithm("W1", _params); PrinterManager.getInstance().JudgeWipeRoutines.Add(alg); }
public override void Activate() { //InDriveInfo Z:(\\IP\Folder)格式,WmiDiskHelper.ExtractDiskID取 "Z:" //但當選取的InDriveInfo是 D:格式,WmiDiskHelper.ExtractDiskID取"D:" //可是當送給DirectoryWatcher時 因D:本質是Disk Volume而不是Folder //而Z:是以建立共享資料夾的虛擬網路硬碟 (可以想成Z:是一個代號),本質上他還是個Folder,所以可以監控 //因此,為了避免選成Disk,故加一個@"\" target = WmiDiskHelper.ExtractDiskID(PrinterSFSetting.InDriveInfo) + @"\"; //Disk mapping var des = WmiDiskHelper.ExtractProviderName(PrinterSFSetting.InDriveInfo); //ui顯示用 WatchedFolder = PrinterManager.getInstance().AddWatcher(target, LaneID, des); }
public static eWipeStencilReason JudgeWipeByPriorityStrategy(InspectedPanel currentPanel, List <Box> boxes) { eWipeStencilReason ret = eWipeStencilReason.NoNeedToWipe; var wipeRoutines = PrinterManager.getInstance().JudgeWipeRoutines; foreach (var wipe in wipeRoutines) { ret = wipe.Judge(currentPanel, boxes); if (ret != eWipeStencilReason.NoNeedToWipe) { break; } } return(ret); }
/// <summary> /// 用於Load檔 /// </summary> /// <param name="savedfile">The savedfile.</param> public void AddOneLaneSetting(OneLaneSelectorVM savedfile) { LaneContainer.Add(new ucOneLaneSelector(LaneContainer.Count, savedfile)); //UI顯示 if (LaneContainer.Count == 1) { PrinterManager.getInstance().EnableLane1SettingUI(true); } else if (LaneContainer.Count == 2) { PrinterManager.getInstance().EnableLane1SettingUI(true); PrinterManager.getInstance().EnableLane2SettingUI(true); } }
private void cbDisplaySelector_SelectionChanged(object sender, SelectionChangedEventArgs e) { switch (cbDisplaySelector.SelectedIndex)//Lane1 { case 0: if (PrinterManager.getInstance().RemotePrinter[0].Printer != null) { ViewModelLocator.Atom.ChartHostVM.Dx = PrinterManager.getInstance().RemotePrinter[0].Printer.DxHistory; ViewModelLocator.Atom.ChartHostVM.Dy = PrinterManager.getInstance().RemotePrinter[0].Printer.DyHistory; ViewModelLocator.Atom.ChartHostVM.Theta = PrinterManager.getInstance().RemotePrinter[0].Printer.ThetaHistory; } else { ViewModelLocator.Atom.ChartHostVM.Dx = null; ViewModelLocator.Atom.ChartHostVM.Dy = null; ViewModelLocator.Atom.ChartHostVM.Theta = null; } break; case 1: if (PrinterManager.getInstance().RemotePrinter[1].Printer != null) { ViewModelLocator.Atom.ChartHostVM.Dx = PrinterManager.getInstance().RemotePrinter[1].Printer.DxHistory; ViewModelLocator.Atom.ChartHostVM.Dy = PrinterManager.getInstance().RemotePrinter[1].Printer.DyHistory; ViewModelLocator.Atom.ChartHostVM.Theta = PrinterManager.getInstance().RemotePrinter[1].Printer.ThetaHistory; } else { ViewModelLocator.Atom.ChartHostVM.Dx = null; ViewModelLocator.Atom.ChartHostVM.Dy = null; ViewModelLocator.Atom.ChartHostVM.Theta = null; } break; case 2: break; } }
/// <summary> /// Fuji Changover /// </summary> /// <param name="Lane">The lane.</param> /// <returns></returns> public bool CheckCurrentSharedFolder(eAssignedLane_Printer Lane) { if (PrinterManager.getInstance() == null) { return(false); } else { Log4.PrinterLogger.InfoFormat("[SOA]CheckCurrentSharedFolder({0})", Lane.ToString()); switch (Lane) { case eAssignedLane_Printer.None: return(false); case eAssignedLane_Printer.Lane1: return(PrinterManager.getInstance().RemotePrinter[0].Printer.CheckCurrentSharedFolder()); case eAssignedLane_Printer.Lane2: return(PrinterManager.getInstance().RemotePrinter[1].Printer.CheckCurrentSharedFolder()); } return(false); } }
/// <summary> /// Fuji EasyLink /// </summary> /// <param name="Lane">The lane.</param> /// <returns> /// <c>true</c> if [is need write comp image] [the specified lane]; otherwise, <c>false</c>. /// </returns> public bool IsNeedWriteCompImage(eAssignedLane_Printer Lane) { if (PrinterManager.getInstance() == null) { return(false); } else { Log4.PrinterLogger.InfoFormat("[SOA]IsNeedWriteCompImage({0})", Lane.ToString()); switch (Lane) { case eAssignedLane_Printer.None: return(false); case eAssignedLane_Printer.Lane1: return(PrinterManager.getInstance().RemotePrinter[0].Printer.IsNeedWriteCompImage()); case eAssignedLane_Printer.Lane2: return(PrinterManager.getInstance().RemotePrinter[1].Printer.IsNeedWriteCompImage()); } return(false); } }
public string GetWriteCompImagePath(eAssignedLane_Printer Lane) { if (PrinterManager.getInstance() == null) { return(string.Empty); } else { Log4.PrinterLogger.InfoFormat("[SOA]GetWriteCompImagePath({0})", Lane.ToString()); switch (Lane) { case eAssignedLane_Printer.None: return(string.Empty); case eAssignedLane_Printer.Lane1: return(PrinterManager.getInstance().RemotePrinter[0].Printer.GetWriteCompImagePath()); case eAssignedLane_Printer.Lane2: return(PrinterManager.getInstance().RemotePrinter[1].Printer.GetWriteCompImagePath()); } return(string.Empty); } }
public ePrinterVendor GetPrinterCurrentVendor(eAssignedLane_Printer Lane) { Log4.PrinterLogger.InfoFormat("[SOA]GetPrinterCurrentVendor({0})", Lane.ToString()); return(PrinterManager.getInstance().RemotePrinter[(int)Lane - 1].Printer.Vendor); }
void ExecuteDeleteList() { PrinterManager.getInstance().JudgeWipeRoutines.RemoveAt(SelectedIndex); _WipeCombination.Remove(SelectedItem); }
/// <summary> /// Fuji Changover /// </summary> /// <param name="Lane">The lane.</param> /// <returns></returns> //Fuji Changover //public bool NeedCreateTheDataToNext(eAssignedLane_Printer Lane, int size) //{ // if (PrinterManager.getInstance() == null) // return false; // else // { // InspectedPanel panel = new InspectedPanel(); // try // { // #region MMF // using (var mmf = MemoryMappedFile.CreateOrOpen("PrinterCenter_" + Lane.ToString(), size, MemoryMappedFileAccess.ReadWrite)) // { // using (var mmvStream = mmf.CreateViewStream(0, size)) // { // BinaryFormatter binFormatter = new BinaryFormatter(); // byte[] buffer = new byte[size]; // mmvStream.Read(buffer, 0, size); // panel = (InspectedPanel)binFormatter.Deserialize(new MemoryStream(buffer)); // } // } // #endregion MMF // } // catch (Exception e) // { // Log4.PrinterLogger.ErrorFormat("NeedCreate MMF Exception"); // Log4.PrinterLogger.ErrorFormat(e.Message); // return false; // } // Log4.PrinterLogger.InfoFormat("NeedCreateTheDataToNext({0},{1})", Lane.ToString(), size); // switch (Lane) // { // case eAssignedLane_Printer.None: // break; // case eAssignedLane_Printer.Lane1: // ViewModelLocator.Atom.FlowHostVM.spiInspectedData.Add("[" + eAssignedLane_Printer.Lane1.ToString() + "]" + panel.InspectStartTime); // Log4.PrinterLogger.InfoFormat(" -Push [{0}] NeedCreate CurrentInspectModeTemp.InspectMode={1} .InspectResult={2}", Lane.ToString(), panel.InspectMode, panel.InspectResult); // PrinterManager.getInstance().CurrentInspectModeTemp[0].InspectMode = panel.InspectMode; // PrinterManager.getInstance().CurrentInspectModeTemp[0].InspectResult = panel.InspectResult; // Log4.PrinterLogger.InfoFormat(" -Enqueue [{0}] NeedCreate SPI Data InspectTime = {1}", Lane.ToString(), panel.InspectStartTime); // PrinterManager.getInstance().RemotePrinter[0].Printer.InspectedPanels.Enqueue(panel); // //PrinterManager.getInstance().RemotePrinter[0].Printer.StartProcess(); // break; // case eAssignedLane_Printer.Lane2: // ViewModelLocator.Atom.FlowHostVM.spiInspectedData.Add("[" + eAssignedLane_Printer.Lane2.ToString() + "]" + panel.InspectStartTime); // Log4.PrinterLogger.InfoFormat(" -Push [{0}] NeedCreate CurrentInspectModeTemp.InspectMode={1} .InspectResult={2}", Lane.ToString(), panel.InspectMode, panel.InspectResult); // PrinterManager.getInstance().CurrentInspectModeTemp[1].InspectMode = panel.InspectMode; // PrinterManager.getInstance().CurrentInspectModeTemp[1].InspectResult = panel.InspectResult; // Log4.PrinterLogger.InfoFormat(" -Enqueue [{0}] NeedCreate SPI Data InspectTime = {1}", Lane.ToString(), panel.InspectStartTime); // PrinterManager.getInstance().RemotePrinter[1].Printer.InspectedPanels.Enqueue(panel); // //PrinterManager.getInstance().RemotePrinter[1].Printer.StartProcess(); // break; // } // return true; // } //} //*/ public bool SendCurrentInspectedPanelData(eAssignedLane_Printer Lane, int size) { if (PrinterManager.getInstance() == null) { return(false); } else { InspectedPanel panel = new InspectedPanel(); try { #region MMF using (var mmf = MemoryMappedFile.CreateOrOpen("PrinterCenter_" + Lane.ToString(), size, MemoryMappedFileAccess.ReadWrite)) { using (var mmvStream = mmf.CreateViewStream(0, size)) { BinaryFormatter binFormatter = new BinaryFormatter(); byte[] buffer = new byte[size]; mmvStream.Read(buffer, 0, size); panel = (InspectedPanel)binFormatter.Deserialize(new MemoryStream(buffer)); } } #endregion MMF } catch (Exception e) { Log4.PrinterLogger.ErrorFormat("MMF Exception"); Log4.PrinterLogger.ErrorFormat(e.Message); return(false); } Log4.PrinterLogger.InfoFormat("[D]SendCurrentInspectedPanelData({0},{1})", Lane.ToString(), size); switch (Lane) { case eAssignedLane_Printer.None: break; case eAssignedLane_Printer.Lane1: ViewModelLocator.Atom.FlowHostVM.spiInspectedData.Add("[" + eAssignedLane_Printer.Lane1.ToString() + "]" + panel.InspectStartTime); Log4.PrinterLogger.InfoFormat(" -Push [{0}] CurrentInspectModeTemp.InspectMode={1} .InspectResult={2}", Lane.ToString(), panel.InspectMode, panel.InspectResult); PrinterManager.getInstance().CurrentInspectModeTemp[0].InspectMode = panel.InspectMode; PrinterManager.getInstance().CurrentInspectModeTemp[0].InspectResult = panel.InspectResult; Log4.PrinterLogger.InfoFormat(" -Enqueue [{0}] SPI Data InspectTime = {1}", Lane.ToString(), panel.InspectStartTime); PrinterManager.getInstance().RemotePrinter[0].Printer.InspectedPanels.Enqueue(panel); //PrinterManager.getInstance().RemotePrinter[0].Printer.StartProcess(); break; case eAssignedLane_Printer.Lane2: ViewModelLocator.Atom.FlowHostVM.spiInspectedData.Add("[" + eAssignedLane_Printer.Lane2.ToString() + "]" + panel.InspectStartTime); Log4.PrinterLogger.InfoFormat(" -Push [{0}] CurrentInspectModeTemp.InspectMode={1} .InspectResult={2}", Lane.ToString(), panel.InspectMode, panel.InspectResult); PrinterManager.getInstance().CurrentInspectModeTemp[1].InspectMode = panel.InspectMode; PrinterManager.getInstance().CurrentInspectModeTemp[1].InspectResult = panel.InspectResult; Log4.PrinterLogger.InfoFormat(" -Enqueue [{0}] SPI Data InspectTime = {1}", Lane.ToString(), panel.InspectStartTime); PrinterManager.getInstance().RemotePrinter[1].Printer.InspectedPanels.Enqueue(panel); //PrinterManager.getInstance().RemotePrinter[1].Printer.StartProcess(); break; } return(true); } }
public PrinterDuplexService() { _window = (PrinterWindow)App.Current.MainWindow; _Callback = OperationContext.Current.GetCallbackChannel <IPrinterDuplexServiceCallback>(); PrinterManager.getInstance().PrinterDuplexServiceInstance = this; }
public void StartProcess(eAssignedLane_Printer Lane, string filename) { if (PrinterManager.getInstance() == null) { return; } else { Log4.PrinterLogger.InfoFormat("[SOA]StartProcess({0},{1})", Lane.ToString(), filename); //如果檔案是用XML則需要enqueue if (PrinterManager.getInstance().ExchangeMethod == SFCData.eSFCDataExchangeMethod.XML) { InspectedPanel panel = null; while (panel == null) { panel = null; try { panel = IPCHelper.DeserializeFromXML <InspectedPanel>(filename); } catch (Exception ex) { //Log4.SFCLogger.InfoFormat("Pause {0} ms", iPause); //Thread.Sleep(iPause); //Log4.SFCLogger.ErrorFormat("DeserializeFromXML File {0} Exception:{1}", AssemblyPath + "\\DataExchange\\" + e.Name, ex.Message); } } switch (Lane) { case eAssignedLane_Printer.None: break; case eAssignedLane_Printer.Lane1: ViewModelLocator.Atom.FlowHostVM.spiInspectedData.Add("[" + eAssignedLane_Printer.Lane1.ToString() + "]" + panel.InspectStartTime); Log4.PrinterLogger.InfoFormat(" -Push [{0}] CurrentInspectModeTemp.InspectMode={1} .InspectResult={2}", Lane.ToString(), panel.InspectMode, panel.InspectResult); PrinterManager.getInstance().CurrentInspectModeTemp[0].InspectMode = panel.InspectMode; PrinterManager.getInstance().CurrentInspectModeTemp[0].InspectResult = panel.InspectResult; Log4.PrinterLogger.InfoFormat(" -Enqueue [{0}] SPI Data InspectTime = {1}", Lane.ToString(), panel.InspectStartTime); PrinterManager.getInstance().RemotePrinter[0].Printer.InspectedPanels.Enqueue(panel); break; case eAssignedLane_Printer.Lane2: ViewModelLocator.Atom.FlowHostVM.spiInspectedData.Add("[" + eAssignedLane_Printer.Lane2.ToString() + "]" + panel.InspectStartTime); Log4.PrinterLogger.InfoFormat(" -Push [{0}] CurrentInspectModeTemp.InspectMode={1} .InspectResult={2}", Lane.ToString(), panel.InspectMode, panel.InspectResult); PrinterManager.getInstance().CurrentInspectModeTemp[1].InspectMode = panel.InspectMode; PrinterManager.getInstance().CurrentInspectModeTemp[1].InspectResult = panel.InspectResult; Log4.PrinterLogger.InfoFormat(" -Enqueue [{0}] SPI Data InspectTime = {1}", Lane.ToString(), panel.InspectStartTime); PrinterManager.getInstance().RemotePrinter[1].Printer.InspectedPanels.Enqueue(panel); break; } } switch (Lane) { case eAssignedLane_Printer.None: break; case eAssignedLane_Printer.Lane1: PrinterManager.getInstance().RemotePrinter[0].Printer.StartProcess(); break; case eAssignedLane_Printer.Lane2: PrinterManager.getInstance().RemotePrinter[1].Printer.StartProcess(); break; } } }