void IdasInterface::reset(IntegratorMemory* mem, double t, const double* _x, const double* _z, const double* _p) const { log("IdasInterface::reset", "begin"); auto m = to_mem(mem); // Reset the base classes SundialsInterface::reset(mem, t, _x, _z, _p); // Re-initialize copy(init_xdot_.begin(), init_xdot_.end(), NV_DATA_S(m->xzdot)); THROWING(IDAReInit, m->mem, grid_.front(), m->xz, m->xzdot); // Re-initialize quadratures if (nq_>0) THROWING(IDAQuadReInit, m->mem, m->q); // Correct initial conditions, if necessary if (calc_ic_) { THROWING(IDACalcIC, m->mem, IDA_YA_YDP_INIT , first_time_); THROWING(IDAGetConsistentIC, m->mem, m->xz, m->xzdot); } // Re-initialize backward integration if (nrx_>0) THROWING(IDAAdjReInit, m->mem); // Set the stop time of the integration -- don't integrate past this point if (stop_at_end_) setStopTime(m, grid_.back()); log("IdasInterface::reset", "end"); }
bool LedCycle::loadEepromDatas() { uint8_t tempValue; time_t tempTime; uint8_t readValues[8]; for (int i = 0; i < 8; i++) { tempValue = EEPROM.read(eepromAddress + i); if (tempValue > 60) { applyDefaultTime(); return false; } readValues[i] = tempValue; } setStartTime(hoursToTime_t(readValues[0]) + minutesToTime_t(readValues[1])); setFadeInTime(hoursToTime_t(readValues[2]) + minutesToTime_t(readValues[3])); setStopTime(hoursToTime_t(readValues[4]) + minutesToTime_t(readValues[5])); setFadeOutTime(hoursToTime_t(readValues[6]) + minutesToTime_t(readValues[7])); return true; }
bool RunData::decodeMessage(const uint8_t *buf) { auto runData = GetRunInfo(buf); if (runData->info_type_type() == InfoTypes_RunStart) { auto runStartData = static_cast<const RunStart *>(runData->info_type()); setStartTimeInNanoseconds(runStartData->start_time()); setInstrumentName(runStartData->instrument_name()->str()); setRunNumber(runStartData->run_number()); setNumberOfPeriods(runStartData->n_periods()); return true; } if (runData->info_type_type() == InfoTypes_RunStop) { auto runStopData = static_cast<const RunStop *>(runData->info_type()); setStopTime(runStopData->stop_time()); return true; } return false; // this is not a RunData message }