コード例 #1
0
ファイル: MainForm.cs プロジェクト: aaana/rfid
        /// <summary>
        /// Clear all components created by this form before Inventroring
        /// </summary>
        public void Clear()
        {
            // Clear Mainform
            tsslblCounter.Text = "0";
            tsslRunTime.Text   = new TimeSpan(0, 0, 0, 0).ToString();
            _startTime         = DateTime.Now;

            // Clear TagTableForm
            if (_tagTableForm.Visible)
            {
                _tagTableForm.ClearDataGridView();
            }

            // Clear RSSIGraphForm
            if (_rssiGraphForm.Visible)
            {
                _rssiGraphForm.Clear();
            }

            // Clear PhaseGraphForm
            if (_phaseGraphForm.Visible)
            {
                _phaseGraphForm.Clear();
            }

            ClearHolographics();

            _tagsTable.Clear();
            PhaseLocating.getInstance().Clear();
            ClearTagInfo(_tagsQueue);
        }
コード例 #2
0
        public void StartInventory()
        {
            SARParameter.IsSimulation = false;
            PhaseLocating.getInstance().started        = true;
            IImpinjControlService impinjControlService = ServiceManager.getOneImpinjControlService();

            impinjControlService.startInventory(RFIDReaderParameter.antennaConfiguration, RFIDReaderParameter.rOReportSpec);
            ServiceManager.closeService(impinjControlService);
            //    this.UpdateComponentStatus((int)ENUM_ROSpecEventType.Start_Of_ROSpec, SARParameter.IsSimulation);
            StartDequeueThread();
        }
コード例 #3
0
        /// <summary>
        /// Dequeue tagInfo from tags queue
        /// </summary>
        public void DequeueTagInfo()
        {
            while (true)
            {
                List <TagInfo> tagInfoList = null;
                TagInfo        tagInfo     = null;
                if (SARParameter.IsSimulation)
                {
                    if (_tagsQueue.TryDequeue(out tagInfo))
                    {
                        tagInfoList = new List <TagInfo>();
                        tagInfoList.Add(tagInfo);
                    }
                }
                else
                {
                    try
                    {
                        IImpinjControlService impinjControlService = ServiceManager.getOneImpinjControlService();
                        TagInfo[]             tagInfoArray         = impinjControlService.tryDeque();
                        ServiceManager.closeService(impinjControlService);
                        tagInfoList = new List <TagInfo>(tagInfoArray);
                    }
                    catch
                    {
                    }
                }
                if (tagInfoList != null && tagInfoList.Count > 0)
                {
                    foreach (TagInfo tagInfoInList in tagInfoList)
                    {
                        PhaseLocating.getInstance().addPhaseRecord(tagInfoInList);
                        this.BeginInvoke(method: new Action(() =>
                        {
                            this.UpdateDisplayForms(tagInfoInList, SARParameter.IsSimulation);
                        }));

                        if (_sortingBooksForm.Visible)
                        {
                            if (SARParameter.IsSimulation)
                            {
                                //处于模拟中,使用SAR(tagInfo)
                                _sortingBooksForm.SAR(tagInfoInList);
                            }
                        }
                    }
                    TagInfo lastTagInfo = tagInfoList.Last();
                    UpdateStatusStrip(lastTagInfo, false);
                    this._systemInfoForm.updateTime((long)lastTagInfo.FirstSeenTime);
                }
                Thread.Sleep(10);
            }
        }
コード例 #4
0
ファイル: MainForm.cs プロジェクト: aaana/rfid
        public void StopInventory()
        {
            PhaseLocating.getInstance().started = false;
            StopDequeueThread();

            if (tsbtnStop.Enabled)
            {
                IImpinjControlService impinjControlService = ServiceManager.getOneImpinjControlService();
                impinjControlService.stopInventory();
                ServiceManager.closeService(impinjControlService);
                // this.UpdateComponentStatus((int)ENUM_ROSpecEventType.End_Of_ROSpec, SARParameter.IsSimulation);
            }
        }
コード例 #5
0
ファイル: MainForm.cs プロジェクト: aaana/rfid
        /// <summary>
        /// Save tag file Manually
        /// </summary>
        /// <param name="filename">tag file name</param>
        public void SaveAsCSV(string filename)
        {
            SaveFileDialog fileDialog = new SaveFileDialog();

            fileDialog.RestoreDirectory = true;
            fileDialog.InitialDirectory = _filepath;
            fileDialog.Filter           = "CSV文件|*.csv*|XML文件|*.xml";
            fileDialog.FileName         = filename.Substring(1, filename.Length - 1);
            fileDialog.RestoreDirectory = true;

            if (fileDialog.ShowDialog() == DialogResult.OK)
            {
                CSVFileHelper.SaveCSV(_tagsTable.Tags, fileDialog.FileName);
                TagsWithPosTable tagsWithPosTable = PhaseLocating.getInstance().tagsWithPosTable;
                CSVFileHelper.SaveCSV(tagsWithPosTable.tags, fileDialog.FileName + "WithPos.csv");
            }
        }
コード例 #6
0
 public void updatePos()
 {
     while (true)
     {
         IDmcControlService service = ServiceManager.getOneDmcControlService();
         List <DMCPosDto>   posList = new List <DMCPosDto>(service.tryDequeue());
         ServiceManager.closeService(service);
         if (posList.Count > 0)
         {
             foreach (DMCPosDto dmcPosDto in posList)
             {
                 PhaseLocating.getInstance().addPositionRecord(dmcPosDto.x, dmcPosDto.y, dmcPosDto.microSecond);
             }
             DMCPosDto lastPosDto = posList.Last();
             D         posD       = new D(showPosition);
             this.btnHorizontalRun.Invoke(posD, lastPosDto.x, lastPosDto.y);
         }
         Thread.Sleep(10);
     }
 }