Exemple #1
0
 private static void inventoryTimerEventProcessor(object obj, EventArgs args)
 {
     reader.StopOperation();
     traningTimer.Stop();
     List<Double> diffRssi;
     double rssi1_ = 0, rssi2_ = 0, rssi3_ = 0;
     double diffRssi1 = 0, diffRssi2 = 0, diffRssi3 = 0;
     int box = 0;
     Dictionary<String, Double> dicDiff = new Dictionary<string, double>();
     Map map = new Map();
     sendBox SendBox = new sendBox(map.getBox);
     if ((totalReadCounts1 >= 5) && (totalReadCounts2 >= 5) && (totalReadCounts3 >= 5))
     {
         rssi1_ = averageRssi(arrRssi1);
         rssi2_ = averageRssi(arrRssi2);
         rssi3_ = averageRssi(arrRssi3);
         diffRssi = new List<Double>();
         for (int i = 0; i < dataRssi.Count; i++)
         {
             diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
             diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
             diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
             diffRssi.Add(diffRssi1 + diffRssi2 + diffRssi3);
         }
         box = findMin(diffRssi);
     }
     else if ((totalReadCounts2 >= 5) && (totalReadCounts3 >= 5) && totalReadCounts1 <5)
     {
         rssi1_ = 0;
         rssi2_ = averageRssi(arrRssi2);
         rssi3_ = averageRssi(arrRssi3);
         diffRssi = new List<Double>();
         for (int i = 0; i < dataRssi.Count; i++)
         {
             diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
             diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
             diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
             diffRssi.Add(diffRssi1 + diffRssi2 + diffRssi3);
         }
         box = findMin(diffRssi);
     }
     else if ((totalReadCounts1 >= 5) && (totalReadCounts3 >= 5) && totalReadCounts2 < 5)
     {
         rssi1_ = averageRssi(arrRssi1);
         rssi2_ = 0;
         rssi3_ = averageRssi(arrRssi3);
         diffRssi = new List<Double>();
         for (int i = 0; i < dataRssi.Count; i++)
         {
             diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
             diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
             diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
             diffRssi.Add(diffRssi1 + diffRssi2 + diffRssi3);
         }
         box = findMin(diffRssi);
     }
     else if ((totalReadCounts1 >= 5) && (totalReadCounts2 >= 5) && totalReadCounts3 < 5)
     {
         rssi1_ = averageRssi(arrRssi1);
         rssi2_ = averageRssi(arrRssi2);
         rssi3_ = 0;
         diffRssi = new List<Double>();
         for (int i = 0; i < dataRssi.Count; i++)
         {
             diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
             diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
             diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
             diffRssi.Add(diffRssi1 + diffRssi3 + diffRssi2);
         }
         box = findMin(diffRssi);
     }
        // MessageBox.Show(box.ToString());
     SendBox(box);
     totalReadCounts1 = 0;
     totalReadCounts2 = totalReadCounts3 = totalReadCounts4 = 0;
     rssi1_ = rssi2_ = rssi3_ = 0;
     arrRssi1.Clear();
     arrRssi1.Clear();
     arrRssi3.Clear();
     arrRssi4.Clear();
     reader.InventoryMultiple();
     traningTimer.Start();
 }
Exemple #2
0
        private static void inventoryTimerEventProcessor(object obj, EventArgs args)
        {
            reader.StopOperation();
            traningTimer.Stop();
            List <Double> diffRssi;
            double        rssi1_ = 0, rssi2_ = 0, rssi3_ = 0;
            double        diffRssi1 = 0, diffRssi2 = 0, diffRssi3 = 0;
            int           box                   = 0;
            Dictionary <String, Double> dicDiff = new Dictionary <string, double>();
            Map     map     = new Map();
            sendBox SendBox = new sendBox(map.getBox);

            if ((totalReadCounts1 >= 5) && (totalReadCounts2 >= 5) && (totalReadCounts3 >= 5))
            {
                rssi1_   = averageRssi(arrRssi1);
                rssi2_   = averageRssi(arrRssi2);
                rssi3_   = averageRssi(arrRssi3);
                diffRssi = new List <Double>();
                for (int i = 0; i < dataRssi.Count; i++)
                {
                    diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
                    diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
                    diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
                    diffRssi.Add(diffRssi1 + diffRssi2 + diffRssi3);
                }
                box = findMin(diffRssi);
            }
            else if ((totalReadCounts2 >= 5) && (totalReadCounts3 >= 5) && totalReadCounts1 < 5)
            {
                rssi1_   = 0;
                rssi2_   = averageRssi(arrRssi2);
                rssi3_   = averageRssi(arrRssi3);
                diffRssi = new List <Double>();
                for (int i = 0; i < dataRssi.Count; i++)
                {
                    diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
                    diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
                    diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
                    diffRssi.Add(diffRssi1 + diffRssi2 + diffRssi3);
                }
                box = findMin(diffRssi);
            }
            else if ((totalReadCounts1 >= 5) && (totalReadCounts3 >= 5) && totalReadCounts2 < 5)
            {
                rssi1_   = averageRssi(arrRssi1);
                rssi2_   = 0;
                rssi3_   = averageRssi(arrRssi3);
                diffRssi = new List <Double>();
                for (int i = 0; i < dataRssi.Count; i++)
                {
                    diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
                    diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
                    diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
                    diffRssi.Add(diffRssi1 + diffRssi2 + diffRssi3);
                }
                box = findMin(diffRssi);
            }
            else if ((totalReadCounts1 >= 5) && (totalReadCounts2 >= 5) && totalReadCounts3 < 5)
            {
                rssi1_   = averageRssi(arrRssi1);
                rssi2_   = averageRssi(arrRssi2);
                rssi3_   = 0;
                diffRssi = new List <Double>();
                for (int i = 0; i < dataRssi.Count; i++)
                {
                    diffRssi1 = Math.Abs(rssi1_ - dataRssi[i].getRssi1());
                    diffRssi2 = Math.Abs(rssi2_ - dataRssi[i].getRssi2());
                    diffRssi3 = Math.Abs(rssi3_ - dataRssi[i].getRssi3());
                    diffRssi.Add(diffRssi1 + diffRssi3 + diffRssi2);
                }
                box = findMin(diffRssi);
            }
            // MessageBox.Show(box.ToString());
            SendBox(box);
            totalReadCounts1 = 0;
            totalReadCounts2 = totalReadCounts3 = totalReadCounts4 = 0;
            rssi1_           = rssi2_ = rssi3_ = 0;
            arrRssi1.Clear();
            arrRssi1.Clear();
            arrRssi3.Clear();
            arrRssi4.Clear();
            reader.InventoryMultiple();
            traningTimer.Start();
        }