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