[chronojump] Encoder has sounds
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] Encoder has sounds
- Date: Wed, 4 Apr 2012 12:08:24 +0000 (UTC)
commit 57e06e97477f0bbbe122761779b2e4a46b0dd6d8
Author: Xavier de Blas <xaviblas gmail com>
Date: Wed Apr 4 20:07:20 2012 +0800
Encoder has sounds
encoder/dialog-error.ogg | Bin 0 -> 10660 bytes
encoder/dialog-question.ogg | Bin 0 -> 9851 bytes
encoder/pyserial_pyper.py | 64 +++++++++++++++++++++++++++++-------------
encoder/service-login.ogg | Bin 0 -> 17274 bytes
glade/chronojump.glade | 6 +++-
5 files changed, 48 insertions(+), 22 deletions(-)
---
diff --git a/encoder/dialog-error.ogg b/encoder/dialog-error.ogg
new file mode 100644
index 0000000..e8fcd2d
Binary files /dev/null and b/encoder/dialog-error.ogg differ
diff --git a/encoder/dialog-question.ogg b/encoder/dialog-question.ogg
new file mode 100644
index 0000000..182227e
Binary files /dev/null and b/encoder/dialog-question.ogg differ
diff --git a/encoder/pyserial_pyper.py b/encoder/pyserial_pyper.py
index 4865c70..0cb24d9 100644
--- a/encoder/pyserial_pyper.py
+++ b/encoder/pyserial_pyper.py
@@ -18,7 +18,7 @@ from pyper import *
#import subprocess
#import pygame.image
#import pygame.display
-#import pygame
+import pygame
#from pygame.locals import * #mouse and key definitions
@@ -64,24 +64,33 @@ frames_push_bottom1 = list()
frames_push_bottom2 = list()
previous_frame_change = 0
-#modes:
-#0: don't do calculations
-mode = 0
-
lag=20
-#unused now
-def cumulative_sum(n):
- cum_sum = []
- y = 0
- for i in n: # <--- i will contain elements (not indices) from n
- y += i # <--- so you need to add i, not n[i]
- cum_sum.append(y)
- return cum_sum
#https://wiki.archlinux.org/index.php/Color_Bash_Prompt#Prompt_escapes
+
+#sound stuff
+#http://code.activestate.com/recipes/521884-play-sound-files-with-pygame-in-a-cross-platform-m/
+# global constants
+FREQ = 44100 # same as audio CD
+BITSIZE = -16 # unsigned 16 bit
+CHANNELS = 2 # 1 == mono, 2 == stereo
+BUFFER = 1024 # audio buffer size in no. of samples
+FRAMERATE = 30 # how often to check if playback has finished
+def playsound(soundfile):
+ sound = pygame.mixer.Sound(soundfile)
+ clock = pygame.time.Clock()
+ sound.play()
+ while pygame.mixer.get_busy():
+ clock.tick(FRAMERATE)
+
+soundFileStart = "/home/xavier/informatica/progs_meus/chronojump/chronojump/encoder/service-login.ogg"
+soundFileGood = "/home/xavier/informatica/progs_meus/chronojump/chronojump/encoder/dialog-question.ogg"
+soundFileBad = "/home/xavier/informatica/progs_meus/chronojump/chronojump/encoder/dialog-error.ogg"
+
+
BLACK = 30
RED = 31
GREEN = 32
@@ -177,13 +186,23 @@ def calculate_all_in_r(temp, top_values, bottom_values, direction_now, smoothing
peakPowerCol = "%10.2f," % peakPower
colPeakPower = assignColor(peakPower, peakPowerHigherCondition, peakPowerLowerCondition)
+ play = False
+ if colPower == GREEN or colPeakPower == GREEN:
+ play = True
+ soundFile = soundFileGood
+ elif colPower == RED or colPeakPower == RED:
+ play = True
+ soundFile = soundFileBad
+
phaseRange = phaseRange / 10 #from cm to mm
if eccon == "ec" or direction_now == -1:
if phaseRange >= minHeight:
print phaseCol + "%6i," % phaseRange + "%10.2f," % meanSpeed + "%9.2f," % maxSpeed + colorize(meanPowerCol,colPower,colPower!=BLACK) + colorize(peakPowerCol,colPeakPower,colPeakPower!=BLACK) + "%11i" % peakPowerT
+ if play:
+ playsound(soundFile)
else:
- print chr(27) + "[2;37m" + phase + chr(27) + "[0;47m" + "%6i," % phaseRange + chr(27)+"[0m" + chr(27) + "[2;37m" + meanSpeedCol + "%9.2f," % maxSpeed + meanPowerCol + "%10.2f," % peakPower + "%11i" % peakPowerT + chr(27)+"[0m"
+ print chr(27) + "[0;37m" + phase + chr(27) + "[0;47m" + "%6i," % phaseRange + chr(27)+"[0m" + chr(27) + "[0;37m" + meanSpeedCol + "%9.2f," % maxSpeed + meanPowerCol + "%10.2f," % peakPower + "%11i" % peakPowerT + chr(27)+"[0m"
def calculate_range(temp_cumsum, top_values, bottom_values, direction_now):
@@ -213,6 +232,15 @@ def calculate_range(temp_cumsum, top_values, bottom_values, direction_now):
#try:
if __name__ == '__main__':
+ print("Please, wait...\n")
+ # initialize pygame.mixer module
+ # if these setting do not work with your audio system
+ # change the global constants accordingly
+ try:
+ pygame.mixer.init(FREQ, BITSIZE, CHANNELS, BUFFER)
+ except pygame.error, exc:
+ print >>sys.stderr, "Could not initialize sound system: %s" % exc
+
#print "connecting with R"
myR = R()
myR.run('library("EMD")') #needed on reducing curve by speed (extrema)
@@ -220,12 +248,6 @@ if __name__ == '__main__':
myR.run('weight=mass*9.81')
myR.assign('k',2)
- # Initial serial
- #print(sys.argv)
- #if(len(sys.argv) == 2):
- # file = open(sys.argv[1], 'w')
- #else:
- # file = open("data.txt", 'w')
file = open(outputFile, 'w')
ser = serial.Serial(w_serial_port)
@@ -241,6 +263,8 @@ if __name__ == '__main__':
#if ser.readable(): #commented because don't work on linux
ser.read()
+ print("START!\n")
+ playsound(soundFileStart)
print("phase, range, meanSpeed, maxSpeed, meanPower, peakPower, peakPowerT")
for i in xrange(record_time):
#if ser.readable(): #commented because don't work on linux
diff --git a/encoder/service-login.ogg b/encoder/service-login.ogg
new file mode 100644
index 0000000..7d931b7
Binary files /dev/null and b/encoder/service-login.ogg differ
diff --git a/glade/chronojump.glade b/glade/chronojump.glade
index f974c63..e9897d3 100644
--- a/glade/chronojump.glade
+++ b/glade/chronojump.glade
@@ -23245,6 +23245,7 @@ on current Chronojump version.</property>
<widget class="GtkAlignment" id="alignment19">
<property name="visible">True</property>
<property name="left_padding">12</property>
+ <property name="right_padding">12</property>
<child>
<widget class="GtkHBox" id="hbox58">
<property name="visible">True</property>
@@ -23717,7 +23718,7 @@ on current Chronojump version.</property>
</widget>
<packing>
<property name="expand">False</property>
- <property name="padding">8</property>
+ <property name="padding">4</property>
<property name="position">0</property>
</packing>
</child>
@@ -23856,6 +23857,7 @@ on current Chronojump version.</property>
<widget class="GtkAlignment" id="alignment17">
<property name="visible">True</property>
<property name="left_padding">12</property>
+ <property name="right_padding">12</property>
<child>
<widget class="GtkHBox" id="hbox79">
<property name="visible">True</property>
@@ -24039,7 +24041,7 @@ on current Chronojump version.</property>
</widget>
<packing>
<property name="expand">False</property>
- <property name="padding">8</property>
+ <property name="padding">4</property>
<property name="position">0</property>
</packing>
</child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]