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

网络

开发平台:

Others

  1. #changed for getting odd results
  2. import os, sys, string, time
  3. tosRoot = '/home/acwarrie/tinyos-1.x'
  4. clearMotePath = tosRoot + '/apps/Blink'
  5. progPath = tosRoot + '/contrib/zmacForRelease/apps/MultiHopThroughput'
  6. #progPath = tosRoot + '/contrib/zmac/apps/SingleHopThroughput'
  7. #progPath = tosRoot + '/contrib/zmac/apps/TestBedTopology'
  8. resultPath = '/home/acwarrie/research/TestBedThroughput/results'
  9. #motesExceptSink = ['15', '17', '31', '32', '35', '36', '11', '13', '21', '22', '37', '38', '33', '34',
  10. #                   '2', '9', '10', '39', '1', '24', '27', '28', '8', '20']
  11. #motesExceptSink = ['11', '21', '22']
  12. #motesExceptSink2 = ['1', '10', '2', '22', '24', '9']
  13. motesExceptSink = ['21', '37', '38', '15', '17', '31', '32', '40', '41', '42', '43',
  14.                    '2', '3', '10', '9', '39',
  15.                    '24', '27', '28', '20', '1',
  16.                    '5', '14', '18', '19']
  17. sinkMote = '22'
  18. allMotes = ['1', '3', '2', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40' ,'41', '42', '43']
  19. def clearMotes():
  20.     os.chdir(clearMotePath)
  21. #    os.system('loadlistTB ' + ' '.join(motesExceptSink) + ' ' + sinkMote)
  22.     os.system('loadlistTB ' + ' '.join(allMotes))
  23.     time.sleep(10) #sleep for 10s
  24. os.system('rm -rf ' + resultPath + '/*')
  25. #for sendRate in [10000]:
  26. #for sendRate in [20, 500, 2000]:
  27. #for sendRate in [20, 50, 125, 133, 143, 154, 167, 182, 200, 222, 250, 285, 333, 400, 500, 666, 1000, 2000]:
  28. #for sendRate in [500, 600, 700, 800, 1000]:
  29. for sendRate in [20, 40, 80, 160, 320, 640, 1280, 2560]:
  30.     #clear all the motes
  31.     clearMotes()
  32.     
  33.     #compile changed program
  34.     os.chdir(progPath)
  35.     makeCmd = 'make SEND_RATE=' + str(sendRate) + ' mica2'
  36.     print makeCmd
  37.     os.system(makeCmd)
  38.     #    upload changed program
  39. #    runCmd = 'make SEND_RATE=' + str(sendRate) + ' mica2 reinstall.' + sinkMote + ' EPRB=h' + sinkMote + ' &'
  40.     runCmd = 'make SEND_RATE=' + str(sendRate) + ' mica2 reinstall.0 EPRB=h' + sinkMote + ' &'
  41.     print runCmd
  42.     os.system(runCmd) # this is for sink
  43.     os.system('loadlistTB ' + ' '.join(motesExceptSink)) # this is for rest of the testbed
  44.     time.sleep(20)
  45.     runPath = resultPath + '/run_' + str(sendRate)
  46.     os.mkdir(runPath)
  47.     for mote in motesExceptSink + [sinkMote]:
  48.         pid = os.spawnlp(os.P_NOWAIT, 'telmoteTB', 'telmoteTB', 'h' + mote, runPath + '/h_' + str(mote))
  49.     
  50.     time.sleep(500)
  51.     os.system('killall -s 9 telnet')