c2000ware-core-sdk/driverlib/.meta/clocktree/pinFunction.js

84 lines
2.1 KiB
JavaScript
Raw Normal View History

2023-06-24 09:05:38 +03:00
const { getDefaultValue } = system.getScript("./defaultValue.js");
exports = {
displayName: "Pin Function",
config: [],
validate: (inst, { $ipInstance,logError, logWarning }) => {
let min = inst.$ipInstance.Min;
let max = inst.$ipInstance.Max;
const derivedClock = inst.XTAL_Freq;
let minMsg = "Configured " + inst.$ipInstance.name + " = " + derivedClock + " MHz. Minimum " + inst.$ipInstance.name + " frequency supported = " + inst.$ipInstance.Min + " MHz";
let maxMsg = "Configured " + inst.$ipInstance.name + " = " + derivedClock + " MHz. Maximum " + inst.$ipInstance.name + " frequency supported = " + inst.$ipInstance.Max + " MHz";
if (derivedClock < min)
{
if (inst.warning)
{
logWarning(minMsg, inst, inst.$ipInstance.outPins[0].name)
}
else
{
logError(minMsg, inst, inst.$ipInstance.outPins[0].name)
}
}
if (derivedClock > max)
{
if (inst.warning)
{
logWarning(maxMsg + inst.$ipInstance.Max + " MHz", inst, inst.$ipInstance.outPins[0].name)
}
else
{
logError(maxMsg , inst, inst.$ipInstance.outPins[0].name)
}
}
},
extendConfig: ({ $ipInstance }) => {
if (!_.isEmpty($ipInstance.outPins)) {
return [
{
name: "Description",
displayName: "Description",
default: $ipInstance.description,
readOnly: true
},
{
name: "XTAL_Freq",
displayName: "XTAL Frequency (in MHz)",
default: $ipInstance.outputValue,
readOnly: false
},
{
name: $ipInstance.outPins[0].name,
default: 0,
getValue: (inst) => inst.XTAL_Freq,
readOnly: false,
hidden: true
},
{
name: "minXTAL",
displayName: "Min XTAL Frequency supported (in MHz)",
default: $ipInstance.Min,
readOnly: true
},
{
name: "maxXTAL",
displayName: "Max XTAL Frequency supported (in MHz)",
default: $ipInstance.Max,
readOnly: true
}
];
} else {
// Override the input pin so it's visible with a tool tip
return [{
name: $ipInstance.description,
default: 0,
description: "Custom tool tip",
hidden: false,
getValue: () => { } // Tool will update
}]
}
},
};