private void Update(byte[] data)
        {
            HoleADValues ad = RawDataToAD(data);

            for (int i = 0; i < _listAD0.Count; ++i)
            {
                /*
                 * listAD0[i].Content = string.Empty + ad.orginADValues[i / 8][i % 8][0];
                 * listAD1[i].Content = string.Empty + ad.orginADValues[i / 8][i % 8][1];
                 * listAD2[i].Content = string.Empty + ad.orginADValues[i / 8][i % 8][2];
                 * listAD3[i].Content = string.Empty + ad.orginADValues[i / 8][i % 8][3];
                 */
                //listAD0[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][0] * 1000.0 / 0xFFFF);
                //listAD1[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][1] * 1000.0 / 0xFFFF);
                //listAD2[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][2] * 1000.0 / 0xFFFF);
                //listAD3[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][3] * 1000.0 / 0xFFFF);
                int one   = (int)(ad.adValues[i / 8][i % 8][0] * 1000.0 / 0xFFFF);
                int two   = (int)(ad.adValues[i / 8][i % 8][0] * 1000.0 / 0xFFFF);
                int three = (int)(ad.adValues[i / 8][i % 8][2] * 1000.0 / 0xFFFF);
                int four  = (int)(ad.adValues[i / 8][i % 8][3] * 1000.0 / 0xFFFF);
                //if ((one >= 360 && one <= 600) && (two >= 360 && two <= 600) && (three >= 360 && three <= 600) && (four >= 360 && four <= 600))
                //if ((one >= 300 && one <= 600) && (two >= 300 && two <= 600) && (three >= 300 && three <= 600) && (four >= 300 && four <= 600))
                if (one >= 100)
                {
                    _listAD0[i].Content = "OK";
                }
                else
                {
                    _listAD0[i].Content = "ERROR";
                }
                if (i < 6)
                {
                    if (i == 4 && Global.deviceHole.HmCount == 0)
                    {
                        _listAD2[i].Content = string.Empty;
                    }
                    else
                    {
                        _listAD2[i].Content = "OK";
                    }
                }
                else
                {
                    _listAD2[i].Content = string.Empty;
                }

                if (0 == (i % 8))
                {
                    //listADDark[i].Content = string.Empty + (int)(ad.darkAdValues[i / 8] * 1000.0 / 0xFFFF);
                }
            }
        }
Example #2
0
        HoleADValues RawDataToAD(byte[] data)
        {
            int          idx      = 1;
            int          LED_ROW  = data[idx];
            int          LED_COL  = 8;
            int          LED_NUMS = 4;
            HoleADValues ad       = new HoleADValues(LED_ROW, LED_COL, LED_NUMS);

            idx = 2;
            for (int i = 0; i < LED_ROW; ++i)
            {
                ++idx;// 1个byte的长度
                // 灯全灭,暗电流
                ad.darkAdValues[i] = ((UInt32)data[idx]) + ((UInt32)(data[idx + 1] << 8)) + ((UInt32)(data[idx + 2] << 16)) + ((UInt32)(data[idx + 3] << 24));
                idx += 4;

                for (int j = 0; j < LED_COL; ++j)
                {
                    for (int k = 0; k < LED_NUMS; ++k)
                    {
                        ad.orginADValues[i][j][k] = ((UInt32)data[idx]) + ((UInt32)(data[idx + 1] << 8)) + ((UInt32)(data[idx + 2] << 16)) + ((UInt32)(data[idx + 3] << 24));
                        ad.adValues[i][j][k]      = ad.orginADValues[i][j][k];
                        idx += 4;

                        if (ad.adValues[i][j][k] < ad.darkAdValues[i])
                        {
                            ad.adValues[i][j][k] = 0;
                        }
                        else
                        {
                            ad.adValues[i][j][k] -= ad.darkAdValues[i];
                        }
                        // adValues[offset] * 1000 / 0x10000 ,将AD转换成3.3V的千分之几。直观显示。
                    }
                }
                ++idx;// 1个byte的校验
            }
            return(ad);
        }
Example #3
0
 private void Update(byte[] data)
 {
     try
     {
         HoleADValues ad = RawDataToAD(data);
         for (int i = 0; i < _listAD0.Count; ++i)
         {
             _listAD0[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][0] * 1000.0 / 0xFFFF);
             _listAD1[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][1] * 1000.0 / 0xFFFF);
             _listAD2[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][2] * 1000.0 / 0xFFFF);
             _listAD3[i].Content = string.Empty + (int)(ad.adValues[i / 8][i % 8][3] * 1000.0 / 0xFFFF);
             if (0 == (i % 8))
             {
                 _listADDark[i].Content = string.Empty + (int)(ad.darkAdValues[i / 8] * 1000.0 / 0xFFFF);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("异常(Update):\n" + ex.Message);
     }
 }