Набор конфигов для различных программ к SDR приемникам. Главным конфигом считается GQRX, из него генерятся все остальные.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

gqrx2sdrtouch.py 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/python3
  2. # Copyright by Vladimir Smagin
  3. # http://blindage.org 21h@blindage.org
  4. fileGQRX = 'gqrx/bookmarks.csv'
  5. fileOUT = 'sdrtouch/SDRTouchPresets.xml'
  6. header = '<?xml version="1.0" encoding="UTF-8"?><sdr_presets version="1"><category id="-1" />'
  7. footer = '</sdr_presets>'
  8. fIN = open(fileGQRX, 'r+')
  9. fOUT = open(fileOUT, 'w')
  10. # первая таблица с тегами
  11. fIN.readline() # строка с заголовками полей - пропустить
  12. categories = []
  13. for line in fIN:
  14. if line == "\n":
  15. break
  16. else:
  17. categories.append(line.split(';')[0].strip())
  18. #таблица частот
  19. fIN.readline() #строка с заголовками полей - пропустить
  20. stations = []
  21. for line in fIN:
  22. data = line.split(';')
  23. i = 0
  24. for m in data:
  25. data[i] = m.strip()
  26. i += 1
  27. stations.append(data)
  28. #записываем в файл
  29. fOUT.write(header)
  30. idCategory = 0
  31. for category in categories:
  32. fOUT.write('<category id="{}" name="{}">'.format(idCategory, category))
  33. idCategory += 1
  34. idStation=0
  35. for station in stations:
  36. if station[4] == category:
  37. #dem: 0 - FM, 1 - NFM, 2 - AM
  38. dem = 0
  39. if station[2] == 'Narrow FM': dem='1'
  40. if station[2] == 'WFM (stereo)': dem='0'
  41. if station[2] == 'WFM (mono)': dem='0'
  42. if station[2] == 'WFM (oirt)': dem='0'
  43. if station[2] == 'AM': dem='2'
  44. resultString='<preset id="{0}" name="{1[1]}" freq="{1[0]}" centfreq="{1[0]}" offset="0" order="1" filter="{1[3]}" dem="{2}" />'.format(idStation, station, dem)
  45. idStation += 1
  46. fOUT.write(resultString)
  47. fOUT.write('</category>')
  48. fOUT.write(footer)