Exemplo n.º 1
0
def getNetworkFiles(timeStamp):
    sneeqlNetFile = "%s/input/network-%s.xml" % (optSneeqlRoot, timeStamp)
    avroraNetFile = "%s/input/network-%s.top" % (optSneeqlRoot, timeStamp)

    if (optGenerateRandomNet):
        field = networkLib.generateRandomTopology(numNodes=optNetNumNodes,
                                                  xDim=optNetXDim,
                                                  yDim=optNetYDim)
        if not field.hasAllNodesConnected():
            reportError("Network has disconnected nodes")
            sys.exit(-2)
        field.trimEdgesRandomlyToMeetAverageDegree(6)  #TODO: unhardcode this
        field.generateTopFile(avroraNetFile)
        field.generateSneeqlNetFile(sneeqlNetFile)
        #field.generateTossimNetFile(optOutputFile+".nss") #TODO
    else:
        print "cp %s %s" % (optSneeqlNetFile, sneeqlNetFile)
        if os.path.isfile(optSneeqlNetFile):
            os.system("cp %s %s" % (optSneeqlNetFile, sneeqlNetFile))
        else:
            reportError("Sneeql network file %s not found")
        if optAvroraNetFile == None:
            avroraNetFile = None
        else:
            if os.path.isfile(optAvroraNetFile):
                os.system("cp %s %s" % (optAvroraNetFile, avroraNetFile))
            else:
                reportError("Avrora network file %s not found")

        #TODO: need to write method which reads Sneeql net file and returns numNodes, for now using optNumNodes
        #numNodes = TossimLib.getNumNodes(optSneeqlRoot + "/" + optTopologyFile)
        #numNodes=10 #TODO: unhardcode this
        #print "numNodes=%d" % numNodes

    return (sneeqlNetFile, avroraNetFile, optNetNumNodes)
Exemplo n.º 2
0
def main():

    #parse the command-line arguments
    parseArgs(sys.argv[1:])

    n = 0
    while 1:
        field = networkLib.generateRandomTopology(numNodes=optNumNodes,
                                                  xDim=optXDim,
                                                  yDim=optYDim)
        if field.hasAllNodesConnected():
            break
        if n >= optNumRetries:
            break
        n += 1
        print "Disconnected nodes, retrying...\n\n"

    field.trimEdgesRandomlyToMeetAverageDegree(6)  #TODO: unhardcode this
    field.generateTopFile(optOutputFile + ".top")
    field.generateSneeqlNetFile(optOutputFile + ".xml")
    field.generateTossimNetFile(optOutputFile + ".nss")
    field.drawNetworkGeometry(optOutputFile + ".eps")
    if field.hasAllNodesConnected():
        print "SUCCESS: Network generated has all nodes connected after %d tries" % n
    else:
        print "WARNING: Network generated contains disconnected nodes after %d tries" % n
    print "INFO: The average node degree is " + str(
        field.getAverageNodeDegree())