@copydoc void IOcppConfig::getConfiguration(const std::vector >&, * std::vector &, * std::vector >&); */
| 128 | * std::vector<ocpp::types::CiStringType<50u>>&); |
| 129 | */ |
| 130 | void OcppConfig::getConfiguration(const std::vector<ocpp::types::CiStringType<50u>>& keys, |
| 131 | std::vector<ocpp::types::ocpp16::KeyValue>& values, |
| 132 | std::vector<ocpp::types::CiStringType<50u>>& unknown_values) |
| 133 | { |
| 134 | if (keys.empty()) |
| 135 | { |
| 136 | // Return all available parameters |
| 137 | for (const auto& param : CONFIGURATION_VALUES) |
| 138 | { |
| 139 | KeyValue key_value; |
| 140 | key_value.key.assign(param.first); |
| 141 | key_value.readonly = ((param.second & PARAM_WRITE) == 0); |
| 142 | IniFile::Value value; |
| 143 | if ((param.second & PARAM_READ) != 0) |
| 144 | { |
| 145 | if ((param.second & PARAM_OCPP) != 0) |
| 146 | { |
| 147 | value = m_config.get(OCPP_PARAMS, param.first); |
| 148 | } |
| 149 | else |
| 150 | { |
| 151 | value = m_config.get(STACK_PARAMS, param.first); |
| 152 | } |
| 153 | key_value.value.value().assign(value.toString()); |
| 154 | } |
| 155 | values.push_back(key_value); |
| 156 | } |
| 157 | } |
| 158 | else |
| 159 | { |
| 160 | // Look for each requested parameter |
| 161 | for (const auto& key : keys) |
| 162 | { |
| 163 | const auto it = CONFIGURATION_VALUES.find(key); |
| 164 | if (it != CONFIGURATION_VALUES.end()) |
| 165 | { |
| 166 | KeyValue key_value; |
| 167 | key_value.key.assign(it->first); |
| 168 | key_value.readonly = ((it->second & PARAM_WRITE) == 0); |
| 169 | IniFile::Value value; |
| 170 | if ((it->second & PARAM_READ) != 0) |
| 171 | { |
| 172 | if ((it->second & PARAM_OCPP) != 0) |
| 173 | { |
| 174 | value = m_config.get(OCPP_PARAMS, it->first); |
| 175 | } |
| 176 | else |
| 177 | { |
| 178 | value = m_config.get(STACK_PARAMS, it->first); |
| 179 | } |
| 180 | key_value.value.value().assign(value.toString()); |
| 181 | } |
| 182 | values.push_back(key_value); |
| 183 | } |
| 184 | else |
| 185 | { |
| 186 | unknown_values.push_back(key); |
| 187 | } |