Набор конфигов для различных программ к SDR приемникам. Главным конфигом считается GQRX, из него генерятся все остальные.
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

57 rader
1.7 KiB

  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)