getNbrTableForZMAC.py
上传用户:joranyuan
上传日期:2022-06-23
资源大小:3306k
文件大小:3k
源码类别:

网络

开发平台:

Others

  1. import os, sys, string, time
  2. #resultPath  = '.'
  3. resultPath = '/home/acwarrie/research/drandNbrTable'
  4. #os.chdir(resultPath)
  5. #first2 = True 
  6. sinkAddr = sys.argv[1]
  7. for num in range(1, 31):
  8.     os.chdir(resultPath + '/run' + str(num))
  9.     print '---------------------------------------- run' + str(num)
  10.     first2 = True 
  11.     outFile = open('nbrTable_'+ str(num) +'.nc', 'w')
  12.     for file in os.listdir(resultPath + '/run' + str(num)):
  13.         tok = string.split(file, '_')
  14.         if tok[0] <> 'h':
  15.             continue
  16.         moteID = tok[1]
  17.         isSome = False
  18.         print 'Now looking into neighbors of ' + moteID
  19.         fDat = open(file, 'r')
  20.         for line in fDat.readlines():
  21.             tok = string.split(line, ' ')
  22.             if((string.strip(tok[0]) == 'MyInfo')):
  23.                 index = 2
  24.                 myID = string.strip(tok[index])
  25.                 if(myID == sinkAddr):
  26.                     myID = "0"
  27.   
  28.                 mySLOT = string.strip(tok[index+2])
  29.                 myFRAME = string.strip(tok[index+4])
  30.                 if(myFRAME == '255'):
  31.                     continue
  32.                 if(myID <> '255'):
  33.                     if(first2):
  34.                         outFile.write('if(TOS_LOCAL_ADDRESS == ' + myID +') {n')
  35.                         first2 = False;
  36.                     else:
  37.                         outFile.write('else if(TOS_LOCAL_ADDRESS == ' + myID +') {n')
  38.                     outFile.write('  ownSlot = ' + mySLOT +';n')
  39.                     outFile.write('  localFrameLength = ' + myFRAME +';n')
  40.         fDat.close()
  41.         fDat = open(file, 'r')
  42.         order = 0
  43.         for line in fDat.readlines():
  44.             tok = string.split(line, ' ')
  45.             if(string.strip(tok[0]) == 'TwoHopNodeID(FRAME)'):
  46.                 index = 2
  47.                 isSome = True
  48.                 nbrID = string.strip(tok[index])
  49.                 if(nbrID == sinkAddr):
  50.                     nbrID = "0"
  51.                 nbrSLOT = string.strip(tok[index+2])
  52.                 nbrFRAME = string.strip(tok[index+4])
  53.                 if(nbrID <> '255'):
  54.                     outFile.write('  nbrInfo[' + str(order) + '].nodeID = ' + nbrID +';n')
  55.                     outFile.write('  nbrInfo[' + str(order) + '].bitMap = TWO_HOP;n')
  56.                     outFile.write('  nbrInfo[' + str(order) + '].frame = ' + nbrFRAME +';n')
  57.                     outFile.write('  nbrInfo[' + str(order) + '].slot = ' + nbrSLOT +';n')
  58.                     outFile.write('  Blacklist(nbrInfo[' + str(order) + '].slot, nbrInfo[' + str(order) + '].frame);n')         
  59.                     order = order+1
  60.         if(isSome):
  61.             outFile.write('} n')
  62.         fDat.close()  
  63.