Beispiel #1
0
  public void calculateAmounts() {
    Double tmp;

    try {
      // Annual Feed
      tmp =
          ((_sharedInstance.sumSteam / 2200.00)
                  * _sharedInstance.sumHours
                  * _sharedInstance.sumDays
                  * _sharedInstance.sumWeeks)
              + ((_sharedInstance.winSteam / 2200.00)
                  * _sharedInstance.winHours
                  * _sharedInstance.winDays
                  * _sharedInstance.winWeeks);

      _sharedInstance.annualFeed = tmp;

      // Dissolved Oxygen
      int idx = (int) (_sharedInstance.temp - 40.0) / 5;
      int maxIdx = lookupData.length - 1;
      if ((idx < 0) || (idx > maxIdx)) {
        Log.d(
            TAG,
            " Oops, temp index out of range!!! temp:" + _sharedInstance.temp + " index:" + idx);
        if (idx > maxIdx) {
          tmp = lookupData[maxIdx];
          _sharedInstance.dissolvedO2 = tmp;
        } else {
          _sharedInstance.dissolvedO2 = 0.0;
        }
      } else {
        tmp = lookupData[idx];
        _sharedInstance.dissolvedO2 = tmp;
      }
      Log.d(
          TAG,
          " temp:"
              + _sharedInstance.temp
              + " idx:"
              + idx
              + " O2:"
              + _sharedInstance.dissolvedO2
              + " (maxIdx:"
              + maxIdx
              + ")");

      // Product Amounts

      // SOLIDS

      // SS1294
      tmp = (220.0 / (_sharedInstance.maxTDS / _sharedInstance.TDS));
      _sharedInstance.ss1294Dosage = tmp;

      tmp = _sharedInstance.ss1294Dosage * _sharedInstance.annualFeed / 1000.0;
      _sharedInstance.ss1294Usage = tmp;

      // SS1295
      tmp =
          (_sharedInstance.dissolvedO2 * 10.0)
              + (35.0 / (_sharedInstance.maxTDS / _sharedInstance.TDS));
      _sharedInstance.ss1295Dosage = tmp;

      tmp = _sharedInstance.ss1295Dosage * _sharedInstance.annualFeed / 1000.0;
      _sharedInstance.ss1295Usage = tmp;

      // SS1350
      tmp =
          (_sharedInstance.dissolvedO2 * 10.0)
              + (35.0 / (_sharedInstance.maxTDS / _sharedInstance.TDS));
      _sharedInstance.ss1350Dosage = tmp;

      tmp = _sharedInstance.ss1350Dosage * _sharedInstance.annualFeed / 1000.0;
      _sharedInstance.ss1350Usage = tmp;

      // SS1095
      tmp =
          (_sharedInstance.dissolvedO2 * 9.0)
              + (28.0 / (_sharedInstance.maxTDS / _sharedInstance.TDS));
      _sharedInstance.ss1095Dosage = tmp;

      tmp = _sharedInstance.ss1095Dosage * _sharedInstance.annualFeed / 1000.0;
      _sharedInstance.ss1095Usage = tmp;

      // SS1995
      tmp =
          (_sharedInstance.CaHardness - _sharedInstance.MAlk)
              + ((1000.0 - _sharedInstance.minCausticAlk)
                  / (_sharedInstance.maxTDS / _sharedInstance.TDS));

      // -ve number means no need for product, so reset to 0.0
      if (tmp < 0.0) {
        _sharedInstance.ss1995Dosage = 0.0;
        _sharedInstance.ss1995Usage = 0.0;
      } else {
        _sharedInstance.ss1995Dosage = tmp;

        tmp = _sharedInstance.ss1995Dosage * _sharedInstance.annualFeed / 1000.0;
        _sharedInstance.ss1995Usage = tmp;
      }

      // SS2295
      tmp =
          (45.0 / (_sharedInstance.maxTDS / _sharedInstance.TDS))
              + (1.11 * _sharedInstance.CaHardness);
      _sharedInstance.ss2295Dosage = tmp;

      tmp = _sharedInstance.ss2295Dosage * _sharedInstance.annualFeed / 1000.0;
      _sharedInstance.ss2295Usage = tmp;

      // SS8985
      tmp = (_sharedInstance.MAlk / 3.0);
      _sharedInstance.ss8985Dosage = tmp;

      tmp = _sharedInstance.ss8985Dosage * _sharedInstance.annualFeed / 1000.0;
      _sharedInstance.ss8985Usage = tmp;

      // LIQUIDS

      _sharedInstance.minAlkalinity = 15.0 / 100.0 * _sharedInstance.maxTDS;
      Log.v(TAG, "minAlk: " + round1(_sharedInstance.minAlkalinity));

      tmp = _sharedInstance.maxTDS / _sharedInstance.TDS; // common term

      // S5
      _sharedInstance.s5Dosage = _sharedInstance.dissolvedO2 * 35.0 + (120.0 / tmp);
      _sharedInstance.s5Usage = _sharedInstance.s5Dosage * _sharedInstance.annualFeed / 1000.0;

      // S10
      _sharedInstance.s10Dosage = _sharedInstance.dissolvedO2 * 18.0 + (65.0 / tmp);
      _sharedInstance.s10Usage = _sharedInstance.s10Dosage * _sharedInstance.annualFeed / 1000.0;

      // S123
      _sharedInstance.s123Dosage = _sharedInstance.dissolvedO2 * 65.0 + (150.0 / tmp);
      _sharedInstance.s123Usage = _sharedInstance.s123Dosage * _sharedInstance.annualFeed / 1000.0;

      // S125
      _sharedInstance.s125Dosage = _sharedInstance.dissolvedO2 * 40.0 + (240.0 / tmp);
      _sharedInstance.s125Usage = _sharedInstance.s125Dosage * _sharedInstance.annualFeed / 1000.0;

      // S26
      _sharedInstance.s26Dosage = (600.0 / tmp);
      _sharedInstance.s26Usage = _sharedInstance.s26Dosage * _sharedInstance.annualFeed / 1000.0;

      // S28
      _sharedInstance.s28Dosage = (600.0 / tmp);
      _sharedInstance.s28Usage = _sharedInstance.s28Dosage * _sharedInstance.annualFeed / 1000.0;

      // S19
      _sharedInstance.s19Dosage =
          _sharedInstance.CaHardness
              - _sharedInstance.MAlk
              + ((1000.0 - _sharedInstance.minAlkalinity) / tmp);
      if (_sharedInstance.s19Dosage < 0.0) {
        _sharedInstance.s19Usage = 0.0;
        _sharedInstance.s19Dosage = 0.0;
      } else {
        _sharedInstance.s19Usage = _sharedInstance.s19Dosage * _sharedInstance.annualFeed / 1000.0;
      }

      // S456
      _sharedInstance.s456Dosage = 150.0 * (_sharedInstance.CaHardness + 0.25) / tmp;
      _sharedInstance.s456Usage = _sharedInstance.s456Dosage * _sharedInstance.annualFeed / 1000.0;

      // S124
      _sharedInstance.s124Dosage = (1200.0 / tmp);
      _sharedInstance.s124Usage = _sharedInstance.s124Dosage * _sharedInstance.annualFeed / 1000.0;

      // S22
      _sharedInstance.s22Dosage = (200.0 / tmp) + (4.0 * _sharedInstance.CaHardness);
      _sharedInstance.s22Usage = _sharedInstance.s22Dosage * _sharedInstance.annualFeed / 1000.0;

      // S23
      _sharedInstance.s23Dosage = (1000.0 / tmp) + (20.0 * _sharedInstance.CaHardness);
      _sharedInstance.s23Usage = _sharedInstance.s23Dosage * _sharedInstance.annualFeed / 1000.0;

      // S88
      _sharedInstance.s88Dosage = 3.0 * _sharedInstance.MAlk;
      _sharedInstance.s88Usage = _sharedInstance.s88Dosage * _sharedInstance.annualFeed / 1000.0;

      // S95
      _sharedInstance.s95Dosage = 5.0 * _sharedInstance.MAlk;
      _sharedInstance.s95Usage = _sharedInstance.s95Dosage * _sharedInstance.annualFeed / 1000.0;

    } catch (Exception e) {
      Log.e(TAG, "calculateAmounts() - exception: " + e.toString());
    }
  }