Набор конфигов для различных программ к SDR приемникам. Главным конфигом считается GQRX, из него генерятся все остальные.
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

57 linhas
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)