Esempio n. 1
0
        public SharedFolderWatcher(string target, eAssignedLane_Printer laneID, string path = "")
        {
            Target = target;
            LaneID = laneID;
            //WatchedFiles = new MutexFileQueue<string>(target);
            WatchedFiles.Clear();
            Watcher = new DirectoryWatcher(target);
            Watcher.AddOnCreatedEventHandler(OnCreateFileInWatchedFolder);
            Watcher.AddOnRenamedEventHandler(OnRenameFileInWatchedFolder);

            if (laneID == eAssignedLane_Printer.Lane1)
            {
                ViewModelLocator.Atom.FlowHostVM.IsLane1WFExist = true;
                ViewModelLocator.Atom.FlowHostVM.Lane1WFDisk    = target;
                ViewModelLocator.Atom.FlowHostVM.Lane1WFPath    = path;
            }

            else if (laneID == eAssignedLane_Printer.Lane2)
            {
                ViewModelLocator.Atom.FlowHostVM.IsLane2WFExist = true;
                ViewModelLocator.Atom.FlowHostVM.Lane1WFDisk    = target;
                ViewModelLocator.Atom.FlowHostVM.Lane2WFPath    = path;
            }

            Watcher.BeginWatching();
        }
Esempio n. 2
0
        /// <summary>
        /// Adds the watcher.
        /// </summary>
        /// <param name="target">網路磁碟映射</param>
        /// <param name="laneID">The lane identifier.</param>
        /// <param name="des">描述</param>
        /// <returns></returns>

        /*public Queue<string> AddWatcher(string target, eAssignedLane_Printer laneID, string des ="")
         * {
         *  if(!IsAlreadyExistWatcher(target))
         *  {
         *      var add = new SharedFolderWatcher(target,laneID,des);
         *      MonitorFolders.Add(add);
         *      return add.WatchedFiles;
         *  }else
         *  {
         *      var watched = MonitorFolders.FirstOrDefault(x => x.Target == target);
         *      return watched.WatchedFiles;
         *  }
         * }*/

        public SharedFolderWatcher AddWatcher(string target, eAssignedLane_Printer laneID, string des = "")
        {
            if (!IsAlreadyExistWatcher(target))
            {
                var add = new SharedFolderWatcher(target, laneID, des);
                MonitorFolders.Add(add);
                return(add);
            }
            else
            {
                var watched = MonitorFolders.FirstOrDefault(x => x.Target == target);
                return(watched);
            }
        }
Esempio n. 3
0
 public PrinterBase(ePrinterVendor vendor, eAssignedLane_Printer laneID)
 {
     LaneID = laneID;
     Vendor = vendor;
     InspectedPanels.Clear();
     PrinterCommonSetting = new CommonSettingVM();
     PrinterSFSetting     = new SharedFolderSettingVM();
     DxHistory            = new ObservableCollection <KeyValuePair <double, double> >();
     DyHistory            = new ObservableCollection <KeyValuePair <double, double> >();
     ThetaHistory         = new ObservableCollection <KeyValuePair <double, double> >();
     DxHistory.Clear();
     DyHistory.Clear();
     ThetaHistory.Clear();
     //Accumulation = 0;//= AccDx = AccDy = AccTheta = 0;
 }
Esempio n. 4
0
        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連線");
            }
        }
Esempio n. 5
0
        public void MarkWatchedFileCheckBox(eAssignedLane_Printer lane, string file)
        {
            switch (lane)
            {
            case eAssignedLane_Printer.Lane1:
                foreach (var f in Lane1WFList)
                {
                    if (f.Value == file)
                    {
                        f.IsChecked = true;
                        if (_IsDeleteMatchedFile)
                        {
                            System.IO.File.Delete(Lane1WFPath + "\\" + file);
                        }
                        break;
                    }
                }
                break;

            case eAssignedLane_Printer.Lane2:
                foreach (var f in Lane2WFList)
                {
                    if (f.Value == file)
                    {
                        f.IsChecked = true;
                        if (_IsDeleteMatchedFile)
                        {
                            System.IO.File.Delete(Lane2WFPath + "\\" + file);
                        }
                        break;
                    }
                }
                break;

            case eAssignedLane_Printer.None:
                break;
            }
        }
        /// <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);
            }
        }
        /// <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 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);
            }
        }
Esempio n. 10
0
 public INOTISPrinter(eAssignedLane_Printer lane) : this(ePrinterVendor.INOTIS, lane)
 {
     //WatchedFiles.Clear();
 }
Esempio n. 11
0
 public INOTISPrinter(ePrinterVendor vendor, eAssignedLane_Printer lane) : base(vendor, lane)
 {
     //InspectedPanels.EnqueueEvent += new EventQueueHandler<InspectedPanel>(InspectedPanelsEnqueue<InspectedPanel>);
 }
Esempio n. 12
0
 public HanwhaPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.HANWHA, lane)
 {
 }
Esempio n. 13
0
 //private DefectStatisticResult _DefectStatisticResult;
 public HtgdPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.HTGD, lane)
 {
 }
 public ePrinterVendor GetPrinterCurrentVendor(eAssignedLane_Printer Lane)
 {
     Log4.PrinterLogger.InfoFormat("[SOA]GetPrinterCurrentVendor({0})", Lane.ToString());
     return(PrinterManager.getInstance().RemotePrinter[(int)Lane - 1].Printer.Vendor);
 }
Esempio n. 15
0
 public EsePrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.ESE, lane)
 {
 }
        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;
                }
            }
        }
Esempio n. 17
0
 public DekPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.DEK, lane)
 {
 }
Esempio n. 18
0
 public PrinterEntity(eAssignedLane_Printer lane, ePrinterVendor vendor)
 {
     Lane          = lane;
     PrinterVendor = vendor;
 }
Esempio n. 19
0
 public GKGPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.GKG, lane)
 {
 }
Esempio n. 20
0
 public YamahaPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.YAMAHA, lane)
 {
 }
Esempio n. 21
0
 public MinamiPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.MINAMI, lane)
 {
 }
Esempio n. 22
0
 public DesenPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.DESEN, lane)
 {
 }
Esempio n. 23
0
 public EkraPrinter(eAssignedLane_Printer lane) : base(ePrinterVendor.EKRA, lane)
 {
 }