diff options
Diffstat (limited to 'Sender.py')
-rw-r--r-- | Sender.py | 52 |
1 files changed, 32 insertions, 20 deletions
@@ -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 |