aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArturs Artamonovs <dos21h@gmail.com>2023-03-15 22:45:41 +0000
committerArturs Artamonovs <dos21h@gmail.com>2023-03-15 22:45:41 +0000
commit9c7aa6dc844b92c93734fd62bb0cde561998012a (patch)
tree357a300c553f21995359652a5ea6473587f81d2e
parenta70b964dd304078d88b13c19a91530864dad0409 (diff)
downloadpyairspyhf-9c7aa6dc844b92c93734fd62bb0cde561998012a.tar.gz
pyairspyhf-9c7aa6dc844b92c93734fd62bb0cde561998012a.zip
Implementing station time handling routing in airtspyhf_shedule
-rwxr-xr-x[-rw-r--r--]airspyhf_shedule.py116
-rw-r--r--number.ini38
2 files changed, 151 insertions, 3 deletions
diff --git a/airspyhf_shedule.py b/airspyhf_shedule.py
index ad23e3d..03139bc 100644..100755
--- a/airspyhf_shedule.py
+++ b/airspyhf_shedule.py
@@ -1,8 +1,118 @@
+#!/usr/bin/python3
+
import os
from airspyhf import *
from ctypes import *
import time
import sys
-import wave
-import struct
-import argparse \ No newline at end of file
+import argparse
+import configparser
+import re
+
+class Station:
+ name = "NoName"
+ frequency = 4000000
+ time = 0
+ duration = 300 #in seconds
+ day = []
+ month = []
+ def __init__(self):
+ pass
+
+ def readConfig(self,config):
+ if "name" in config:
+ self.name = config["name"]
+
+ if "frequency" in config:
+ self.frequency = int(config["frequency"])
+
+ if "time" in config:
+ m = re.match(r"(?P<hour>[0-9]{1,2}):(?P<minute>[0-9]{1,2})",config["time"]).groupdict()
+ m_hour = int(m["hour"])
+ m_minute = int(m["minute"])
+ #what format should be time
+ self.time = m_hour*3600+m_minute*60
+
+ if "duration" in config:
+ s_duration = str(config["duration"])
+ # Supported
+ # 6m
+ # 1h30m
+ # 1m30s
+ # 0m1s
+ # 0h5m10s
+ m = re.match(r"((?P<hour>[0-9]{1,2})h)?((?P<minute>[0-9]{1,2})m)?((?P<second>[0-9]{1,2})s)?",s_duration).groupdict()
+ print(m)
+ time_in_sec = 0
+ if m["hour"]:
+ time_in_sec += int(m["hour"])*3600
+ if m["minute"]:
+ time_in_sec += int(m["minute"])*60
+ if m["second"]:
+ time_in_sec += int(m["second"])
+ self.duration = time_in_sec
+
+ if "day" in config:
+ self.day = config["day"]
+
+ if "month" in config:
+ self.month = config["month"]
+
+
+class StationCollection:
+ stations = []
+ def __init__(self):
+ pass
+
+ def addStation(self,station:Station):
+ self.stations.append(station)
+
+ def listall(self):
+ print("List of stations")
+ for s in self.stations:
+ print(s)
+
+ def listToday(self):
+ print("Today will broadcast")
+
+class RadioConfig:
+ samplerate = 192000
+ def __init__(self):
+ pass
+
+ def readConfig(self, config):
+ if "samplerate" in config:
+ self.samplerate = int(config["samplerate"])
+
+parser = argparse.ArgumentParser()
+parser.add_argument("-c","--configfile")
+parser.add_argument("-d","--debug",help="Output extra logs to see whats happening")
+args = parser.parse_args()
+
+debug = False
+if args.debug:
+ debug = True
+config = configparser.ConfigParser()
+if args.configfile:
+ config.read(args.configfile)
+else:
+ config.read("number.ini")
+
+print(config.sections())
+radio_config = RadioConfig()
+station_config = StationCollection()
+
+for section in config.sections():
+ #print(section)
+ if section == "radio":
+ radio_config.readConfig(config[section])
+ elif section[0:7] == "station":
+ station = Station()
+ station.readConfig(config[section])
+ station_config.addStation(station)
+
+#print list of all stations
+station_config.listall()
+
+#print list of todays stations to record
+station_config.listToday()
diff --git a/number.ini b/number.ini
new file mode 100644
index 0000000..47dc936
--- /dev/null
+++ b/number.ini
@@ -0,0 +1,38 @@
+[radio]
+samplerate=192000
+
+[station0]
+name=F03j
+frequency=4181
+bw=1k
+time=1:35
+duration=5m
+day=every
+month=mar,apr
+
+[station1]
+name=F03j
+frequency=10641
+bw=1k
+time=7:35
+duration=6m
+day=every
+month=mar,apr
+
+[station2]
+name=F03l
+frequency=10641
+bw=1k
+time=13:35
+duration=7m
+day=every
+month=mar,apr
+
+[station3]
+name=P03
+frequency=6940
+bw=1k
+time=19:35
+duration=8m
+day=every
+month=mar,apr \ No newline at end of file