first commit
This commit is contained in:
+34
@@ -0,0 +1,34 @@
|
|||||||
|
import ggwave
|
||||||
|
import pyaudio
|
||||||
|
|
||||||
|
# Inicializa o áudio para captura
|
||||||
|
p = pyaudio.PyAudio()
|
||||||
|
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=48000, input=True, frames_per_buffer=1024)
|
||||||
|
|
||||||
|
# Inicializa a instância do decodificador ggwave
|
||||||
|
instance = ggwave.init()
|
||||||
|
|
||||||
|
print("Escutando... Toque o som no emissor.")
|
||||||
|
|
||||||
|
try:
|
||||||
|
while True:
|
||||||
|
# Captura o áudio do microfone
|
||||||
|
data = stream.read(1024, exception_on_overflow=False)
|
||||||
|
|
||||||
|
# Tenta decodificar o sinal capturado
|
||||||
|
res = ggwave.decode(instance, data)
|
||||||
|
|
||||||
|
# Se decodificou algo válido, exibe na tela
|
||||||
|
if res is not None:
|
||||||
|
try:
|
||||||
|
print("Dados recebidos:", res.decode('utf-8'))
|
||||||
|
except UnicodeDecodeError:
|
||||||
|
print("Dados recebidos (bytes):", res)
|
||||||
|
except KeyboardInterrupt:
|
||||||
|
print("\nParando receptor.")
|
||||||
|
|
||||||
|
# Limpa a memória
|
||||||
|
stream.stop_stream()
|
||||||
|
stream.close()
|
||||||
|
p.terminate()
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import ggwave
|
||||||
|
import pyaudio
|
||||||
|
|
||||||
|
# Inicializa o áudio
|
||||||
|
p = pyaudio.PyAudio()
|
||||||
|
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=48000, output=True)
|
||||||
|
|
||||||
|
# Mensagem a ser enviada
|
||||||
|
payload = b"Hello World!"
|
||||||
|
|
||||||
|
# Codifica o protocolo em ondas sonoras (padrão audível)
|
||||||
|
print("Transmitindo som...")
|
||||||
|
waveform = ggwave.encode(payload, protocolId=1) # 1 = Audível, 2 = Ultrassônico
|
||||||
|
|
||||||
|
# Reproduz o som gerado
|
||||||
|
stream.write(waveform)
|
||||||
|
|
||||||
|
# Encerra as conexões
|
||||||
|
stream.stop_stream()
|
||||||
|
stream.close()
|
||||||
|
p.terminate()
|
||||||
|
print("Transmissão concluída.")
|
||||||
|
|
||||||
Reference in New Issue
Block a user