111 lines
3.0 KiB
JavaScript
111 lines
3.0 KiB
JavaScript
|
|
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;
|