2023-06-24 09:05:38 +03:00
let Common = system . getScript ( "/driverlib/Common.js" ) ;
let PinmuxMigrations = system . getScript ( "/driverlib/pinmux/pinmux_migration.js" ) ;
let PinmuxAdditionalUseCases = system . getScript ( "/driverlib/pinmux/pinmux_additionalUseCases.js" ) ;
var NO _DEVICE _PIN _FOUND = "No Device Pin Found"
let PINMUX _QUAL _GROUPNAME = "GROUP_pinmuxQual"
function getGpioQualificationModInstDefinitions ( peripheralName , inst ) {
var ownedInstances = [ ]
var selectedPinmuxInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , inst . useCase ) ;
//console.log(selectedPinmuxInterfaces)
for ( var interfaceName of selectedPinmuxInterfaces )
{
var legacyInclusiveNames = PinmuxMigrations . interfaceInclusiveRename ( interfaceName , peripheralName ) ;
//console.log(legacyInclusiveNames)
//console.log(interfaceName)
var qualModName = interfaceNameToQualModeName ( legacyInclusiveNames . inclusiveName , peripheralName ) ;
var qualModDisplayName = legacyInclusiveNames . inclusiveName . replace ( "#" , "" ) . replace ( "@" , "" ) . replace ( "_" , " " )
//console.log(qualModName)
if ( ! legacyInclusiveNames . legacyName )
{
ownedInstances . push ( {
name : qualModName ,
displayName : qualModDisplayName + " Pin Qualification" ,
//legacyNames: legacyInclusiveNames.legacyName,
moduleName : "/driverlib/gpio/gpioQual.js" ,
collapsed : true ,
group : PINMUX _QUAL _GROUPNAME ,
args : {
$name : inst . $name + "_" + qualModName ,
} ,
requiredArgs : {
}
} )
}
else
{
var legacyNamesArray = [ ] ;
for ( let i = 0 ; i < legacyInclusiveNames . legacyName . length ; i ++ )
{
var legacyQualName = interfaceNameToQualModeName ( legacyInclusiveNames . legacyName [ i ] , peripheralName ) ;
if ( ( legacyQualName != qualModName ) && ( ! legacyNamesArray . includes ( legacyQualName ) ) )
{
legacyNamesArray [ i ] = legacyQualName
}
}
ownedInstances . push ( {
name : qualModName ,
displayName : qualModDisplayName + " Pin Qualification" ,
legacyNames : legacyNamesArray ,
moduleName : "/driverlib/gpio/gpioQual.js" ,
collapsed : true ,
group : PINMUX _QUAL _GROUPNAME ,
args : {
$name : inst . $name + "_" + qualModName ,
} ,
requiredArgs : {
}
} )
}
//console.log(ownedInstances);
}
return ownedInstances
}
function interfaceNameToQualModeName ( interfaceName , peripheralName )
{
var interfaceNameCopy = PinmuxMigrations . interfaceMigrationRename ( interfaceName , peripheralName )
return interfaceNameCopy . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) . replace ( "_" , "" ) . replace ( "-" , "" ) . replace ( peripheralName . toLowerCase ( ) , "" ) + "Qual"
}
function addPinMuxQualGroupToConfig ( mod )
{
//console.log(mod)
//console.log(mod.config)
mod . config . push ( {
name : PINMUX _QUAL _GROUPNAME ,
displayName : "PinMux Qualification" ,
config : [ ] ,
} )
}
function getDeviceDACName ( dacInput )
{
//
// dacInput is DACA DACB etc.
//
var dacout = dacInput + "_OUT"
if ( [ "F2838x" ] . includes ( Common . getDeviceName ( ) ) )
{
dacout = dacInput . substring ( 0 , 3 ) + "OUT" + dacInput . substring ( 3 )
return dacout
}
return dacout
}
function getDeviceADCName ( adcInput )
{
if ( [ "F2807x" , "F2837xD" , "F2837xS" , "F2838x" ] . includes ( Common . getDeviceName ( ) ) )
{
return "ADCIN" + adcInput ;
}
else
{
return adcInput ;
}
}
// Functions for Calculated Values
function calculateADCPinInfo ( inst , sociX ) {
var adcMod = inst . adcBase . replace ( "_BASE" , "" ) . replace ( "ADC" , "" ) ;
var sociChannel = inst [ "soc" + sociX . toString ( ) + "Channel" ] . replace ( "ADC_CH_ADCIN" , "" ) . replace ( "ADCIN" , "" ) ;
var sociChannels = sociChannel . split ( "_" ) ;
var adcInputs = "" ;
var adcChannelArray = [ ]
var adcPinInfosDescriptions = "" ;
var adcPinInfosArray = [ ] ;
for ( sociChannel of sociChannels )
{
var adcInput = adcMod + sociChannel ;
adcChannelArray . push ( adcInput ) ;
adcInputs += ( adcInputs != "" ) ? ", " : "" ;
adcInputs += adcInput ;
var adcPinInfos = findAllAnalogPin ( getDeviceADCName ( adcInput ) ) ;
if ( [ "14" , "15" ] . includes ( sociChannel ) )
{
if ( adcPinInfos . length <= 0 )
{
adcPinInfos = findAllAnalogPin ( "ADCIN" + sociChannel ) ;
}
}
adcPinInfosDescriptions += ( adcPinInfosDescriptions != "" ) ? ", " : "" ;
adcPinInfosDescriptions += getDevicePinInfoDescription ( adcPinInfos ) ;
for ( var apinfo of adcPinInfos ) {
adcPinInfosArray . push ( apinfo . PinDesignSignalName ) ;
}
}
return {
"adcInput" : adcInput ,
"adcInputs" : adcInputs ,
"adcPinInfosDescriptions" : adcPinInfosDescriptions ,
"adcPinInfosArray" : adcPinInfosArray ,
"adcChannelArray" : adcChannelArray
}
}
function findAllAnalogPin ( selectedChannel )
{
var selectedPinName = "" ;
var selectedPinSignalName = "" ;
var replaceCommaWith = "/" ;
var pinInfos = [ ] ;
for ( var devicePinIndex in system . deviceData . devicePins ) {
var devicePin = system . deviceData . devicePins [ devicePinIndex ]
if ( ! isNaN ( devicePin . designSignalName ) ) {
continue
}
var pin = devicePin . name . replace ( /,/g , replaceCommaWith )
var pinSignalName = devicePin . designSignalName . replace ( /,/g , replaceCommaWith )
var pinSignalNamesSplitArray = pinSignalName . split ( '/' )
for ( var pinSignalNameSplitIndex = 0 ;
pinSignalNameSplitIndex < pinSignalNamesSplitArray . length ;
pinSignalNameSplitIndex ++ )
{
var pinSignalNameSplitItem = pinSignalNamesSplitArray [ pinSignalNameSplitIndex ] . trim ( ) ;
if ( selectedChannel == pinSignalNameSplitItem )
{
selectedPinName = pin ;
selectedPinSignalName = pinSignalName ;
pinInfos = pinInfos . concat ( [ {
PinName : selectedPinName ,
PinSignalName : selectedPinSignalName ,
PinDesignSignalName : devicePin . designSignalName ,
} ] ) ;
}
}
}
return pinInfos ;
}
function findAnalogPin ( selectedChannel )
{
var selectedPinName = "" ;
var selectedPinSignalName = "" ;
var replaceCommaWith = "/" ;
for ( var devicePinIndex in system . deviceData . devicePins ) {
var devicePin = system . deviceData . devicePins [ devicePinIndex ]
if ( ! isNaN ( devicePin . designSignalName ) ) {
continue
}
var pin = devicePin . name . replace ( /,/g , replaceCommaWith )
var pinSignalName = devicePin . designSignalName . replace ( /,/g , replaceCommaWith )
var pinSignalNamesSplitArray = pinSignalName . split ( '/' )
for ( var pinSignalNameSplitIndex = 0 ;
pinSignalNameSplitIndex < pinSignalNamesSplitArray . length ;
pinSignalNameSplitIndex ++ )
{
var pinSignalNameSplitItem = pinSignalNamesSplitArray [ pinSignalNameSplitIndex ] . trim ( ) ;
if ( selectedChannel == pinSignalNameSplitItem )
{
selectedPinName = pin ;
selectedPinSignalName = pinSignalName ;
return {
valid : true ,
PinName : selectedPinName ,
PinSignalName : selectedPinSignalName ,
PinDesignSignalName : devicePin . designSignalName ,
}
}
}
}
return {
valid : false ,
PinName : "" ,
PinSignalName : "" ,
PinDesignSignalName : "" ,
}
}
function getADCPinsUsed ( )
{
let device _driverlib _peripheral =
system . getScript ( "/driverlib/device_driverlib_peripherals/" +
Common . getDeviceName ( ) . toLowerCase ( ) + "_adc.js" ) ;
var mods = system . modules [ '/driverlib/adc.js' ] ;
var adcPins = [ ] ;
if ( mods != null )
{
for ( var modInst of mods . $instances )
{
for ( var socIndex in device _driverlib _peripheral . ADC _SOCNumber ) {
var currentSOC = device _driverlib _peripheral . ADC _SOCNumber [ socIndex ] . name
var soci = ( currentSOC ) . replace ( /[^0-9]/g , '' )
if ( ( modInst . enabledSOCs ) . includes ( currentSOC ) ) {
var pinSelectedArray = calculateADCPinInfo ( modInst , soci ) . adcPinInfosArray
adcPins = adcPins . concat ( pinSelectedArray ) ;
}
}
}
}
return adcPins ;
}
function getCMPSSPinsUsed ( )
{
var mods = system . modules [ '/driverlib/cmpss.js' ] ;
let ComparatorInputs = system . getScript ( "/driverlib/cmpss/cmpss_inputSignals.js" )
var cmpssPins = [ ] ;
if ( mods != null )
{
for ( var modInst of mods . $instances )
{
if ( modInst . asysCMPHPMXSELValue )
{
var tempPinName = ComparatorInputs . CMPSS _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssBase ] [ modInst . asysCMPHPMXSELValue ] . displayName
var tempPinNameH = ComparatorInputs . CMPSS _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssBase ] [ modInst . asysCMPHPMXSELValue ] . displayName
var tempPinInfoH = findAllAnalogPin ( getDeviceADCName ( tempPinName . split ( "/" ) [ 0 ] ) )
for ( var apinfo of tempPinInfoH ) {
var pinSelected = apinfo . PinDesignSignalName ;
cmpssPins . push ( pinSelected ) ;
}
}
if ( modInst . asysCMPLPMXSELValue )
{
var tempPinName = ComparatorInputs . CMPSS _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssBase ] [ modInst . asysCMPLPMXSELValue ] . displayName
var tempPinNameL = ComparatorInputs . CMPSS _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssBase ] [ modInst . asysCMPLPMXSELValue ] . displayName
var tempPinInfoL = findAllAnalogPin ( getDeviceADCName ( tempPinName . split ( "/" ) [ 0 ] ) )
for ( var apinfo of tempPinInfoL ) {
var pinSelected = apinfo . PinDesignSignalName ;
cmpssPins . push ( pinSelected ) ;
}
}
}
}
return cmpssPins ;
}
function getCMPSSLitePinsUsed ( )
{
var mods = system . modules [ '/driverlib/cmpss_lite.js' ] ;
let ComparatorLiteInputs = system . getScript ( "/driverlib/cmpss_lite/cmpss_lite_inputSignals.js" )
var cmpssLitePins = [ ] ;
if ( mods != null )
{
for ( var modInst of mods . $instances )
{
if ( modInst . asysCMPHPMXSELValue )
{
var tempPinName = ComparatorLiteInputs . CMPSSLITE _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssLiteBase ] [ modInst . asysCMPHPMXSELValue ] . displayName
var tempPinNameH = ComparatorLiteInputs . CMPSSLITE _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssLiteBase ] [ modInst . asysCMPHPMXSELValue ] . displayName
var tempPinInfoH = findAllAnalogPin ( getDeviceADCName ( tempPinName . split ( "/" ) [ 0 ] ) )
for ( var apinfo of tempPinInfoH ) {
var pinSelected = apinfo . PinDesignSignalName ;
cmpssLitePins . push ( pinSelected ) ;
}
}
if ( modInst . asysCMPLPMXSELValue )
{
var tempPinName = ComparatorLiteInputs . CMPSSLITE _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssLiteBase ] [ modInst . asysCMPLPMXSELValue ] . displayName
var tempPinNameL = ComparatorLiteInputs . CMPSSLITE _comparatorInputSignals [ Common . getDeviceName ( ) ] [ modInst . cmpssLiteBase ] [ modInst . asysCMPLPMXSELValue ] . displayName
var tempPinInfoL = findAllAnalogPin ( getDeviceADCName ( tempPinName . split ( "/" ) [ 0 ] ) )
for ( var apinfo of tempPinInfoL ) {
var pinSelected = apinfo . PinDesignSignalName ;
cmpssLitePins . push ( pinSelected ) ;
}
}
}
}
return cmpssLitePins ;
}
function getDevicePinInfoDescription ( pinInfos )
{
if ( pinInfos . length > 0 )
{
var pinInfoDescriptions = "" ;
for ( var pinInfo of pinInfos )
{
pinInfoDescriptions += pinInfo . PinName + ": " + pinInfo . PinSignalName + ", " ;
}
pinInfoDescriptions = pinInfoDescriptions . substring ( 0 , pinInfoDescriptions . length - ", " . length ) ;
return pinInfoDescriptions ;
}
else
{
return NO _DEVICE _PIN _FOUND
}
}
function useCaseChanged ( inst , ui )
{
try
{
if ( inst . useCase == "CUSTOM" ) {
ui . useInterfacePins . hidden = false ;
}
else {
ui . useInterfacePins . hidden = true ;
}
} catch ( error )
{
console . log ( "An error occured when changing the pinmux usecase" ) ;
}
}
function addCustomPinmuxEnumToConfig ( module )
{
var peripheralName = module . peripheralName ;
var options = [ ]
var InterfaceNames = getPeripheralInterfaces ( peripheralName ) ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
try
{
if ( interfaceName . includes ( "EMU0" ) || interfaceName . includes ( "EMU1" ) || interfaceName . includes ( "AUXCLKIN" ) )
{
continue ;
}
} catch ( error ) { }
var interfaceInclusiveName = PinmuxMigrations . interfaceInclusiveRename ( interfaceName , peripheralName )
options . push ( { name : interfaceName , displayName : interfaceInclusiveName . inclusiveName . replace ( "#" , "" ) . replace ( "@" , "" ) } ) ;
}
module . config . push (
{
name : "useInterfacePins" ,
displayName : "Pins Used" ,
description : 'The pins used by the pinmux section.' ,
hidden : true ,
default : [ ] ,
minSelections : 0 ,
options : options ,
}
/ * ,
{
name : "cfgMultiEnum2" ,
//getDisabledOptions: generateDisabledOptions("cfgMultiEnum2"),
displayName : "MultiEnum2" ,
options : [
{
name : "opt1" ,
displayName : "Option1"
} ,
{
name : "opt2" ,
displayName : "Option2"
} ,
{
name : "opt3" ,
displayName : "Option3"
}
] ,
default : [ "opt1" , "opt2" ]
} , * /
)
}
function usbPinmuxRequirements ( inst )
{
var peripheralName = "USB" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
if ( pt . displayName . includes ( "EPEN" ) || pt . displayName . includes ( "FLT" ) )
{
}
else
{
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
}
i ++ ;
}
let usb = {
name : "usb" ,
displayName : "USB Peripheral" ,
interfaceName : "USB" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ usb ] ;
}
function uppPinmuxRequirements ( inst )
{
var peripheralName = "UPP" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
//console.log(useCaseInterfaces);
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
//console.log(InterfaceNames);
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let upp = {
name : "upp" ,
displayName : "UPP Peripheral" ,
interfaceName : "UPP" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ upp ] ;
}
function fsitxPinmuxRequirements ( inst )
{
var peripheralName = "FSITX" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let fsitx = {
name : "fsitx" ,
displayName : "FSITX Peripheral" ,
interfaceName : "FSITX" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ fsitx ] ;
}
function fsirxPinmuxRequirements ( inst )
{
var peripheralName = "FSIRX" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let fsirx = {
name : "fsirx" ,
displayName : "FSIRX Peripheral" ,
interfaceName : "FSIRX" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ fsirx ] ;
}
function emif1PinmuxRequirements ( inst )
{
var peripheralName = "EMIF1" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 ||
// Special Case
interfaceName . includes ( "A20" ) ||
interfaceName . includes ( "A21" ) )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let emif1 = {
name : "emif1" ,
displayName : "EMIF1 Peripheral" ,
interfaceName : "EMIF1" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ emif1 ] ;
}
function emif2PinmuxRequirements ( inst )
{
var peripheralName = "EMIF2" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 ||
// No options available
system . deviceData . interfaces [ peripheralName ] . interfacePins [ interfaceName ] . pinMappings [ 0 ] . pinMappings . length <= 0 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let emif2 = {
name : "emif2" ,
displayName : "EMIF2 Peripheral" ,
interfaceName : "EMIF2" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ emif2 ] ;
}
function otherPinmuxRequirements ( inst )
{
var peripheralName = "OTHER" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 ||
// No options available
system . deviceData . interfaces [ peripheralName ] . interfacePins [ interfaceName ] . pinMappings [ 0 ] . pinMappings . length <= 0 ||
// No EMUs
// Special Case
interfaceName . includes ( "EMU" ) ||
// No AUXCLKIN
// Special Case
interfaceName . includes ( "AUXCLKIN" )
)
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let other = {
name : "other" ,
displayName : "Other Peripheral" ,
interfaceName : "OTHER" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ other ] ;
}
function analogPinmuxRequirements ( inst )
{
var peripheralName = "ANALOG" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 ||
// No options available
system . deviceData . interfaces [ peripheralName ] . interfacePins [ interfaceName ] . pinMappings [ 0 ] . pinMappings . length <= 0
)
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let analog = {
name : "analog" ,
displayName : "ANALOG Peripheral" ,
interfaceName : "ANALOG" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ analog ] ;
}
function dcdcPinmuxRequirements ( inst )
{
var peripheralName = "DC-DC" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let dcdc = {
name : "dcdc" ,
displayName : "DC-DC Peripheral" ,
interfaceName : "DC-DC" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ dcdc ] ;
}
function linPinmuxRequirements ( inst )
{
var peripheralName = "LIN" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let lin = {
name : "lin" ,
displayName : "LIN Peripheral" ,
interfaceName : "LIN" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ lin ] ;
}
function spiPinmuxRequirements ( inst )
{
var peripheralName = "SPI" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
var legacyInclusiveNames = PinmuxMigrations . interfaceInclusiveRename ( interfaceName , peripheralName ) ;
//console.log(legacyInclusiveNames)
if ( ! legacyInclusiveNames . legacyName )
{
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : legacyInclusiveNames . inclusiveName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" ,
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) ,
interfaceNames : [ interfaceName ]
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
else
{
//console.log(interfaceName)
//console.log(legacyInclusiveNames.legacyName)
for ( let i = 0 ; i < legacyInclusiveNames . legacyName . length ; i ++ )
{
legacyInclusiveNames . legacyName [ i ] = legacyInclusiveNames . legacyName [ i ] . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" ;
}
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : legacyInclusiveNames . inclusiveName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
legacyNames : legacyInclusiveNames . legacyName ,
displayName : legacyInclusiveNames . inclusiveName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
//console.log(resources)
}
}
//console.log(resources)
let spi = {
name : "spi" ,
displayName : "SPI Peripheral" ,
interfaceName : "SPI" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ spi ] ;
}
function getPeripheralUseCaseNames ( peripheralName )
{
var useCaseOptions = [ ] ;
if ( system . deviceData . interfaces [ peripheralName ] == null )
return [ { name : "ALL" } , { name : "CUSTOM" } ] ;
var useCases = Object . keys ( system . deviceData . interfaces [ peripheralName ] . useCases ) ;
var containsALL = false ;
for ( var useCaseNumber in useCases )
{
var useCaseName = useCases [ useCaseNumber ] ;
if ( useCaseName == "ALL" )
{
containsALL = true ;
}
useCaseOptions . push ( { name : useCaseName , displayName : PinmuxMigrations . useCaseInclusiveRename ( useCaseName , peripheralName ) } ) ;
}
if ( ! containsALL )
{
useCaseOptions . unshift ( { name : "ALL" } ) ;
}
useCaseOptions . unshift ( { name : "CUSTOM" } ) ;
return useCaseOptions ;
}
function addPeripheralUseCaseCustom ( )
{
}
function getAdditionalUseCaseNameConfigsNotInDeviceData ( periph )
{
var useCaseNameConfigs = [ ]
var additionalUseCases = PinmuxAdditionalUseCases . getAdditionalUseCase ( periph )
for ( var addUseCase of additionalUseCases )
{
var matchingUseCaseName = getPeripheralUseCaseNames ( periph ) . filter ( useCaseOption => useCaseOption . name == addUseCase . name ) ;
if ( matchingUseCaseName . length < 1 )
{
useCaseNameConfigs . push ( {
name : addUseCase . name
} )
}
}
return useCaseNameConfigs ;
}
function getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName )
{
var useCaseInterfaces = [ ] ;
//console.log("Finding use cases...");
//console.log(system.deviceData.interfaces[peripheralName].useCases);
if ( useCaseName == "CUSTOM" )
{
//console.log("Doing custom use cases...");
return getCustomPeripheralInterfaces ( inst , peripheralName ) ;
}
if ( system . deviceData . interfaces [ peripheralName ] . useCases [ useCaseName ] == null )
{
//console.log("Use case not found, showing all!");
var additionalUseCaseInterface = PinmuxAdditionalUseCases . getAdditionalUseCaseInterfaces ( peripheralName , useCaseName )
if ( additionalUseCaseInterface )
{
return additionalUseCaseInterface
}
return getPeripheralInterfaces ( peripheralName ) ;
}
if ( useCaseName == "ALL" )
{
return getPeripheralInterfaces ( peripheralName ) ;
}
//console.log("Use case found. Showing only relevant interfaces!");
var numberOfPinsInUseCase = system . deviceData . interfaces [ peripheralName ] . useCases [ useCaseName ] . useCasePin . length ;
for ( var useCasePinNumber = 0 ; useCasePinNumber < numberOfPinsInUseCase ; useCasePinNumber ++ )
{
if ( ! system . deviceData . interfaces [ peripheralName ] . useCases [ useCaseName ] . useCasePin [ useCasePinNumber ] . optional )
{
useCaseInterfaces . push ( system . deviceData . interfaces [ peripheralName ] . useCases [ useCaseName ] . useCasePin [ useCasePinNumber ] . name ) ;
}
}
return useCaseInterfaces ;
}
function getCustomPeripheralInterfaces ( inst , peripheralName )
{
return inst . useInterfacePins ;
//console.log(inst.useInterfacePins)
var interfaces = [ ] ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
for ( var interfaceNumber in InterfaceNames )
{
interfaces . push ( InterfaceNames [ interfaceNumber ] ) ;
}
return interfaces ;
}
function getPeripheralInterfaces ( peripheralName )
{
var interfaces = [ ] ;
//console.log(peripheralName)
//console.log(system.deviceData.interfaces)
//console.log(system.deviceData.interfaces[peripheralName])
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
for ( var interfaceNumber in InterfaceNames )
{
interfaces . push ( InterfaceNames [ interfaceNumber ] ) ;
}
return interfaces ;
}
function sciPinmuxRequirements ( inst )
{
var peripheralName = "SCI" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let sci = {
name : "sci" ,
displayName : "SCI Peripheral" ,
interfaceName : "SCI" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ sci ] ;
}
function sdPinmuxRequirements ( inst )
{
var peripheralName = "SD" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let sd = {
name : "sd" ,
displayName : "Sigma-Delta Peripheral" ,
interfaceName : "SD" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ sd ] ;
}
function mcbspPinmuxRequirements ( inst )
{
var peripheralName = "MCBSP" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let mcbsp = {
name : "mcbsp" ,
displayName : "MCBSP Peripheral" ,
interfaceName : "MCBSP" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ mcbsp ] ;
}
function eqepPinmuxRequirements ( inst )
{
var peripheralName = "EQEP" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let eqep = {
name : "eqep" ,
displayName : "EQEP Peripheral" ,
interfaceName : "EQEP" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ eqep ] ;
}
function epwm _pinmux ( periph ) {
return true
}
function hrpwm _pinmux ( periph ) {
2023-12-13 14:16:16 +03:00
if ( [ "F28002x" , "F28003x" ] . includes ( Common . getDeviceName ( ) ) )
2023-06-24 09:05:38 +03:00
{
if ( [ "EPWM1" , "EPWM2" , "EPWM3" , "EPWM4" ] . includes ( periph . name ) )
{
return true ;
}
else
{
return false ;
}
}
else if ( [ "F280013x" ] . includes ( Common . getDeviceName ( ) ) )
{
if ( [ "EPWM1" ] . includes ( periph . name ) )
{
return true ;
}
else
{
return false ;
}
}
else if ( [ "F280015x" ] . includes ( Common . getDeviceName ( ) ) )
{
if ( [ "EPWM1" , "EPWM2" ] . includes ( periph . name ) )
{
return true ;
}
else
{
return false ;
}
2023-12-13 14:16:16 +03:00
}
else if ( [ "F28P65x" ] . includes ( Common . getDeviceName ( ) ) )
{
if ( [ "EPWM1" , "EPWM2" , "EPWM3" , "EPWM4" , "EPWM5" , "EPWM6" , "EPWM7" , "EPWM8" , "EPWM9" , "EPWM10" , "EPWM11" , "EPWM12" , "EPWM13" , "EPWM14" , "EPWM15" , "EPWM16" , "EPWM17" , "EPWM18" ] . includes ( periph . name ) )
{
return true ;
}
else
{
return false ;
}
}
else if ( [ "F28P55x" ] . includes ( Common . getDeviceName ( ) ) )
{
if ( [ "EPWM1" , "EPWM2" , "EPWM3" , "EPWM4" , "EPWM5" , "EPWM6" ] . includes ( periph . name ) )
{
return true ;
}
else
{
return false ;
}
2023-06-24 09:05:38 +03:00
}
else
{
if ( [ "EPWM1" , "EPWM2" , "EPWM3" , "EPWM4" , "EPWM5" , "EPWM6" , "EPWM7" , "EPWM8" ] . includes ( periph . name ) )
{
return true ;
}
else
{
return false ;
}
}
}
function epwmPinmuxRequirements ( inst )
{
var peripheralName = "EPWM" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
//console.log(interfaceName);
if ( interfaceName . includes ( "_" ) )
{
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
legacyNames : [ interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) . replace ( "_" , "" ) + "Pin" ] ,
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
}
else
{
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "_" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
legacyNames : [ interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" ] ,
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
}
// let pt = {
// name : interfaceName.toLowerCase().replace("#", "").replace("@", "") + "Pin", /* config script name THE ACTUAL NAME USED to find the pin*/
// displayName : interfaceName.replace("#", "").replace("@", ""), /* GUI name */
// interfaceNames : [interfaceName] /* pinmux tool name */
// };
//
// resources.push(pt);
// signalTypes[pt.name] = interfaceName;
i ++ ;
}
var filter = epwm _pinmux
if ( inst . hrpwm _enable )
{
filter = hrpwm _pinmux
}
//console.log(resources)
let epwm = {
name : "epwm" ,
displayName : "EPWM Peripheral" ,
interfaceName : "EPWM" ,
resources : resources ,
signalTypes : signalTypes ,
filter : filter
} ;
return [ epwm ] ;
}
function i2cPinmuxRequirements ( inst )
{
var peripheralName = "I2C" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let i2c = {
name : "i2c" ,
displayName : "I2C Peripheral" ,
interfaceName : "I2C" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ i2c ] ;
}
function canPinmuxRequirements ( inst )
{
var peripheralName = "CAN" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let can = {
name : "can" ,
displayName : "CAN Peripheral" ,
interfaceName : "CAN" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ can ] ;
}
function outputxbarPinmuxRequirements ( inst )
{
let resources = [ ] ;
var peripheralName = "OUTPUTXBAR" ;
var signalTypes = { } ;
//var useCaseName = inst.useCase;
//var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
//if (useCaseInterfaces.indexOf(interfaceName) == -1)
//{
// continue;
//}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let outputxbar = {
name : "outputxbar" ,
displayName : "OUTPUTXBAR Peripheral" ,
interfaceName : "OUTPUTXBAR" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ outputxbar ] ;
}
function clb _outputxbarPinmuxRequirements ( inst )
{
let resources = [ ] ;
var peripheralName = "CLB_OUTPUTXBAR" ;
var signalTypes = { } ;
//var useCaseName = inst.useCase;
//var useCaseInterfaces = getPeripheralUseCaseInterfaces(inst, peripheralName, useCaseName);
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
//if (useCaseInterfaces.indexOf(interfaceName) == -1)
//{
// continue;
//}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let clb _outputxbar = {
name : "clb_outputxbar" ,
displayName : "CLB OUTPUTXBAR Peripheral" ,
interfaceName : "CLB_OUTPUTXBAR" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ clb _outputxbar ] ;
}
function inputxbarPinmuxRequirements ( inst )
{
let resources = [ ] ;
var INPUTXBARInterfaceNames = Object . keys ( system . deviceData . interfaces . INPUTXBAR . interfacePins ) ;
var i = 1 ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
for ( var useCaseNumber in INPUTXBARInterfaceNames )
{
var interfaceName = INPUTXBARInterfaceNames [ interfaceNumber ] ;
let ix1 = {
name : "inputxbar" + i + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : "INPUTXBAR" + i , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( ix1 ) ;
signalTypes [ ix1 . name ] = interfaceName ;
i ++ ;
}
let inputxbar = {
name : "inputxbar" ,
displayName : "INPUTXBAR Peripheral" ,
interfaceName : "INPUTXBAR" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ inputxbar ] ;
}
function gpioWithPeripheralPinmuxRequirements ( inst )
{
let resources = [ ] ;
var GPIOInterfaceName = "GPIO#" ;
let gpio = {
name : "gpioPin" ,
displayName : "GPIO Peripheral" ,
interfaceName : "GPIO" ,
signalTypes : {
"gpioPin" : GPIOInterfaceName
}
} ;
return [ gpio ] ;
}
function gpioPinmuxRequirements ( inst )
{
let resources = [ ] ;
var GPIOInterfaceName = "GPIO#" ;
let gpio = {
name : "gpioPin" ,
displayName : "GPIO" ,
interfaceName : "GPIO" ,
signalTypes : [ GPIOInterfaceName ]
} ;
return [ gpio ] ;
}
function aioPinmuxRequirements ( inst )
{
let resources = [ ] ;
let aio = {
name : "aioPin" ,
displayName : "AIO Peripheral" ,
interfaceName : "AIO" ,
} ;
return [ aio ] ;
}
function pmbusPinmuxRequirements ( inst )
{
var peripheralName = "PMBUS" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let pmbus = {
name : "pmbus" ,
displayName : "PMBUS Peripheral" ,
interfaceName : "PMBUS" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ pmbus ] ;
}
function cmi2cPinmuxRequirements ( inst )
{
var peripheralName = "CM-I2C" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let cmi2c = {
name : "cmi2c" ,
displayName : "CM-I2C Peripheral" ,
interfaceName : "CM-I2C" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ cmi2c ] ;
}
function mcanPinmuxRequirements ( inst )
{
var peripheralName = "MCAN" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let mcan = {
name : "mcan" ,
displayName : "MCAN Peripheral" ,
interfaceName : "MCAN" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ mcan ] ;
}
function uartPinmuxRequirements ( inst )
{
var peripheralName = "UART" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let uart = {
name : "uart" ,
displayName : "UART Peripheral" ,
interfaceName : "UART" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ uart ] ;
}
function ssiPinmuxRequirements ( inst )
{
var peripheralName = "SSI" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let ssi = {
name : "ssi" ,
displayName : "SSI Peripheral" ,
interfaceName : "SSI" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ ssi ] ;
}
function ecatPinmuxRequirements ( inst )
{
var peripheralName = "ECAT" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 )
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let ecat = {
name : "ecat" ,
displayName : "ECAT Peripheral" ,
interfaceName : "ECAT" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ ecat ] ;
}
function ethernetPinmuxRequirements ( inst )
{
var peripheralName = "ETHERNET" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 ||
// No options available
system . deviceData . interfaces [ peripheralName ] . interfacePins [ interfaceName ] . pinMappings [ 0 ] . pinMappings . length <= 0
)
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let ethernet = {
name : "ethernet" ,
displayName : "ETHERNET Peripheral" ,
interfaceName : "ETHERNET" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ ethernet ] ;
}
function hicPinmuxRequirements ( inst )
{
var peripheralName = "HIC" ;
let resources = [ ] ;
var signalTypes = { } ;
var useCaseName = inst . useCase ;
var useCaseInterfaces = getPeripheralUseCaseInterfaces ( inst , peripheralName , useCaseName ) ;
var InterfaceNames = Object . keys ( system . deviceData . interfaces [ peripheralName ] . interfacePins ) ;
var i = 1 ;
for ( var interfaceNumber in InterfaceNames )
{
var interfaceName = InterfaceNames [ interfaceNumber ] ;
if ( useCaseInterfaces . indexOf ( interfaceName ) == - 1 ||
// No options available
system . deviceData . interfaces [ peripheralName ] . interfacePins [ interfaceName ] . pinMappings [ 0 ] . pinMappings . length <= 0
)
{
continue ;
}
let pt = {
name : interfaceName . toLowerCase ( ) . replace ( "#" , "" ) . replace ( "@" , "" ) + "Pin" , /* config script name THE ACTUAL NAME USED to find the pin*/
displayName : interfaceName . replace ( "#" , "" ) . replace ( "@" , "" ) , /* GUI name */
interfaceNames : [ interfaceName ] /* pinmux tool name */
} ;
resources . push ( pt ) ;
signalTypes [ pt . name ] = interfaceName ;
i ++ ;
}
let hic = {
name : "hic" ,
displayName : "HIC Peripheral" ,
interfaceName : "HIC" ,
resources : resources ,
signalTypes : signalTypes
} ;
return [ hic ] ;
}
function getGPIOFromDevicePinName ( devicePinName )
{
var gpioNames = [ ]
var isAgpioPin = false
var gpioName = devicePinName ;
if ( ! gpioName . startsWith ( "GPIO" ) )
{
isAgpioPin = true
}
gpioName = gpioName . substring ( gpioName . indexOf ( "GPIO" ) )
if ( ( gpioName . match ( /GPIO/g ) || [ ] ) . length > 1 )
{
//
// Double bonded
//
var gpiosOnThisPin = gpioName . split ( "GPIO" ) ;
gpiosOnThisPin . splice ( 0 , 1 )
for ( var gpioOnThisPin of gpiosOnThisPin )
{
var gpioNumberOnThisPin = Common . gpioNameToNumber ( gpioOnThisPin ) ;
gpioNames . push ( "GPIO" + gpioNumberOnThisPin )
}
return gpioNames
}
gpioName = gpioName . substring ( 4 ) ; // determine which GPIO
var gpioNumber = Common . gpioNameToNumber ( gpioName ) ;
gpioNames . push ( "GPIO" + gpioNumber )
return gpioNames
}
exports = {
NO _DEVICE _PIN _FOUND : NO _DEVICE _PIN _FOUND ,
getADCPinsUsed : getADCPinsUsed ,
getCMPSSPinsUsed : getCMPSSPinsUsed ,
getCMPSSLitePinsUsed : getCMPSSLitePinsUsed ,
getDeviceDACName : getDeviceDACName ,
findAllAnalogPin : findAllAnalogPin ,
findAnalogPin : findAnalogPin ,
calculateADCPinInfo : calculateADCPinInfo ,
getDeviceADCName : getDeviceADCName ,
getDevicePinInfoDescription : getDevicePinInfoDescription ,
getPeripheralUseCaseInterfaces : getPeripheralUseCaseInterfaces ,
useCaseChanged : useCaseChanged ,
addCustomPinmuxEnumToConfig : addCustomPinmuxEnumToConfig ,
getPeripheralUseCaseNames : getPeripheralUseCaseNames ,
spiPinmuxRequirements : spiPinmuxRequirements ,
sciPinmuxRequirements : sciPinmuxRequirements ,
gpioPinmuxRequirements : gpioPinmuxRequirements ,
i2cPinmuxRequirements : i2cPinmuxRequirements ,
inputxbarPinmuxRequirements : inputxbarPinmuxRequirements ,
outputxbarPinmuxRequirements : outputxbarPinmuxRequirements ,
clb _outputxbarPinmuxRequirements : clb _outputxbarPinmuxRequirements ,
aioPinmuxRequirements : aioPinmuxRequirements ,
canPinmuxRequirements : canPinmuxRequirements ,
epwmPinmuxRequirements : epwmPinmuxRequirements ,
eqepPinmuxRequirements : eqepPinmuxRequirements ,
mcbspPinmuxRequirements : mcbspPinmuxRequirements ,
sdPinmuxRequirements : sdPinmuxRequirements ,
uppPinmuxRequirements : uppPinmuxRequirements ,
usbPinmuxRequirements : usbPinmuxRequirements ,
fsitxPinmuxRequirements : fsitxPinmuxRequirements ,
fsirxPinmuxRequirements : fsirxPinmuxRequirements ,
otherPinmuxRequirements : otherPinmuxRequirements ,
dcdcPinmuxRequirements : dcdcPinmuxRequirements ,
emif1PinmuxRequirements : emif1PinmuxRequirements ,
emif2PinmuxRequirements : emif2PinmuxRequirements ,
linPinmuxRequirements : linPinmuxRequirements ,
pmbusPinmuxRequirements : pmbusPinmuxRequirements ,
cmi2cPinmuxRequirements : cmi2cPinmuxRequirements ,
mcanPinmuxRequirements : mcanPinmuxRequirements ,
uartPinmuxRequirements : uartPinmuxRequirements ,
ssiPinmuxRequirements : ssiPinmuxRequirements ,
ecatPinmuxRequirements : ecatPinmuxRequirements ,
ethernetPinmuxRequirements : ethernetPinmuxRequirements ,
hicPinmuxRequirements : hicPinmuxRequirements ,
gpioWithPeripheralPinmuxRequirements : gpioWithPeripheralPinmuxRequirements ,
analogPinmuxRequirements : analogPinmuxRequirements ,
getGpioQualificationModInstDefinitions : getGpioQualificationModInstDefinitions ,
addPinMuxQualGroupToConfig : addPinMuxQualGroupToConfig ,
interfaceNameToQualModeName : interfaceNameToQualModeName ,
getAdditionalUseCaseNameConfigsNotInDeviceData : getAdditionalUseCaseNameConfigsNotInDeviceData ,
getGPIOFromDevicePinName : getGPIOFromDevicePinName
} ;