Example #1
0
 private static bool HasJobWithScanTarget(ScanTarget scanTarget, IEnumerable <Job> jobs)
 {
     foreach (var job in jobs)
     {
         if (job.AgentId == scanTarget.AgentId && job.Target == scanTarget.Target)
         {
             return(true);
         }
     }
     return(false);
 }
Example #2
0
    // Update is called once per frame
    void FixedUpdate()
    {
        GameObject[] allScanObjects = GameObject.FindGameObjectsWithTag("ScanSignature");

        Vector3 shipPos = this.ShipTransform.position;

        foreach (var obj in allScanObjects)
        {
            ScanTarget objScanTarget = this.GetScanTargetForObject(obj);

            Vector3 objPos   = obj.transform.position;
            Vector3 diffVec  = objPos - shipPos;
            float   distance = diffVec.magnitude;

            Vector2 direction = Quaternion.Inverse(ShipTransform.rotation) * diffVec.normalized;
            if (distance < SCAN_RANGE)
            {
                if (objScanTarget == null)
                {
                    ScanTargetType type          = obj.GetComponent <ScanSignature>().ScanTargetType;
                    var            newScanTarget = new ScanTarget()
                    {
                        ID        = this.objIdCounter++,
                        Distance  = distance,
                        Direction = direction,
                        Type      = type,
                        Object    = obj
                    };
                    this.objectsInRange.Add(newScanTarget);

                    CoreNetwork.Instance.Send(new ScanTargetMsg()
                    {
                        ScanTarget = newScanTarget,
                        Action     = ScanTargetMsg.Type.Add,
                        Allegiance = this.allegiance
                    });
                }
                else
                {
                    objScanTarget.Distance  = distance;
                    objScanTarget.Direction = direction;
                }
            }
            else if (distance > SCAN_RANGE && objScanTarget != null)
            {
                CoreNetwork.Instance.Send(new ScanTargetMsg()
                {
                    ScanTarget = objScanTarget,
                    Action     = ScanTargetMsg.Type.Remove,
                    Allegiance = this.allegiance
                });

                this.objectsInRange.Remove(objScanTarget);
            }
        }

        if (Time.time > this.nextTargetsUpdate)
        {
            var msg = new ScanTargetMsg()
            {
                ScanTarget = null,
                Action     = ScanTargetMsg.Type.Update,
                Allegiance = this.allegiance
            };

            foreach (var scanTarget in this.objectsInRange)
            {
                msg.ScanTarget = scanTarget;
                CoreNetwork.Instance.Send(msg);
            }
            this.nextTargetsUpdate = Time.time + UPDATE_SEND_RATE;
        }
    }
Example #3
0
	// Update is called once per frame
	void FixedUpdate () 
    {
        GameObject[] allScanObjects = GameObject.FindGameObjectsWithTag("ScanSignature");

        Vector3 shipPos = this.ShipTransform.position;
        foreach (var obj in allScanObjects)
        {
            ScanTarget objScanTarget = this.GetScanTargetForObject(obj);

            Vector3 objPos = obj.transform.position;
            Vector3 diffVec = objPos - shipPos;
            float distance = diffVec.magnitude;

            Vector2 direction = Quaternion.Inverse( ShipTransform.rotation ) * diffVec.normalized;
            if (distance < SCAN_RANGE)
            {
                if (objScanTarget == null)
                {
                    ScanTargetType type = obj.GetComponent<ScanSignature>().ScanTargetType;
                    var newScanTarget = new ScanTarget()
                    {
                        ID = this.objIdCounter++,
                        Distance = distance,
                        Direction = direction,
                        Type = type,
                        Object = obj
                    };
                    this.objectsInRange.Add(newScanTarget);

                    CoreNetwork.Instance.Send( new ScanTargetMsg()
                    {
                        ScanTarget = newScanTarget,
                        Action = ScanTargetMsg.Type.Add,
                        Allegiance = this.allegiance
                    });
                }
                else
                {
                    objScanTarget.Distance = distance;
                    objScanTarget.Direction = direction;
                }
            }
            else if (distance > SCAN_RANGE && objScanTarget != null)
            {
                CoreNetwork.Instance.Send( new ScanTargetMsg()
                {
                    ScanTarget = objScanTarget,
                    Action = ScanTargetMsg.Type.Remove,
                    Allegiance = this.allegiance
                });

                this.objectsInRange.Remove(objScanTarget);
            }
        }

        if (Time.time >this.nextTargetsUpdate)
        {
            var msg = new ScanTargetMsg()
            {
                ScanTarget = null,
                Action = ScanTargetMsg.Type.Update,
                Allegiance = this.allegiance
            };

            foreach(var scanTarget in this.objectsInRange)
            {
               msg.ScanTarget = scanTarget ;
               CoreNetwork.Instance.Send(msg);
            }
            this.nextTargetsUpdate = Time.time + UPDATE_SEND_RATE;
        }
	}
Example #4
0
        private static Job CreateJob(ScanTarget scanTarget)
        {
            var job = new Job(Guid.NewGuid(), scanTarget.AgentId, scanTarget.Target);

            return(job);
        }
Example #5
0
 private void scanButton_Click(object sender, EventArgs e)
 {
     if (!"".Equals(Properties.Settings.Default.twain_source))
         if (this.scanSemaphore.WaitOne(0))
         {
             this.scanTarget = ScanTarget.APP;
             this.scanData.Clear();
             this.dataReady = false;
             this.twain.SelectSource(Properties.Settings.Default.twain_source);
             ScanSettings settings = MainForm.CreateDefaultSettings();
             try
             {
                 this.twain.StartScanning(settings);
             }
             catch (Exception ex)
             {
                 if (Properties.Settings.Default.useADF)
                 {
                     settings.AbortWhenNoPaperDetectable = false;
                     settings.ShouldTransferAllPages = false;
                     settings.UseAutoFeeder = false;
                     settings.UseDocumentFeeder = false;
                     this.twain.StartScanning(settings);
                 }
                 else
                 {
                     throw ex;
                 }
             }
         }
         else
         {
             MessageBox.Show("Scanner in use, try to scan later or restart application in case of out-of-sync communication to scanner", "Scanner in use", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
         }
 }