channel.frequency.gen.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/bin/python3
  2. import sys
  3. import random
  4. def channelFrequencyGenerator(lower_frequency, upper_frequency):
  5. system_random = random.SystemRandom()
  6. return system_random.uniform(lower_frequency, upper_frequency)
  7. def isfloat(num):
  8. try:
  9. float(num)
  10. return True
  11. except ValueError:
  12. return False
  13. def isint(num):
  14. try:
  15. int(num)
  16. return True
  17. except ValueError:
  18. return False
  19. def valid(argv):
  20. return (isfloat(argv[1]) and isfloat(argv[2]) and isfloat(argv[4]) and isint(argv[3]))
  21. def verifyChannelSpacing(newchannel, channellist, spacing):
  22. for channel in channellist:
  23. if(newchannel - channel < spacing and channel - newchannel < spacing):
  24. return False
  25. else:
  26. return True
  27. def createChannelList(argv):
  28. channellist= []
  29. channellist.append(round(channelFrequencyGenerator(float(argv[1]), float(argv[2])), 5))
  30. i = 1
  31. j = 0
  32. while i < int(argv[3]):
  33. newchannel=round(channelFrequencyGenerator(float(argv[1]), float(argv[2])), 5)
  34. if(verifyChannelSpacing(newchannel, channellist, float(argv[4]))):
  35. channellist.append(newchannel)
  36. i+=1
  37. else:
  38. j+=1
  39. if j > 3 :
  40. return channellist
  41. return channellist
  42. if __name__ == '__main__':
  43. if (valid(sys.argv)):
  44. print(createChannelList(sys.argv))
  45. else:
  46. print("invalid arguments")