1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright 2017 Google Inc 3 4 #include "util.hpp" 5 6 #include "ec/pid.hpp" 7 8 #include <cstring> 9 #include <iostream> 10 11 namespace pid_control 12 { 13 initializePIDStruct(ec::pid_info_t * info,const ec::pidinfo & initial)14void initializePIDStruct(ec::pid_info_t* info, const ec::pidinfo& initial) 15 { 16 info->checkHysterWithSetpt = initial.checkHysterWithSetpt; 17 info->ts = initial.ts; 18 info->proportionalCoeff = initial.proportionalCoeff; 19 info->integralCoeff = initial.integralCoeff; 20 info->derivativeCoeff = initial.derivativeCoeff; 21 info->feedFwdOffset = initial.feedFwdOffset; 22 info->feedFwdGain = initial.feedFwdGain; 23 info->integralLimit.min = initial.integralLimit.min; 24 info->integralLimit.max = initial.integralLimit.max; 25 info->outLim.min = initial.outLim.min; 26 info->outLim.max = initial.outLim.max; 27 info->slewNeg = initial.slewNeg; 28 info->slewPos = initial.slewPos; 29 info->negativeHysteresis = initial.negativeHysteresis; 30 info->positiveHysteresis = initial.positiveHysteresis; 31 } 32 dumpPIDStruct(ec::pid_info_t * info)33void dumpPIDStruct(ec::pid_info_t* info) 34 { 35 std::cerr << " ts: " << info->ts 36 << " proportionalCoeff: " << info->proportionalCoeff 37 << " integralCoeff: " << info->integralCoeff 38 << " derivativeCoeff: " << info->derivativeCoeff 39 << " feedFwdOffset: " << info->feedFwdOffset 40 << " feedFwdGain: " << info->feedFwdGain 41 << " integralLimit.min: " << info->integralLimit.min 42 << " integralLimit.max: " << info->integralLimit.max 43 << " outLim.min: " << info->outLim.min 44 << " outLim.max: " << info->outLim.max 45 << " slewNeg: " << info->slewNeg << " slewPos: " << info->slewPos 46 << " last_output: " << info->lastOutput 47 << " last_error: " << info->lastError 48 << " integral: " << info->integral << std::endl; 49 50 return; 51 } 52 53 } // namespace pid_control 54