私は、ビープ音を発するプログラムを取得しようとしています。私は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()
更新:私は同僚にビープ音で迷惑をかけています。ヘッドフォン用のオーディオジャックから取得できますか?
Windowsで、コンピューターにビープ音を鳴らすだけの場合:
import winsound
frequency = 2500 # Set Frequency To 2500 Hertz
duration = 1000 # Set Duration To 1000 ms == 1 second
winsound.Beep(frequency, duration)
winsound.Beep()
は、ビープ音を鳴らしたいところならどこでも使用できます。
これを行うクロスプラットフォームの方法は、print '\a'
です。これにより、ASCII Bell文字がstdoutに送信され、できればビープ音(「アラート」の意味)が生成されます。最新の端末エミュレータの多くは、ベル文字を無視するオプションを提供していることに注意してください。
Windowsを使用しているので、Windowsには独自の(自分自身を引き締める)ビープAPIがあり、ビープ音を送信できることを聞いて喜んでいるでしょう任意の長さとピッチの。これはWindows専用のソリューションであるため、Hertzとミリ秒を本当に気にしない限り、おそらくprint '\a'
を好むはずです。
Beep APIにはwinsoundモジュールからアクセスします: http://docs.python.org/library/winsound.html
Linux
$ apt-get install beep
$ python
>>> os.system("beep -f 555 -l 460")
OR
$ 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)
ノート :
os.system
ではなくsubprocess.Popen
を使用することにしました(これは悪いことです)echo
の '-n'は、これ以上表示しないことですsleep
は結果のテキストシーケンスに必要です(* x)Windowsの回答とDebianの回答があるので、ここにMacがあります:
これは、Windowsでピエゾ電気のビープ音を鳴らすのではなく、カスタマイズ可能なアラートサウンドをすばやく作成する方法をここで探していることを前提としています。
os.system( "say beep" )
免責事項:ビープコードのハッキングを心配している場合は、os.system
をsubprocess
モジュールの呼び出しに置き換えることができます。
クロスプラットフォームの方法:
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')