aboutsummaryrefslogtreecommitdiff
path: root/Sender.py
diff options
context:
space:
mode:
Diffstat (limited to 'Sender.py')
-rw-r--r--Sender.py52
1 files changed, 32 insertions, 20 deletions
diff --git a/Sender.py b/Sender.py
index 2a125e9..8ebe503 100644
--- a/Sender.py
+++ b/Sender.py
@@ -152,22 +152,26 @@ class LinkLayer:
self.p = pyaudio.PyAudio()
self.isReceiving = False
self.isEstablished = False
+ self.byte_per_transmit = 8
+ self.freq_range = 1000
def transmit_string(self, data):
data_list = string_to_binary(data)
- for i in range(len(data_list)):
- freq_map = {}
- start_freq = 18000
- for j in range(len(data_list[i])):
- if data_list[i][j] == "0":
- freq_map[start_freq + j * 250] = 0.0
+ # for i in range(len(data_list)):
+ # freq_map = {}
+ # start_freq = 18000
+ # for j in range(len(data_list[i])):
+ # if data_list[i][j] == "0":
+ # freq_map[start_freq + j * 250] = 0.0
- if data_list[i][j] == "1":
- freq_map[start_freq + j * 250] = 1.0
+ # if data_list[i][j] == "1":
+ # freq_map[start_freq + j * 250] = 1.0
- # print(freq_map)
- play_frequencies_separately(freq_map, duration=0.5)
+ # # print(freq_map)
+ # play_frequencies_separately(freq_map, duration=0.5)
+ play_data(data_list, self.start_freq, self.freq_range, self.byte_per_transmit, self.p)
+
def receive_string(self, data):
binary = ['0'] * 8
@@ -186,24 +190,32 @@ class LinkLayer:
while True:
if not self.isReceiving:
user_input = input("Enter data to send: ")
- if user_input == "exit":
- self.send_postamble()
+ if user_input == "exit" or user_input == "q":
+ self.exit()
self.transmit_string(user_input)
else:
print("Currently receiving data, please wait...")
+ def exit(self):
+ self.stream.stop_stream()
+ self.stream.close()
+ self.p.terminate()
-link_layer = LinkLayer()
-
-# Create a thread for sending data
-send_thread = threading.Thread(target=link_layer.send_data)
-
-# Start the threads
-send_thread.start()
-
# take in range width, the number of bytes, and the bytes themselves, and starting freq
# cmdline args: data, start freq, bytes per transmit, frequency range
# 18500, 1000 range
# vlistener takes in no data.
+
+def main():
+ link_layer = LinkLayer()
+
+ # Create a thread for sending data
+ send_thread = threading.Thread(target=link_layer.send_data)
+
+ # Start the threads
+ send_thread.start()
+
+if __name__ == "__main__":
+ main() \ No newline at end of file