addParametersFromJson method
Adds parameters to the module from the JSON parameterList
.
Implementation
Map<String, String> addParametersFromJson(
Map<String, dynamic> parameterList) {
final parameterInfo = <String, String>{};
parameterList.forEach((key, info) {
final value = (info as Map<String, dynamic>)['value'] as String;
final type = info['type'] as String;
final resolve = info['resolve'] as String;
// TODO(shankar4): Add support for unpacked ranges as well
final ranges = (info['packedRanges'] ?? '') as String;
// resolve = user means module parameter
// resolve = immediate means localParam
if (resolve == 'user') {
final paramType = _getParameterType(type, ranges);
if (key != value) {
createParameter(key, value, type: paramType);
try {
if (type.toLowerCase() != 'string') {
final resolvedVal = getInt(value, asIsIfUnparsed: true);
parameterInfo[key] = resolvedVal.toString();
}
} on Exception catch (e) {
RohdBridgeLogger.logger.error(
'Parameter $key has value $value which is not resolved \n $e');
}
} else {
RohdBridgeLogger.logger
.warning('Parameter $key has an illegal value $value');
}
} else {
parameterInfo[key] = value;
}
});
return parameterInfo;
}