public MPMPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.MPM, lane) { string errStr = ""; string section = String.Format("MPM_{0}", lane.ToString()); //ulong inspectedLow = (ulong)((DateTime.Now.AddHours(-8) - new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds);//Test //取得RPC參數 using (IniFile ini = new IniFile()) { _RPCPara.SideIP = ini.Read(section, "SideIP"); _RPCPara.SidePort = ini.Read(section, "SidePort"); _RPCPara.SideComputerName = ini.Read(section, "SideComputerName"); _RPCPara.RPCServerPort = ini.Read(section, "RPCServerPort"); var path = ini.Read(section, "WorkingPath"); if (!String.IsNullOrEmpty(path)) { Log4.PrinterLogger.InfoFormat("Override WorkingPath ={0}", path); _RPCPara.WorkingPath = path; } if (lane == eAssignedLane_Printer.Lane2) { _RPCPara.ClientDualLaneEanbled = "1"; } else { _RPCPara.ClientDualLaneEanbled = "0"; } bool bShow; Boolean.TryParse(ini.Read(section, "bShowRPCWindow"), out bShow); _RPCPara.bShowRPCWindow = bShow; } _IsConnect = Connect(ref errStr); if (!_IsConnect) { TRMessageBox.Show("請確認MPM RPC連線"); } }
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); } }
/// <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 ePrinterVendor GetPrinterCurrentVendor(eAssignedLane_Printer Lane) { Log4.PrinterLogger.InfoFormat("[SOA]GetPrinterCurrentVendor({0})", Lane.ToString()); return(PrinterManager.getInstance().RemotePrinter[(int)Lane - 1].Printer.Vendor); }
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; } } }
/// <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); } }