示例#1
0
        private void ButtonExcelGenerateFromData_Click(object sender, EventArgs e)
        {
            int       readerCounter = 1;
            UHFReader R1            = null;
            UHFReader R2            = null;

            foreach (Device d in dc.Devices)
            {
                if (d is UHFReader)
                {
                    if (readerCounter == 1)
                    {
                        R1 = (d as UHFReader);
                    }
                    else
                    {
                        R2 = (d as UHFReader);
                    }

                    readerCounter++;
                }
            }

            string readsDuration = "";

            if (stopWatch != null)
            {
                readsDuration = String.Format("{0:#}", stopWatch.Elapsed.TotalMilliseconds);
            }

            ExcelMediator.GenerateFileFromData(R1, R2, readsDuration);
        }
示例#2
0
        /// <summary>
        /// Closes Excel resources if any is being used, then closes form and application
        /// </summary>
        /// <param name="e"></param>
        protected override void OnFormClosed(FormClosedEventArgs e)
        {
            ExcelMediator.Close();

            base.OnFormClosed(e);

            Environment.Exit(0);
        }
示例#3
0
 private void CheckBoxUseExcel_CheckedChanged(object sender, EventArgs e)
 {
     if (checkBoxExcelUseExcel.Checked)
     {
         ExcelMediator.ExcelPrep();
     }
     else
     {
         ExcelMediator.Close();
     }
 }
示例#4
0
        /// <summary>
        /// Starts read process.
        /// <para>A thread is created for each device process.</para>
        /// <para>A thread is created for the algorithm, that applies the mathematical model.</para>
        /// </summary>
        /// <param name="devicesConnected"></param>
        public void StartReads(List <Device> devicesConnected)
        {
            ClearUIGridMetaTagsDel();

            if (devicesConnected != null)
            {
                Devices = devicesConnected;
            }

            LogUsedDevicesAndMMInformation();

            onReads = true;

            #region create threads for devices

            for (int i = 0; i < Devices.Count; i++)
            {
                if (!Devices[i].Connected)
                {
                    continue;
                }

                if (Devices[i] is UHFReader)
                {
                    UHFReader r = (Devices[i] as UHFReader);
                    r.Reset();

                    #region create thread

                    ParameterizedThreadStart processTaskThread = delegate { UseResource(r, readerCounter++, UpdateUIGridMetaTagsDel); };

                    Thread deviceThread = new Thread(processTaskThread)
                    {
                        Name = String.Format("R{0}", i)
                    };

                    #endregion

                    deviceThread.Start();

                    threadsUsed.Add(deviceThread);

                    ExcelMediator.ExcelProcessForRSSIs(r, i + 1);
                }
                else if (Devices[i] is LaserModule)
                {
                    LaserModule l = (Devices[i] as LaserModule);

                    #region create thread

                    ParameterizedThreadStart processTaskThread = delegate { UseResource(l, -1, null); };

                    Thread deviceThread = new Thread(processTaskThread)
                    {
                        Name = String.Format("L{0}", i)
                    };

                    #endregion

                    deviceThread.Start();

                    threadsUsed.Add(deviceThread);
                }
                else if (Devices[i] is Servo)
                {
                    Servo s = (Devices[i] as Servo);

                    #region create thread

                    ParameterizedThreadStart processTaskThread = delegate { UseResource(s, -1, null); };

                    Thread deviceThread = new Thread(processTaskThread)
                    {
                        Name = String.Format("S{0}", i)
                    };

                    #endregion

                    deviceThread.Start();

                    threadsUsed.Add(deviceThread);
                }
            }

            #endregion

            #region create algorithm thread

            if (useMM)
            {
                ParameterizedThreadStart processTaskThreadForAlgorithm = delegate { UseResourceForAlgorithm(Devices, RunAlgorithm); };

                Thread algorithmThread = new Thread(processTaskThreadForAlgorithm)
                {
                    Name = "M"
                };

                algorithmThread.Start();

                threadsUsed.Add(algorithmThread);
            }

            #endregion

            #region send tags to Excel

            ExcelMediator.ExcelProcessForTagsPosition(WriteLog);

            #endregion
        }