Набор конфигов для различных программ к SDR приемникам. Главным конфигом считается GQRX, из него генерятся все остальные.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

57 lines
1.7KB

  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)