translator.java

来自「无线传感器网络中,基于ns2仿真平台,mannasim的源代码,研究ns2必不可」· Java 代码 · 共 958 行 · 第 1/3 页

JAVA
958
字号
                linkLayerElement).item(0));
        importRoutingProtocol((Element) defaultNetwork.getElementsByTagName(
                routingProtocolElement).item(0));
        importPropagation((Element) defaultNetwork.getElementsByTagName(
        		propagationElement).item(0));
        importEnergyModel((Element) defaultNetwork.getElementsByTagName(
        		energyModelElement).item(0));
    }

//    /**
//     * Create an omni antenna.
//     * 
//     * Xml path: /simulation/defaultNetwork/omniAntenna
//     */
//    private Element createOmniAntenna()
//    {
//        Element omniAntenna = document.createElement(omniAntennaElement);
//
//        omniAntenna.setAttribute("x", "0");
//        omniAntenna.setAttribute("y", "0");
//        omniAntenna.setAttribute("z", "1.5");
//        omniAntenna.setAttribute("gt", "1.0");
//        omniAntenna.setAttribute("gr", "1.0");
//
//        return omniAntenna;
//    }
    
    /**
     * Create an antenna.
     * 
     * Xml path: /simulation/defaultNetwork/antenna
     */
    private Element createAntenna()
    {
    	Element antenna = document.createElement(antennaElement);
    	
    	antenna.setAttribute("name", fields.getAntenna());
    	antenna.setAttribute("x", "0");
        antenna.setAttribute("y", "0");
        antenna.setAttribute("z", "1.5");
        antenna.setAttribute("gt", "1.0");
        antenna.setAttribute("gr", "1.0");
        
        return antenna;
    }
    
    private void importAntenna(Element antenna)
    {
    	if (antenna != null)
    	{
    		fields.setAntenna(antenna.getAttribute("name"));
    	}
    }

    /**
     * Create a wireless phy based on profile.
     * 
     * Xml path: /simulation/defaultNetwork/wirelessPhy
     */
    private Element createWirelessPhy()
    {
        return createWirelessPhy(fields.getPhyLayer(), fields
                .getCommonNodeTransmissionRange());
    }

    private Element createWirelessPhy(String profile, double range)
    {
        Element wirelessPhy = document.createElement(wirelessPhyElement);

        if (profile == "Phy/WirelessPhy - Mica2")
            wirelessPhy.setAttribute("profile", "mica2");
        else
            wirelessPhy.setAttribute("profile", profile);

        wirelessPhy.setAttribute("range", Double.toString(range));

        return wirelessPhy;
    }

    private void importWirelessPhy(Element wirelessPhy)
    {
        fields.setPhyLayer(wirelessPhy.getAttribute("profile"));
        fields
                .setCommonNodeTransmissionRange(importWirelessPhyRange(wirelessPhy));
    }

    private double importWirelessPhyRange(Element wirelessPhy)
    {
        return Double.parseDouble(wirelessPhy.getAttribute("range"));
    }

    /**
     * Create a mac.
     * 
     * Xml path: /simulation/defaultNetwork/mac
     */
    private Element createMacLayer()
    {
        Element mac = document.createElement(macLayerElement);

        mac.appendChild(document.createTextNode(fields.getMacLayer()));

        return mac;
    }

    private void importMacLayer(Element mac)
    {
        fields.setMacLayer(mac.getFirstChild().getNodeValue());
    }

    /**
     * Create a queue.
     * 
     * Xml path: /simulation/defaultNetwork/queue
     */
    private Element createQueue()
    {
        Element queue = document.createElement(queueElement);

        queue.appendChild(document.createTextNode(fields.getIfq()));
        queue.setAttribute(queueLengthAttribute, Integer.toString(fields
                .getIfqLen()));

        return queue;
    }

    private void importQueue(Element queue)
    {
        fields.setIfq(queue.getFirstChild().getNodeValue());
        fields.setIfqLen(Integer.parseInt(queue
                .getAttribute(queueLengthAttribute)));
    }

    /**
     * Create link layer.
     * 
     * Xml path: /simulation/defaultNetwork/link
     */
    private Element createLinkLayer()
    {
        Element link = document.createElement(linkLayerElement);

        link.appendChild(document.createTextNode(fields.getLinkLayer()));

        return link;
    }

    private void importLinkLayer(Element link)
    {
        fields.setLinkLayer(link.getFirstChild().getNodeValue());
    }

    /**
     * Create routing protocol.
     * 
     * Xml path: /simulation/defaultNetwork/routingProtocol
     */
    private Element createRoutingProtocol()
    {
        Element routing = document.createElement(routingProtocolElement);

        routing.appendChild(document
                .createTextNode(fields.getRoutingProtocol()));

        return routing;
    }

    private void importRoutingProtocol(Element routing)
    {
        fields.setRoutingProtocol(routing.getFirstChild().getNodeValue());
    }
    
    private Element createPropagation()
    {
    	Element propagation = document.createElement(propagationElement);
    	
    	propagation.appendChild(document
    			.createTextNode(fields.getPropagation()));
    	
    	return propagation;
    }
    
    private void importPropagation(Element propagation)
    {
    	fields.setPropagation(propagation.getFirstChild().getNodeValue());
    }
    
    private Element createEnergyModel()
    {
    	Element energyModel = document.createElement(energyModelElement);
    	
    	energyModel.appendChild(document
    			.createTextNode(fields.getBattery()));
    	
    	return energyModel;
    }
    
    private void importEnergyModel(Element energyModel)
    {
    	fields.setBattery(energyModel.getFirstChild().getNodeValue());
    }

    /**
     * Creates an access point.
     * 
     * Xml path: /simulation/accessPoint
     */
    private Element createAccessPoint()
    {
        Element accessPoint = document.createElement(accessPointElement);

        accessPoint.appendChild(createNodeNetwork(fields
                .getAccessPointTransmissionRange()));
        accessPoint
                .appendChild(createNodeEnergy(fields.getAccessPointEnergy()));

        if (isAbsolutePosition(fields.getAccessPointLocation()))
            accessPoint.appendChild(createAbsolutePositon(fields
                    .getAccessPointLocation()));
        else
            accessPoint.setAttribute("distribution", fields
                    .getAccessPointLocation().toLowerCase());

        accessPoint.appendChild(createApplication(fields
                .getAccessPointApplication()));

        accessPoint.setAttribute("times", Integer.toString(fields
                .getAccessPointNumber()));

        return accessPoint;
    }

    private void importAccessPoint(Element accessPoint)
    {
        fields
                .setAccessPointTransmissionRange(importNodeTransmissionRange(accessPoint));
        fields.setAccessPointEnergy(importNodeEnergy(accessPoint));
        fields.setAccessPointLocation(importNodePosition(accessPoint));
        fields.setAccessPointApplication(importNodeApplication(accessPoint));
        fields.setAccessPointNumber(importNodeTimes(accessPoint));
    }

    private Element createCommonNode()
    {
        Element node = document.createElement(commonNodeElement);

        node.appendChild(createNodeNetwork(fields
                .getCommonNodeTransmissionRange(), fields
                .getCommonNodeDissType(), fields.getCommonNodeDissInterval()));
        node.appendChild(createNodeEnergy(fields.getCommonNodeEnergy()));

        if (isAbsolutePosition(fields.getCommonNodeLocation()))
            node.appendChild(createAbsolutePositon(fields
                    .getCommonNodeLocation()));
        else
            node.setAttribute("distribution", fields.getCommonNodeLocation()
                    .toLowerCase());

        node.appendChild(createApplication(fields.getCommonNodeApplication()));
        node
                .appendChild(createProcessing(fields
                        .getCommonNodeProcessingType()));
        node.appendChild(createDataGenerator(fields
                .getCommonNodeDataGeneratorType(), fields
                .getCommonNodeSensingInterval(), fields
                .getCommonNodeSensingType(), fields.getCommonNodeDataAverage(),
                fields.getCommonNodeDataDeviation(), fields
                        .getCommonNodeMaximumData()));

        node.setAttribute("times", Integer.toString(fields
                .getCommonNodeNumber()));

        return node;
    }

    private void importCommonNode(Element commonNode)
    {
        Element dataGenerator;

        dataGenerator = (Element) commonNode.getElementsByTagName(
                dataGeneratorElement).item(0);

        fields
                .setCommonNodeTransmissionRange(importNodeTransmissionRange(commonNode));
        fields.setCommonNodeDissType(importNodeDisseminatingType(commonNode));
        fields
                .setCommonNodeDissInterval(importNodeDisseminatingInterval(commonNode));
        fields.setCommonNodeEnergy(importNodeEnergy(commonNode));
        fields.setCommonNodeLocation(importNodePosition(commonNode));
        fields.setCommonNodeApplication(importNodeApplication(commonNode));
        fields.setCommonNodeProcessingType(importNodeProcessing(commonNode));
        fields
                .setCommonNodeDataGeneratorType(importDataGeneratorType(dataGenerator));
        fields
                .setCommonNodeSensingInterval(importDataGeneratorSensingInterval(dataGenerator));
        fields
                .setCommonNodeSensingType(importDataGeneratorSensingType(dataGenerator));
        fields
                .setCommonNodeDataAverage(importDataGeneratorAvgMeasure(dataGenerator));
        fields
                .setCommonNodeDataDeviation(importDataGeneratorStdDeviation(dataGenerator));
        fields.setCommonNodeMaximumData(importDataGeneratorMax(dataGenerator));
    }

    private Element createClusterHead()
    {
        Element clusterHead = document.createElement(clusterHeadElement);

        clusterHead
                .appendChild(createNodeNetwork(fields
                        .getClusterHeadTransmissionRange(), fields
                        .getClusterHeadDissType(), fields
                        .getClusterHeadDissInterval()));
        clusterHead
                .appendChild(createNodeEnergy(fields.getClusterHeadEnergy()));

        if (isAbsolutePosition(fields.getClusterHeadLocation()))
            clusterHead.appendChild(createAbsolutePositon(fields
                    .getClusterHeadLocation()));
        else

⌨️ 快捷键说明

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