⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rgbled.js

📁  PSoC(可编程片上系统)是Cypress半导体公司生产的包含有8位微处理器核和数字与模拟混合的信号阵列芯片
💻 JS
字号:
//////////////////////////////////////////////////////////////////////////
//  FILENAME:    RGBLED.js
//
//  @Version@ 
//
//  DESCRIPTION: Generates RGBLED Metadata
//   
//------------------------------------------------------------------------
//  Copyright (c) Cypress MicroSystems 2007. All Rights Reserved.
//////////////////////////////////////////////////////////////////////////

//********************
// Globals
//********************
var g_UM_debug = false; // controls printing output in the script host
var g_UM_BankSwitch_xmlDoc;
var g_UM_BankSwitch_xmlLogicOut;

var g_UM_BankSwitch_BaseIODriver;
var g_UM_BankSwitch_DriverList;
var g_UM_BankSwitch_BasePropertyList;
var g_UM_BankSwitch_NumberOfSwitches;
var g_UM_BankSwitch_SubNameList;
var g_UM_BankSwitch_VariableList;
var g_UM_BankSwitch_ContainerInstanceName;
var g_UM_BankSwitch_PackedValName = "state";

var g_TFListSave	= null;
var g_ValueListSave = null;

/*************
function setPSoC()
{
	g_UM_BankSwitch_xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	g_UM_BankSwitch_xmlDoc.async = false
	g_UM_BankSwitch_xmlDoc.load("c:\\wtest\\local\\sphinx\\work\\BankSwitchInput.xml")
	//print("Hello from BankSwitch.js");
}
***********/

/***************
function onAccept() 
{
	transformBankSwitch();
	g_UM_BankSwitch_xmlDoc.save("c:\\wtest\\local\\sphinx\\work\\BankSwitchOutput.xml");	
}
***************/


function transformContainer(sInstanceName, sDOM) 
{
	g_UM_BankSwitch_xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	g_UM_BankSwitch_xmlDoc.async = false
	g_UM_BankSwitch_xmlDoc.loadXML(sDOM);
	
	try
	{
		saveTF();
		saveValueList();
		clearOldData();
		setContainerInstanceName(sInstanceName);
		getNumberofSwitches();
		createSubNameList();
		createVariableList();
		createDriverList();

	}
	catch(kuku)
	{
		alert("Exception in transformContainer " +  kuku);
	}
	return g_UM_BankSwitch_xmlDoc.xml;

}


function saveTF()
{
	g_TFListSave = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_VARIABLE_LIST/CMX_VARIABLE/CMX_TRANSFERFUNCTION_LIST");
}

function saveValueList()
{
	g_ValueListSave = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_VARIABLE_LIST/CMX_VARIABLE/CMX_VALUE_LIST");
}


function clearOldData()
{

	// remove the old stuff and replace with empty elements
	try
	{
		var parent;
		var replacementNode = g_UM_BankSwitch_xmlDoc.createElement("CMX_SUB_NAME_LIST");
		var nodeToRemove = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_SUB_NAME_LIST");
		if (nodeToRemove != null) 
		{
			parent = nodeToRemove.parentNode;
			parent.removeChild(nodeToRemove);
			parent.appendChild(replacementNode);
		} 


		replacementNode = g_UM_BankSwitch_xmlDoc.createElement("CMX_VARIABLE_LIST");
		nodeToRemove = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_VARIABLE_LIST");
		if (nodeToRemove != null) 
		{
			parent = nodeToRemove.parentNode;
			parent.removeChild(nodeToRemove);
			parent.appendChild(replacementNode);
		}


		replacementNode = g_UM_BankSwitch_xmlDoc.createElement("CMX_IO_DRIVER_LIST");
		nodeToRemove = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_IO_DRIVER_LIST");
		if (nodeToRemove != null) 
		{
			parent = nodeToRemove.parentNode;
			parent.removeChild(nodeToRemove);
			parent.appendChild(replacementNode);
		}
	}
	catch(kuku)
	{
		alert("Exception clearOldData " + kuku);
	}
	//end remove the old stuff
}

function getNumberofSwitches()
{
    g_UM_BankSwitch_BaseIODriver = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER");
    if (g_UM_BankSwitch_BaseIODriver != null)
    {
		g_UM_BankSwitch_BasePropertyList = g_UM_BankSwitch_BaseIODriver.selectSingleNode("CMX_HIDDEN_PROPERTY_LIST");
		if (g_UM_BankSwitch_BasePropertyList != null)
    	{
			var NumberOfSwitchesProperty = g_UM_BankSwitch_BasePropertyList.selectSingleNode("CMX_PROPERTY[@NAME=\"Number of output pins\"]");
			if (NumberOfSwitchesProperty != null)
    		{
				//print("XPATH is da bomb");
				g_UM_BankSwitch_NumberOfSwitches = parseInt(NumberOfSwitchesProperty.getAttribute("CURRENT_VALUE"));
			}
		}
	}
	else
	{
		//print("Error, BaseIODriver is null\n");
	}
}

function setContainerInstanceName(sInstanceName)
{
	var Container = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER");
	
	if (Container != null) 
	{
		g_UM_BankSwitch_ContainerInstanceName  = sInstanceName;

		Container.setAttribute("INSTANCE_NAME", sInstanceName);
	} 	
}

//Data looks like:
//<CMX_SUB_NAME NAME="bit0" TYPE="DRIVER" ORDINAL="0"/>
//<CMX_SUB_NAME NAME="state" TYPE="VARIABLE" ORDINAL="1"/>
function createSubNameList()
{
	g_UM_BankSwitch_SubNameList = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_SUB_NAME_LIST");
	if (g_UM_BankSwitch_SubNameList != null)
    {
		var CMXSubName;
		var OrdinalCount;
		// create the bitN variable sub names
		for (OrdinalCount = 0; OrdinalCount < g_UM_BankSwitch_NumberOfSwitches; OrdinalCount++)
		{
			CMXSubName = g_UM_BankSwitch_xmlDoc.createElement("CMX_SUB_NAME"); // create a sub name
			if(OrdinalCount==0) CMXSubName.setAttribute("NAME", "_RED");
			else if(OrdinalCount==1) CMXSubName.setAttribute("NAME", "_GREEN");
			else CMXSubName.setAttribute("NAME", "_BLUE");
			CMXSubName.setAttribute("TYPE", "DRIVER");
			CMXSubName.setAttribute("ORDINAL", OrdinalCount);
			g_UM_BankSwitch_SubNameList.appendChild(CMXSubName);
		}
		// create the state variable sub name
		CMXSubName = g_UM_BankSwitch_xmlDoc.createElement("CMX_SUB_NAME"); // create a sub name
		CMXSubName.setAttribute("NAME", g_UM_BankSwitch_PackedValName);
		CMXSubName.setAttribute("TYPE", "VARIABLE");
		CMXSubName.setAttribute("ORDINAL", OrdinalCount);
		g_UM_BankSwitch_SubNameList.appendChild(CMXSubName);
	}
}

//Data looks like:
//<CMX_VARIABLE NAME="MySwitchBank_state" WRITEABLE="FALSE" VALUE_TYPE="CMX_DISCRETE" DEFAULT_VALUE="" ORDINAL="0" CONTAINER_NAME="MySwitchBank">
//</CMX_VARIABLE>
function createVariableList()
{
	g_UM_BankSwitch_VariableList = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_VARIABLE_LIST");
	
	if (g_UM_BankSwitch_VariableList != null)
    {
		var CMXVariable;
		// create the state variable
		CMXVariable = g_UM_BankSwitch_xmlDoc.createElement("CMX_VARIABLE"); // create a variable
		CMXVariable.setAttribute("NAME", g_UM_BankSwitch_ContainerInstanceName + "_" + g_UM_BankSwitch_PackedValName);
		CMXVariable.setAttribute("WRITEABLE", "FALSE");
		CMXVariable.setAttribute("VALUE_TYPE", "CMX_DISCRETE");
		CMXVariable.setAttribute("DRIVER_TYPE", "OUTPUT");
		CMXVariable.setAttribute("VARIABLE_TYPE", "BYTE");
		CMXVariable.setAttribute("VARIABLE_SIZE", "1");
		CMXVariable.setAttribute("WIDGMIN", "0");
		CMXVariable.setAttribute("WIDGMAX", "255");
		CMXVariable.setAttribute("WIDGSCALE", "1");
	
		CMXVariable.setAttribute("DEFAULT_VALUE", "0");
		CMXVariable.setAttribute("ORDINAL", "0");
		CMXVariable.setAttribute("CONTAINER_NAME", g_UM_BankSwitch_ContainerInstanceName);
		
	
		if(g_TFListSave==null)
		{
			var CMXV_TFList = g_UM_BankSwitch_xmlDoc.createElement("CMX_TRANSFERFUNCTION_LIST"); // create a tf list
			CMXV_TFList.setAttribute("ACTIVE_TRANSFER_FUNCTION", "");
			CMXVariable.appendChild(CMXV_TFList);
		}
		else
		{
			CMXVariable.appendChild(g_TFListSave);
		}


		if(g_ValueListSave==null)
		{
			var CMXV_TFList = g_UM_BankSwitch_xmlDoc.createElement("CMX_VALUE_LIST"); // create a tf list
			CMXVariable.appendChild(CMXV_TFList);
		}
		else
		{
			CMXVariable.appendChild(g_ValueListSave);
		}
		
		g_UM_BankSwitch_VariableList.appendChild(CMXVariable);
		
	}
}

function createDriverList()
{
	g_UM_BankSwitch_DriverList = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER/CMX_VARIABLE_CONTAINER/CMX_IO_DRIVER_LIST");
	if (g_UM_BankSwitch_DriverList != null)
    {
		//print("found driver list");
		for (var i = 0; i < g_UM_BankSwitch_NumberOfSwitches; i++)
		{
			var LogicOutDriverElement = getLogicOutDriverElement();
			var DriveModeProperty;
			if (LogicOutDriverElement != null)
			{
				// Set instance name
				if(i==0) LogicOutDriverElement.setAttribute("DRIVER_INSTANCE", g_UM_BankSwitch_ContainerInstanceName+"_RED");
				else if(i==1) LogicOutDriverElement.setAttribute("DRIVER_INSTANCE", g_UM_BankSwitch_ContainerInstanceName+"_GREEN");
				else LogicOutDriverElement.setAttribute("DRIVER_INSTANCE", g_UM_BankSwitch_ContainerInstanceName+"_BLUE");
				// Set the same sub_tree_selection as the Base IO Driver
				LogicOutDriverElement.setAttribute("SUB_TREE_SELECTION", g_UM_BankSwitch_BaseIODriver.getAttribute("SUB_TREE_SELECTION"));
				// Set the DriverMode property
				DriveModeProperty = LogicOutDriverElement.selectSingleNode("//CMX_PROPERTY_LIST/CMX_PROPERTY[@NAME=\"DriveMode\"]");
				DriveModeProperty.setAttribute("CURRENT_VALUE", getContainerDriveMode());
				// Append to the IO Driver List
				g_UM_BankSwitch_DriverList.appendChild(LogicOutDriverElement);		
			}
		}
	}
}

function getContainerDriveMode()
{
    g_UM_BankSwitch_BaseIODriver = g_UM_BankSwitch_xmlDoc.selectSingleNode("//CMX_IO_DRIVER");
    if (g_UM_BankSwitch_BaseIODriver != null)
    {
		g_UM_BankSwitch_BasePropertyList = g_UM_BankSwitch_BaseIODriver.selectSingleNode("CMX_HIDDEN_PROPERTY_LIST");
		if (g_UM_BankSwitch_BasePropertyList != null)
    	{
			var BaseDriveModeProperty = g_UM_BankSwitch_BasePropertyList.selectSingleNode("CMX_PROPERTY[@NAME=\"DriveMode\"]");
			if (BaseDriveModeProperty != null)
    		{
				return BaseDriveModeProperty.getAttribute("CURRENT_VALUE");
			}
		}
	}
	else
	{
		return "getContainerDriveMode Script Error";
	}
}

function getLogicOutDriverElement()
{
	var LogicOutDriver	= g_pDlg.GetData("GET_CATALOG_IO_DRIVER", "LOGICOUT", "");
	
	var dm1				= new ActiveXObject("Microsoft.XMLDOM");
	dm1.async			= false
	dm1.loadXML(LogicOutDriver);

	var nodeXML = dm1.selectSingleNode("//CMX_IO_DRIVER");

	return nodeXML;
}	
/***************************
//function print(Output)
//{
//	if (g_UM_debug == true)
//	{
//		WScript.echo(Output);
//	}
//}
****************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -