コード例 #1
0
def setupSim():
    global data, nodeState, minSeqNo, maxSeqNo, currentSeqNo
    global numNodes, totalFinished, out, firstExecution, init_event

    # only execute once for all input files
    if (firstExecution):
        #   uart_event = interp.addEventHandler(printUART, UARTMsgSentEvent)
        radio_event = interp.addEventHandler(printRadio, RadioMsgSentEvent)
        dbg_event = interp.addEventHandler(printDBG, DebugMsgEvent)
        adc_event = interp.addEventHandler(ADCread, ADCDataReadyEvent)
        firstExecution = False

    print("Preparing to simulate using " + filename)
    dataList = parseInput.parseFile("xsm",filename)

    data = dataList[0]
    nodeState = dataList[1]
    minSeqNo = dataList[2]
    maxSeqNo = dataList[3]
    currentSeqNo = {}
    for i in nodeState.keys():
        currentSeqNo[i] = 0
    totalFinished = 0
    numNodes = len(nodeState)

    sleep(2) # wait for simulator to catch up and update 'motes'
    # Check that we have more simulated motes than the largest moteID
    # otherwise, the script will never end. (use 'motes' from simcore)
    if (max(nodeState.keys()) > len(motes)):
        batchOut.write("Skipping file %s.\n" %filename)
        batchOut.write("\t File has largest mote ID = %d.  The simulator is only simulating %d nodes.\n"
                       %(max(nodeState.keys()), len(motes)))
        batchOut.write("\t The simulator needs to simulate 1 node more than the largest mote ID.\n")
        print("Skipping file %s." %filename)
        print("\t File has largest mote ID = %d.  The simulator is only simulating %d nodes."
              %(max(nodeState.keys()), len(motes)))
        print("\t The simulator needs to simulate 1 node more than the largest mote ID.")
        nextFile()
    else:
        out = open(outFilename,'w')
        print("Outputting to %s" %outFilename)
        init_event = interp.addEventHandler(handleInit, TossimInitEvent)
        sim.resume() # in case the init event was signaled before scheduling the handler
        print "Simulation with " + str(numNodes) + " nodes"
コード例 #2
0
ファイル: simPIRDetect.py プロジェクト: saurabhd14/tinyos-1.x
def setupSim():
    global data, nodeState, minSeqNo, maxSeqNo, currentSeqNo
    global numNodes, totalFinished, out

    print("Preparing to simulate using " + filename)
    dataList = parseInput.parseFile("xsm",filename)

    data = dataList[0]
    nodeState = dataList[1]
    minSeqNo = dataList[2]
    maxSeqNo = dataList[3]
    currentSeqNo = {}
    for i in nodeState.keys():
        currentSeqNo[i] = 0
    totalFinished = 0
    numNodes = len(nodeState)

    sleep(1) #make sure that the simulator has time to update 'motes'
    # Check that we have more simulated motes than the largest moteID
    # otherwise, the script will never end. (use 'motes' from simcore)
    if (max(nodeState.keys()) >= len(motes)):
        simLog.write("Skipping file %s.\n" %filename)
        simLog.write("\t File has largest mote ID = %d.  The simulator is only simulating %d nodes.\n"
                       %(max(nodeState.keys()), len(motes)))
        simLog.write("\t The simulator needs to simulate 1 node more than the largest mote ID.\n")
        print("Skipping file %s." %filename)
        print("\t File has largest mote ID = %d.  The simulator is only simulating %d nodes."
              %(max(nodeState.keys()), len(motes)))
        print("\t The simulator needs to simulate 1 node more than the largest mote ID.")
    else:
        out = open(outFilename,'w')
        print("Outputting to %s" %outFilename)
        print "Simulation with " + str(numNodes) + " nodes"

        #uart_event = interp.addEventHandler(printUART, UARTMsgSentEvent)
        radio_event = interp.addEventHandler(printRadio, RadioMsgSentEvent)
        dbg_event = interp.addEventHandler(printDBG, DebugMsgEvent)
        adc_event = interp.addEventHandler(ADCread, ADCDataReadyEvent)
        init_event = interp.addEventHandler(handleInit, TossimInitEvent)
        sim.resume() #in case we miss an init_event signaled earlier