On 03/01/15 19:19, Ted wrote:
> Alan Thank you so much for the reply,  attached is a screenshot of a 
> 4.9M earthquake in Challis Idaho, about 150 miles north.
> this is what I need the alarm for.
>
> I am using Python 2.7? and Windows 7.
>
> 1.  Should I reply-all, or ok to you?  or either?

ReplyAll please, that way you get responses from everyone not just me.
And that's a very good thing, trust me! :-)

3.  The data is coming from a serial port from an arduino........and I 
think this is a "string"

Yes, in Python2 it will be, in Python 3 it will be a bytestring
but you can ignore that for now! :-)

> I think I need to see it as an (int)?   But I don't know how.
> As you can see here is where I placed that.
> myData = int (arduinoSerialData.readline())

Thats exactly correct. int() converts the string to a number.  Just to confirm 
myData = int (arduinoSerialData.readline()) is this line written right. ())


> I want to add an IF as you can see below, and this seems to work,
> but I am not sure I am seeing  (int), because the numbers don't seem 
right.

Tell us what you see and what you expect. I now think,  this is is correct, so 
I will go to the next step.

> The good news, is I do see the data in python, either a string or int???
> The good news, is I can play the sound file as it is below.
Great, we'll look at it in more detail.


> import serial #Import Serial Library
> import time   # Slows the print
> import winsound
> arduinoSerialData = serial.Serial('com7', 9600) #Create Serial port 
> object called arduinoSerialData # Don't change this.
> myData = (arduinoSerialData.readline())
>
> What happens if you print myData here?
>
> while (1==1):

use

while True:  

instead of the equality test.  I understand.

>        myData = int (arduinoSerialData.readline())
>       if myData >33500:
>            print(arduinoSerialData.readline())   Here I would like to see it 
> printed, AS WELL AS, doing the following.

Note this is printing the next thing from Arduino but not storing it 
anywhere.
You are throwing it away... HERE IS MY MAIN GOAL,  Here I do want to go to the 
next step..and not throw the numbers away.
1. These numbers come it very fast 18 per second?  and I can’t change that.  I 
want these number to trigger an alarm.
2. Perhaps I need to say, save these numbers for 30 seconds, and give me one 
average number every 30 seconds.
If that average number, increases or decrease by 10% go to the next step.  if 
not do nothing.
3. Now the average number has increased or decrease by, say 12%....next
4. If this average number stays above/below this 10% for 30 seconds, trigger 
the alarm.
5. Hopefully both the IF’S   (10%), and (30) seconds, would be changeable, as I 
don’t know for sure these conditions.  It may be 12%, and 40 seconds.

>            time.sleep(1) #Slows to 1000ms
>            soundfile = "c:\Windows\Media\Alarms\Alarm.wav"#Song/Track 
> to play(MUST be wav)

Windows paths can be troublesome due to the \ characters
which Python treats as special, you should prefix them with r
to tell Python to ignore the \

soundfile = r"c:\Windows\Media\Alarms\Alarm.wav"

Alternatively use Unix style / instead:   Thank you I understand.

soundfile = "c:/Windows/Media/Alarms/Alarm.wav"

Please let me know if, I need to change my Q&A’s style.   I really need help, I 
have no python knowledge, and I am very appreciative.
Thanks, Ted 



-- 
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.amazon.com/author/alan_gauld
Follow my photo-blog on Flickr at:
http://www.flickr.com/photos/alangauldphotos

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to