public Multimedia(ScannerBase parent, string header, string description, string pluginPath)
 {
     Parent      = parent;
     Name        = header;
     Description = description;
     PluginPath  = pluginPath;
 }
        /// <summary>
        /// Starts a scanner
        /// </summary>
        public void StartScanner(ScannerBase scannerName)
        {
            currentScanner = scannerName;

            System.Reflection.MethodInfo mi = scannerName.GetType().GetMethod("Scan", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static);
            ScanDelegate objScan            = (ScanDelegate)Delegate.CreateDelegate(typeof(ScanDelegate), mi);

            Main.Logger.WriteLine("Starting scanning: " + scannerName.ScannerName);

            // Update section name
            scannerName.RootNode.SectionName = scannerName.ScannerName;
            scannerName.RootNode.Img         = this.imageList.Images[scannerName.GetType().Name];
            ScanDlg.CurrentSection           = scannerName.ScannerName;

            // Start scanning
            this.threadScan = new Thread(new ThreadStart(objScan));
            this.threadScan.Start();
            this.threadScan.Join();

            // Wait 250ms
            Thread.Sleep(250);

            if (scannerName.RootNode.Nodes.Count > 0)
            {
                ScanDlg.arrBadRegistryKeys.Add(scannerName.RootNode);
            }

            Main.Logger.WriteLine("Finished scanning: " + scannerName.ScannerName);
            Main.Logger.WriteLine();

            this.progressBar.Position++;
            SetProgressValue(this.progressBar.Position, ScanDlg.arrBadRegistryKeys.SectionCount);
        }
Beispiel #3
0
        public override void Scan(ScannerBase child)
        {
            //if (!Children.Contains(child))
            //    return;

            //if (!child.IsChecked.GetValueOrDefault())
            //    return;
        }
Beispiel #4
0
        public IScanner scanner(string Id)
        {
            ScannerBase scanner = scanners.Find(item => item.Id == Id);

            if (scanner != null)
            {
                return(scanner);
            }
            throw new Exception("扫码枪\"" + Id + "\"不存在");
        }
Beispiel #5
0
        public void LoadConfig()
        {
            hardwares = Configuration.GetConfig <List <CommunicationBase> >(nameof(hardwares));
            #region RESET
            foreach (var item in plcs)
            {
                item.ConnectionChangeEvent -= HardWareConnectionChanged;
                HardWareConnectionChanged(item, false);
                item.Close();
            }
            plcs.Clear();
            foreach (var item in scanners)
            {
                item.ConnectionChangeEvent -= HardWareConnectionChanged;
                HardWareConnectionChanged(item, false);
                item.Close();
            }
            scanners.Clear();

            #endregion
            foreach (var item in hardwares)
            {
                var      assembly     = Assembly.GetAssembly(typeof(CommunicationBase));
                var      type         = assembly.GetType("Communication." + item.HardwareId + "." + item.Kind + "`1");
                var      instanceType = type.MakeGenericType(assembly.GetType("Communication." + item.Mode));
                object[] parameters   = new object[4];
                parameters[0] = item.Id;
                parameters[1] = item.ParamStr;
                parameters[2] = item.ParamInt;
                parameters[3] = item.Timeout;
                switch (item.HardwareId)
                {
                case "Plc":
                    PlcBase plc = (PlcBase)Activator.CreateInstance(instanceType, parameters);
                    plc.ConnectionChangeEvent += HardWareConnectionChanged;
                    Task.Run(() => { plc.Connect(); });
                    plcs.Add(plc);
                    break;

                case "Scanner":
                    ScannerBase scanner = (ScannerBase)Activator.CreateInstance(instanceType, parameters);
                    scanner.ConnectionChangeEvent += HardWareConnectionChanged;
                    Task.Run(() => { scanner.Connect(); });
                    //scanner.Connect();
                    scanners.Add(scanner);
                    break;

                default:
                    break;
                }
            }
            OnPlcChanged();
            OnScannerChanged();
        }
        private void StartScanner(ScannerBase scanner)
        {
            // Start task
            ScannerBase.CancellationToken = new CancellationTokenSource();

            var childScanTask = new Task(scanner.Scan, ScannerBase.CancellationToken.Token);

            childScanTask.RunSynchronously();

            ScannerBase.CancellationToken.Dispose();
            ScannerBase.CancellationToken = null;
        }
Beispiel #7
0
        public override void Scan(ScannerBase child)
        {
            if (!(child is Plugins))
            {
                return;
            }

            if (!string.IsNullOrEmpty(child.Name) && !string.IsNullOrEmpty(child.PluginPath))
            {
                ScanPlugin(child.Name, child.PluginPath);
            }
        }
Beispiel #8
0
        private void StartScanner(ScannerBase parent)
        {
            if (!string.IsNullOrEmpty(parent.ProcessName))
            {
                if (parent.Skipped)
                {
                    return;
                }

                var ret = RunningMsg.DisplayRunningMsg(parent.Name, parent.ProcessName);

                if (ret.GetValueOrDefault() == false)
                {
                    // Skip plugin
                    if (Dispatcher.Thread != Thread.CurrentThread)
                    {
                        Dispatcher.BeginInvoke(new Action(() => ProgressBar.Value++));
                    }
                    else
                    {
                        ProgressBar.Value++;
                    }

                    parent.Skipped = true;

                    return;
                }
            }

            ScannerBase.CancellationToken = new CancellationTokenSource();

            var scanTask = new Task(parent.Scan, _cancellationTokenSource.Token);

            scanTask.RunSynchronously();

            ScannerBase.CancellationToken.Dispose();
            ScannerBase.CancellationToken = null;
        }
Beispiel #9
0
 void ICommentParser.ParseSingleLineCommtent(ScannerBase scanner, TokenInfo token)
 {
     throw new NotSupportedException();
 }
Beispiel #10
0
 void ICommentParser.ParseMultiLineCommtent(ScannerBase scanner, TokenInfo token)
 {
     if (token.LiteralBuffer.Length > 0 && token.LiteralBuffer[0] == '*') {
         DocComment v = _docCommentParser.Parse(token);
         v.Source = _currentSource;
         _comments.Enqueue(v);
     }
 }
Beispiel #11
0
 public Applications(ScannerBase parent, string header)
 {
     Parent = parent;
     Name   = header;
 }