Python: издает звуковой сигнал



Я пытаюсь заставить программу дать мне звуковой сигнал. Я нахожусь на машине windows. Я посмотрел на http://docs.python.org/library/winsound.html



но не уверен, как я могу запрограммировать это с помощью сканера штрих-кодов.



вот мой код для серийного сканера штрих-кодов.



ser = serial.Serial()
ser.baudrate = 9600

#for windows
ser.port = 2 #for COM3

ser.open()
ser.write('hello')
ser.close()


UPDATE: так как я раздражаю своих сотрудников звуковым сигналом. Могу ли я получить его через аудиоразъем для наушников?

915   6  

6 ответов:

на Windows, Если вы хотите просто сделать компьютер сделать звуковой сигнал:

import winsound
frequency = 2500  # Set Frequency To 2500 Hertz
duration = 1000  # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)

The winsound.Beep() может использоваться везде, где вы хотите, чтобы звуковой сигнал произошел.

кросс-платформенный способ сделать это print '\a'. Это отправит символ ASCII Bell в stdout и, надеюсь, создаст звуковой сигнал (a для "alert"). Обратите внимание, что многие современные эмуляторы терминалов предоставляют возможность игнорировать символы колокола.

Так как вы находитесь на Windows, вы будете рады услышать, что Windows имеет свой собственный (приготовьтесь) Beep API, которая позволяет передавать сигналы произвольной длины и высоты. Обратите внимание, что это только для Windows, поэтому вы наверное, стоит предпочесть print '\a' Если вы действительно не заботитесь о герцах и миллисекундах.

доступ к API Beep осуществляется через winsound модуль:http://docs.python.org/library/winsound.html

Linux.

$ apt-get install beep

$ python
>>> os.system("beep -f 555 -l 460")

или

$ beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047-l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460

Я искал то же самое, но в оболочке Linux.

тема привела меня к ответу, - спасибо -

может быть более подходящие для Python образом :

import os
beep = lambda x: os.system("echo -n '\a';sleep 0.2;" * x)
beep(3)

Примечания :

  • значение сна (здесь 0.2), зависит от длины (в секундах) по умолчанию звуковой сигнал
  • я выбрал использовать os.system, а потом subprocess.Popen для простоты (это может быть плохой)
  • ' - n ' для echo больше не будет дисплей
  • в прошлом ';' после sleep необходимо для результирующей последовательности текста (*x)
  • также проверено через ssh на X Терме

Я пакета для этой цели.

вы можете использовать его как это:

from pybeep.pybeep import PyVibrate, PyBeep
PyVibrate().beep()
PyVibrate().beepn(3)
PyBeep().beep()
PyBeep().beepn(3)

зависит sox и поддерживает только python3.

кросс-платформенный образом:

import time
import sys
for i in range(1,6):
    sys.stdout.write('\r\a{i}'.format(i=i))
    sys.stdout.flush()
    time.sleep(1)
sys.stdout.write('\n')

Comments

    Ничего не найдено.