Categories: Python | How To | Code Examples | S60
How to use your phone as a panic button
From Forum Nokia Wiki
The PyS60 code posted here will basically do the following when run:
- Immediately transmit LAC and CellID to predefined recipients via SMS (this allows for a rough containment of where you are located in your emergency)
- Call an predefined emergency number
- Try to get the GPS position of your phone and if it gets a signal transmit Latitude/Longitude and current speed every three minutes via SMS to predefined recipients
This sums up to a rather complete emergency package acting as some kind of panic button (place this as an .sis application on your today screen or similar...). If you ever get into an emergency immediately broadcast all relevant info to get help!
import e32, appuifw, positioning, location, messaging, telephone def gps_init(): global gps_data gps_data = { 'satellites': {'horizontal_dop': 0.0, 'used_satellites': 0, 'vertical_dop': 0.0, 'time': 0.0,'satellites': 0, 'time_dop':0.0}, 'position': {'latitude': 0.0, 'altitude': 0.0, 'vertical_accuracy': 0.0, 'longitude': 0.0, 'horizontal_accuracy': 0.0}, 'course': {'speed': 0.0, 'heading': 0.0, 'heading_accuracy': 0.0, 'speed_accuracy': 0.0} } try: positioning.select_module(positioning.default_module()) positioning.set_requestors([{"type":"service","format":"application","data":"gps_app"}]) positioning.position(course=1,satellites=1,callback=gps, interval=500000,partial=0) e32.ao_sleep(3) except: appuifw.note(u'Problem with GPS','error') def gps(event): global gps_data gps_data = event def gps_stop(): #this function stops GPS try: positioning.stop_position() except: appuifw.note(u'Problem with GPS','error') def gps_emerg(): gpessa = str( 'My GPS position is (Lat/Long/Geschwindigkeit): %s, %s, %i' % (pos_lat , pos_long, speed) ) print gpessa messaging.sms_send('0123456789', gpessa) #PUT number of receipient you want to inform here print 'GPS Position sent!' print 'Recalling emergency phone number...' telephone.dial('0123456789') #PUT some emergency number here e32.ao_sleep(180) ftrack = location.gsm_location() messa = str( 'I have hit the panic button! My current cell information is LAC %s and Cell-ID %s. Trying to send my exact GPS position soon...' % (ftrack[2] , ftrack[3]) ) print messa messaging.sms_send('0123456789', messa) #PUT number of receipient you want to inform here print 'SMS sent!' e32.ao_sleep(3) print 'Calling emergency phone number...' #PUT some emergency number here telephone.dial('0123456789') gps_init() count = 0 while True: count = count + 1 sat = gps_data['satellites']['used_satellites'] pos_lat = gps_data['position']['latitude'] pos_long = gps_data['position']['longitude'] speed = gps_data['course']['speed'] if pos_lat > 0: print 'Found GPS position, terminating call to free the line...' telephone.hang_up() e32.ao_sleep(1) gps_emerg() e32.ao_sleep(1)
PS: Credits also go to the original contributor of the GPS code. Please keep in mind that you will need the "unsigned_testrange" edition PyS60 for location/position capabilities to function properly.
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| How to link a C++ project and symbian OS project in carbide?? | Adrian99420 | Symbian User Interface | 0 | 2008-02-29 04:29 |
| Nokia 6131 joypad button event? | RageMatrix | Mobile Java General | 1 | 2006-09-14 01:52 |
| Disable Menu Button Using J2ME | jaceline | Mobile Java General | 5 | 2006-04-25 17:42 |
| callSerially method | sinaptix | Mobile Java Media (Graphics & Sounds) | 14 | 2004-09-09 10:39 |
| making a button to load a new form and... | naneziris | Mobile Java General | 2 | 2005-09-07 17:39 |
