c2000ware-core-sdk/driverlib/.meta/mindbxbar.js

111 lines
3.0 KiB
JavaScript
Raw Normal View History

2023-06-24 09:05:38 +03:00
let Common = system.getScript("/driverlib/Common.js");
let device_driverlib_peripheral =
system.getScript("/driverlib/device_driverlib_peripherals/" +
Common.getDeviceName().toLowerCase() + "_xbar.js");
/* Intro splash on GUI */
let longDescription = "The Minimum Dead-band X-BAR is used to route signals from the CLB Outputs and EPWM module to" +
" the Minimum Dead-band sub-module";
var mindbXbarCount = 16
/* Array of Input X-bar configurables that are common across device families */
var config = [
];
var inputSignalOptions = []
for (var inputSignal of device_driverlib_peripheral.XBAR_InputSignal)
{
if (inputSignal.name.indexOf("XBAR_MINDB_") != -1)
{
inputSignalOptions.push({
name: inputSignal.name.replace("XBAR_MINDB_","")
})
}
}
var instanceNumOptions = []
for (var instanceNum of device_driverlib_peripheral.XBAR_InputNum)
{
instanceNumOptions.push({
name: instanceNum.name
})
}
var mindbxbarInstanceConfig = {
name : "mindbxbarInstance",
displayName : "Instance",
description : 'The MINDB X-Bar Instance',
hidden : false,
default : instanceNumOptions[0].name,
options : instanceNumOptions
}
var mindbxbarInputConfig = {
name : "mindbxbarInput",
displayName : "Input Selection",
description : 'Input Selection for this MINDB X-Bar Instance',
hidden : false,
default : inputSignalOptions[0].name,
options : inputSignalOptions
}
var mindbxbarLOCKConfig = {
name : "mindbxbarLock",
displayName : "INPUT Lock",
description : 'Lock this MINDB X-Bar',
hidden : false,
default : false
}
config.push(mindbxbarInstanceConfig);
config.push(mindbxbarInputConfig);
config.push(mindbxbarLOCKConfig);
function onValidate(inst, validation)
{
var usedInsts = [];
for (var instance_index in inst.$module.$instances)
{
var instance_obj = inst.$module.$instances[instance_index];
usedInsts.push(instance_obj.mindbxbarInstance);
}
var duplicatesResult = Common.findDuplicates(usedInsts)
if (duplicatesResult.duplicates.length != 0)
{
var allDuplicates = "";
for (var duplicateNamesIndex in duplicatesResult.duplicates)
{
allDuplicates = allDuplicates + Common.stringOrEmpty(allDuplicates, ", ")
+ duplicatesResult.duplicates[duplicateNamesIndex];
}
validation.logError(
"This instance is already in use! Duplicates: " + allDuplicates,
inst, "mindbxbarInstance");
}
}
var mindbxbarModule = {
peripheralName: "MINDBXBAR",
displayName: "MINDB XBAR",
maxInstances: mindbXbarCount,
defaultInstanceName: "myMINDBXBARINPUT",
description: "Minimum Dead-band X-bar",
config: config,
validate : onValidate,
templates: {
boardc : "/driverlib/mindbxbar/mindbxbar.board.c.xdt",
boardh : "/driverlib/mindbxbar/mindbxbar.board.h.xdt"
},
};
exports = mindbxbarModule;