/// <summary> /// 透光率|分光度TEST /// </summary> /// <param name="ad"></param> /// <param name="fullAd"></param> /// <param name="limit"></param> /// <param name="str"></param> /// <returns></returns> public static List <double> CaculateT(HolesAD ad, HolesAD fullAd, TLimit limit, string str) { List <double> dbList = new List <double>(); HolesT t = new HolesT(ad.LED_ROW, ad.LED_COL, ad.LED_NUMS); for (int i = 0; i < ad.LED_ROW; ++i) { for (int j = 0; j < ad.LED_COL; ++j) { for (int k = 0; k < ad.LED_NUMS; ++k) { if (0 != fullAd.adValues[i][j][k]) { t.tValues[i][j][k] = ad.adValues[i][j][k] * 1.0 / fullAd.adValues[i][j][k]; // 以下情况做特别处理 if (t.tValues[i][j][k] >= limit.T_MAX_VALUE) { t.tValues[i][j][k] = _VALUE_OVERFLOW; } else if ((t.tValues[i][j][k] >= limit._100Min) && (t.tValues[i][j][k] <= limit._100Max)) { t.tValues[i][j][k] = 1; } dbList.Add(t.tValues[i][j][k]); } else { dbList.Add(0); } } } } return(dbList); }
// 透光率 public static HolesT CaculateT(HolesAD ad, HolesAD fullAd, TLimit limit) { HolesT t = new HolesT(ad.LED_ROW, ad.LED_COL, ad.LED_NUMS); for (int i = 0; i < ad.LED_ROW; ++i) { for (int j = 0; j < ad.LED_COL; ++j) { for (int k = 0; k < ad.LED_NUMS; ++k) { if (0 == fullAd.adValues[i][j][k]) { t.tValues[i][j][k] = _VALUE_INVALID; } else { t.tValues[i][j][k] = ad.adValues[i][j][k] * 1.0 / fullAd.adValues[i][j][k]; // 以下情况做特别处理 if (t.tValues[i][j][k] >= limit.T_MAX_VALUE) { t.tValues[i][j][k] = _VALUE_OVERFLOW; } else if ((t.tValues[i][j][k] >= limit._100Min) && (t.tValues[i][j][k] <= limit._100Max)) { t.tValues[i][j][k] = 1; } } } } } return(t); }