Hi!

so here my small enhancements to shr-settings. against the version in "old" 
shr-unstable

*) have date/time from locale settings in your language
*) have gprs bytes RX/TX counter

===============================================================
*) able to turn off gprs , and with hack its actually working :-)

to have gprs-turn off-actually work you need to run: gprs_resolv_fix.sh !!! otherwise your nameservers will be set to 127.0.0.1

this crappy bug is in
/usr/lib/python2.6/site-packages/framework/subsystems/ogsmd/modems/abstract/pdp.py
so long. please somebody fix it and put it upstream!!!!! PLEASEEEEEEEEEE !!!!
===============================================================

        cheers,
        Zoff.
--
"My malpractice insurance doesn’t cover alien autopsies."
#! /bin/sh

GPRS_DEVICE='ppp0'

data_line=`ifconfig $GPRS_DEVICE|grep 'RX bytes' 2> /dev/null`
data_rx_txt=`echo "$data_line"|awk '{print $3 " " $4}'|tr -d '()'`
data_rx_bytes=`echo "$data_line"|awk '{print $2}'|cut -d ':' -f 2`
data_tx_txt=`echo "$data_line"|awk '{print $7 " " $8}'|tr -d '()'`
data_tx_bytes=`echo "$data_line"|awk '{print $6}'|cut -d ':' -f 2`

echo "sent: ""$data_tx_txt"" ""rcvd: ""$data_rx_txt"
# echo "$data_tx_bytes"" ""$data_rx_bytes"
#! /bin/sh

# turn off gprs
mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.PDP.DeactivateContext 2> /dev/null

# kill them soft
pkill ophonekitd
## pkill fso-abyss
pkill pppd
pkill fsousaged

sleep 1

# kill them hard
pkill -9 ophonekitd
## pkill -9 fso-abyss
pkill -9 pppd
pkill -9 fsousaged

/etc/init.d/frameworkd stop
/etc/init.d/dbus-1 stop

# kill it hard!
pkill -9 -f '/usr/bin/frameworkd'
pkill -9 -f '/usr/bin/frameworkd'

/etc/init.d/dbus-1 start > /dev/null 2> /dev/null
/etc/init.d/frameworkd start > /dev/null 2> /dev/null
sleep 3
## fso-abyss > /dev/null 2> /dev/null &
fsousaged > /dev/null 2> /dev/null &
/etc/X11/Xsession.d/80ophonekitd > /dev/null 2> /dev/null
## /etc/init.d/connman restart
## /etc/init.d/networking restart
/etc/init.d/fso-gpsd restart > /dev/null 2> /dev/null

--- /usr/lib/python2.6/site-packages/shr_settings_modules/shr_date.py	Sat Sep  5 21:19:50 2009
+++ shr_date.py	Sun Aug 30 20:27:24 2009
@@ -4,6 +4,15 @@
 # Locale support
 import gettext
 
+
+# Zoff <z...@zoff.cc>
+import os
+import locale
+locale.setlocale(locale.LC_MESSAGES, os.environ['LC_MESSAGES'])
+locale.setlocale(locale.LC_TIME, os.environ['LC_TIME'])
+# Zoff <z...@zoff.cc>
+
+
 try:
     cat = gettext.Catalog("shr-settings")
     _ = cat.gettext
@@ -17,5 +26,6 @@
     def createView(self):
         la = elementary.Label(self.window)
         la.label_set(date.today().strftime("%A, %d %B %Y"))
+        # la.label_set(date.today().strftime("%A, %d %B %Y"))
         la.scale_set(1.5)
         return la
--- shr_gprs.py_SHR	Thu Sep 24 16:51:42 2009
+++ shr_gprs.py	Thu Sep 24 16:53:58 2009
@@ -6,6 +6,12 @@
 import os
 import pickle
 
+
+import time
+# import threading
+from threading import Timer
+from threading import Thread
+
 # Locale support
 import gettext
 
@@ -113,6 +119,28 @@
         self.show()
 
 
+#class HeartBeat(Thread):
+#    def __init__(self,win):
+#        Thread.__init__(self)
+#        self.stopped = False
+#        self.w=win
+#   
+#    def run(self):
+#        while not self.stopped:
+#            print "HeartBeat loop"
+#            self.stopped = not self.w.window.visible
+#            if not self.stopped:
+#                print "HeartBeat loop2"
+#
+#                self.data_counter_text = os.popen("gprs_data_counter.sh").read().rstrip('\n')
+#                self.w.label_rxtx.label_set(self.data_counter_text)
+#
+#                time.sleep(5)
+#                print "HeartBeat loop3"
+#                # self.w.updateStatus()
+#            print "HeartBeat loop4"
+
+
 class Gprs(module.AbstractModule):
     name = _("GPRS settings")
     section = _("networking")
@@ -120,6 +148,7 @@
     # persistent data file, until something is available in opreferencesd
     persistData = '/etc/shr-settings/gprs.pickle'
 
+
     def error(self):
         label = elementary.Label(self.window)
         label.label_set(_("Couldn't connect to FSO"))
@@ -155,6 +184,8 @@
         `/etc/shr-settings/` is assumed to exist
         """
 
+	print "writing gprs persistData" # Zoff <z...@zoff.cc>
+
         # Assume connection was made, therefore is good data, so pickle it
         pickleData = self.getEntryData()
         pickleFile = open(self.persistData, "w")
@@ -175,23 +206,34 @@
         return 0
 
     def disconnect(self, obj, event, *args, **kargs):
-        self.dbusObj.DeactivateContext(reply_handler = self.dbusnothing, error_handler = self.dbuserror)
+        # self.dbusObj.DeactivateContext(reply_handler = self.dbusnothing, error_handler = self.dbuserror)
+        # output=os.popen('mdbus -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.PDP.DeactivateContext').read()
+        # output=os.popen('gprs_turn_off_hack.sh &').read()
+        # print output
+        os.system('gprs_turn_off_hack.sh >/dev/null 2> /dev/null')
+	print "Disconnect dbus"
         return 0
 
     def nothing(self, obj, event, *args, **kargs):
         print "nothing called"
         return 0
 
+
+
     def updateStatus(self, id = None, gprs_status = None, *args, **kargs):
         if id == None:
             self.dbusObj.GetContextStatus(reply_handler = self.updateStatus, error_handler=self.dbuserror)
         else:
+            self.data_counter_text = os.popen("gprs_data_counter.sh").read().rstrip('\n')
+            self.label_rxtx.label_set(self.data_counter_text)
+
             if gprs_status == None:
                 gprs_status = id
             if gprs_status == 'release' or gprs_status == 'released':
                 status=_("disconnected")
                 self.btConnectDisconnect.label_set(_("Connect"))
                 self.btConnectDisconnect.clicked = self.connect
+                self.saveConnectionData()
             elif gprs_status == 'active':
                 status=_("connected")
                 self.btConnectDisconnect.label_set(_("Disconnect"))
@@ -202,10 +244,12 @@
                 status=_("connecting")
                 self.btConnectDisconnect.label_set(_("Disconnect"))
                 self.btConnectDisconnect.clicked = self.disconnect
+                self.saveConnectionData()
             elif gprs_status == 'incoming':
                 status=_("incoming")
                 self.btConnectDisconnect.label_set(_("Connect"))
                 self.btConnectDisconnect.clicked = self.connect
+                self.saveConnectionData()
             elif gprs_status == 'held':
                 status=_("held")
                 self.btConnectDisconnect.label_set(_("Disconnect"))
@@ -214,6 +258,7 @@
                 status=_("UNKNOWN")+" ("+str(id) + ' ' + str(gprs_status)+")"
                 self.btConnectDisconnect.label_set(_("UNKNOWN"))
                 self.btConnectDisconnect.clicked = self.nothing
+                self.saveConnectionData()
             self.labelStatus.label_set(status)
             return True
 
@@ -245,13 +290,18 @@
             self.entryAPN       = GPRSEntryBox(self.window, _("Your APN: "), self.apn)
             self.entryLogin     = GPRSEntryBox(self.window, _("Your login: "), self.login)
             self.entryPassword  = GPRSEntryBox(self.window, _("Your password: "), self.password)
-            self.labelStatus    = GPRSLabelBox(self.window, _("Connection status: "),_("UNKNOWNN"))
-            #self.laTransferred = self.newLabel(_("Transferred bytes (RX/TX): UNKNOWN"))
+            self.labelStatus    = GPRSLabelBox(self.window, _("Connection status: "),_("UNKNOWN"))
+            self.data_counter_text = os.popen("gprs_data_counter.sh").read().rstrip('\n')
+            # self.laTransferred = self.newLabel(_("xxxxxxxxxxxxx"))
+            self.label_rxtx = GPRSLabelBox(self.window, _("Bytes "),self.data_counter_text)
 
+
             self.main.pack_end(self.entryAPN)
             self.main.pack_end(self.entryLogin)
             self.main.pack_end(self.entryPassword)
             self.main.pack_end(self.labelStatus)
+            # self.main.pack_end(self.laTransferred)
+            self.main.pack_end(self.label_rxtx)
 
             #CONNECT / DISCONNECT button
             self.btConnectDisconnect = elementary.Button(self.window)
@@ -262,10 +312,14 @@
 
             self.updateStatus()
 
+            # self.t=HeartBeat(self)
+            # self.t.start()
+
         except:
             # This needs expansion, error reason etc...
             self.error()
 
         self.main.show()
+
 
         return self.main
--- /usr/lib/python2.6/site-packages/shr_settings_modules/shr_gsm.py	Sat Sep  5 21:19:50 2009
+++ shr_gsm.py	Thu Aug 20 22:48:42 2009
@@ -1,6 +1,9 @@
 import module, elementary
 import dbus
 
+# for sleep
+import time
+
 # Locale support
 import gettext
 
@@ -35,11 +38,10 @@
             self.gsm_network_iface = dbus.Interface(gsm_device_obj, 'org.freesmartphone.GSM.Network')
             self.gsm_device_iface = dbus.Interface(gsm_device_obj, 'org.freesmartphone.GSM.Device')
 
-            opkd_device_obj = bus.get_object( 'org.shr.ophonekitd.Usage', '/org/shr/ophonekitd/Usage' )
-            self.opkd_device_iface = dbus.Interface(opkd_device_obj, 'org.shr.ophonekitd.Usage')
-            #test
-            #self.gsm_device_iface.GetAntennaPower()
-            #test end
+            # Zoff
+            usage_device_obj = bus.get_object( 'org.freesmartphone.ogsmd', '/org/freesmartphone/Usage' )
+            usage_device_iface = dbus.Interface(usage_device_obj, 'org.freesmartphone.Usage' )
+
             self.dbus_state = 1
         except:
             self.dbus_state = 0
@@ -53,21 +55,41 @@
             return 0
         else:
             try:
-                tr = self.opkd_device_iface.GetResourceState('GSM')
+                #Z tr = self.opkd_device_iface.GetResourceState('GSM')
+		tr = self.gsm_device_iface.GetAntennaPower()
             except:
                 tr = 0
             return tr
 
     def gsmdevice_setAntennaPower(self, b):
         if self.dbus_state==1:
-            if b:
-                self.opkd_device_iface.RequestResource('GSM')
+            if b==1:
+                #Z self.opkd_device_iface.RequestResource('GSM')
+                # self.usage_device_iface.RequestResource('GSM')
                 try:
                     self.gsm_device_iface.SetAntennaPower(True)
                 except:
                     pass
+
+		print "sleep now"
+                # Zoff: didnt know any better solution for now :-(   ==>   fixme
+                time.sleep(15)
+		print "sleep finished"
+
+                try:
+                    # Zoff: also register to network, or at least try :-)
+                    print "try to register network"
+                    self.gsm_network_iface.Register()
+                    print "register network ok"
+                except:
+                    pass
             else:
-                self.opkd_device_iface.ReleaseResource('GSM')
+                try:
+                    self.gsm_device_iface.SetAntennaPower(False)
+                except:
+                    pass
+                # self.usage_device_iface.ReleaseResource('GSM')
+                #Z self.opkd_device_iface.ReleaseResource('GSM')
 
     def gsmdevice_GetInfo(self):
         if self.dbus_state==1:
@@ -368,7 +390,7 @@
             self.toggle0 = elementary.Toggle(self.window)
             self.toggle0.label_set(_("GSM antenna:"))
             self.toggle0.size_hint_align_set(-1.0, 0.0)
-            self.toggle0.states_labels_set(_("On"),_("Off"))
+            self.toggle0.states_labels_set("On","Off")
             self.toggle0.show()
             self.box1.pack_start(self.toggle0)
 
#! /bin/sh

# grps down fix
cd /media/card
cd /usr/lib/python2.6/site-packages/framework/subsystems/ogsmd/modems/abstract/
rm -f pdp.pyo
cat pdp.py |sed -e 's#echo nameserver 127.0.0.1 > /etc/resolv.conf#echo nameserver 208.67.222.222 \> /etc/resolv.conf\;echo nameserver 208.67.220.220 \>\> /etc/resolv.conf#' > pdp.py_patched
mv pdp.py_patched pdp.py
cd /media/card
# grps down fix

_______________________________________________
Shr-devel mailing list
Shr-devel@lists.shr-project.org
http://lists.shr-project.org/mailman/listinfo/shr-devel

Reply via email to