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()); } }