dbus has bugs on Getting

This commit is contained in:
cuu 2018-11-27 00:58:16 +08:00
parent ffd0b09194
commit 098105f890
12 changed files with 114 additions and 65 deletions

View File

@ -93,6 +93,7 @@ func (self *SettingsPage) Init() {
alist := [][]string{ // "so file", "folder name", "label text"
{"about.so","About","About"},
{"wifi.so","Wifi","Wi-Fi"},
}

View File

@ -1,13 +1,19 @@
package main
import (
"fmt"
"strconv"
"strings"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
"github.com/cuu/gogame/color"
"github.com/cuu/gogame/draw"
"github.com/cuu/gogame/rect"
"github.com/cuu/gogame/surface"
"github.com/veandco/go-sdl2/sdl"
"github.com/cuu/LauncherGo/sysgo/UI"
"github.com/cuu/LauncherGo/sysgo/DBUS"
)
var NetItemDefaultHeight = 30
@ -47,7 +53,7 @@ func NewNetItemIcon() *NetItemIcon {
}
func (self *NetItemIcon) Draw() {
_,h_ := self.Parent.SIze()
_,h_ := self.Parent.Size()
dest_rect := rect.Rect(self.PosX,self.PosY+(h_-self.Height)/2,self.Width,self.Height)
@ -82,7 +88,7 @@ type NetItem struct {
Stren string // 19%
NetId int
Mode string // Master or AdHoc
Parent UI.PageInterface
Parent *WifiList
IsActive bool
Labels map[string]UI.LabelInterface
@ -90,6 +96,9 @@ type NetItem struct {
Fonts map[string]*ttf.Font
FontObj *ttf.Font
Wireless *DBUS.DbusInterface
Daemon *DBUS.DbusInterface
}
func NewNetItem() *NetItem {
@ -112,10 +121,9 @@ func (self *NetItem) SetActive( act bool) {
}
func (self *NetItem) UpdateStrenLabel( strenstr string) { // ## strenstr should be 'number',eg:'90'
the_main_screen := self.Parent.GetScreen()
dbus := the_main_screen.DBusManager
dbus.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",strenstr), &strenstr)
self.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",strenstr), &strenstr)
self.Stren = strenstr
@ -129,11 +137,13 @@ func (self *NetItem) Init(i int,is_active bool) {
var sig_display_type int
strenstr := "quality"
gap := 4
the_main_screen := self.Parent.GetScreen()
dbus := the_main_screen.DBusManager
dbus.Daemon.Get( dbus.Daemon.Method("GetSignalDisplayType"), &sig_display_type )
the_main_screen := self.Parent.GetScreen()
self.Wireless = self.Parent.Wireless
self.Daemon = self.Parent.Daemon
self.Daemon.Get( self.Daemon.Method("GetSignalDisplayType"), &sig_display_type )
if sig_display_type == 0 {
strenstr = "quality"
@ -146,36 +156,38 @@ func (self *NetItem) Init(i int,is_active bool) {
self.NetId = i
tmp :=""
dbus.Wireless.Get(dbus.Wireless.Method("GetWirelessProperty",self.NetId, strenstr),&tmp)
dbus.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",tmp), &tmp)
self.Wireless.Get(self.Wireless.Method("GetWirelessProperty",self.NetId, strenstr),&tmp)
self.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",tmp), &tmp)
self.Stren = tmp
dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"essid"),&self.Essid)
dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"bssid"),&self.Bssid)
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"essid"),&self.Essid)
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"bssid"),&self.Bssid)
check_enc := false
dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"encryption"),&check_enc)
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"encryption"),&check_enc)
if check_enc == true {
dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"encryption_method"),&self.Encrypt)
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"encryption_method"),&self.Encrypt)
}else {
self.Encrypt = "Unsecured"
}
dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"mode"),&self.Mode)
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"mode"),&self.Mode)
dbus.Wireless.Get( dbus.Wireless.Method("GetWirelessProperty",self.NetId,"channel"),&self.Channel)
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"channel"),&self.Channel)
theString := fmt.Sprintf(" %-*s %25s %9s %17s %6s %4s",gap,self.Stren,self.Essid,self.Encrypt,self.Bssid,self.Mode,
self.Channel)
if is_active {
theString = ">> " + theString[1:]
self.SetActive(is_active)
}
fmt.Println(theString)
essid_label := UI.NewLabel()
essid_label.PosY = 36
essid_label.CanvasHWND = self.Parent.GetCanvasHWND()
@ -187,7 +199,7 @@ func (self *NetItem) Init(i int,is_active bool) {
}else {
essid_ = self.Essid
}
fmt.Println(essid_)
essid_label.Init(essid_, self.FontObj,nil)
self.Labels["essid"] = essid_label
@ -195,7 +207,7 @@ func (self *NetItem) Init(i int,is_active bool) {
stren_label := UI.NewLabel()
stren_label.CanvasHWND = self.Parent.GetCanvasHWND()
stren_label.Init(self.Stren, self.FontObj)
stren_label.Init(self.Stren, self.FontObj,nil)
stren_label.PosX = self.Width - 23 - stren_label.Width-2
self.Labels["stren"] = stren_label
@ -214,7 +226,7 @@ func (self *NetItem) Init(i int,is_active bool) {
self.Icons["done"] = done_icon
nimt := NewNetItemMultiIcon()
nimt.ImgSurf = the_main_screen.TitleBar.Icons["wifistatus"].ImgSurf
nimt.ImgSurf = the_main_screen.TitleBar.Icons["wifistatus"].GetImgSurf()
nimt.CanvasHWND = self.Parent.GetCanvasHWND()
nimt.Parent = self // WidgetInterface
@ -226,10 +238,8 @@ func (self *NetItem) Init(i int,is_active bool) {
func (self *NetItem) Connect() {
the_main_screen := self.Parent.GetScreen()
dbus := the_main_screen.DBusManager
dbus.Wireless.Method("ConnectWireless",self.NetId)
self.Wireless.Method("ConnectWireless",self.NetId)
}
@ -252,9 +262,10 @@ func (self *NetItem) Draw() {
self.Icons["lock"].Draw()
}
stren_int,err := strconv.ParseInt(strings.Replace(self.Stren,"%",""),10,64)
stren_int,err := strconv.ParseInt(strings.Replace(self.Stren,"%","",-1),10,64)
if err == nil {
ge := the_main_screen.TitleBar.GetWifiStrength(stren_int)
the_main_screen := self.Parent.GetScreen()
ge := the_main_screen.TitleBar.GetWifiStrength(int(stren_int))
if ge > 0 {
self.Icons["wifistatus"].SetIconIndex(ge)
self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY)
@ -266,7 +277,7 @@ func (self *NetItem) Draw() {
}
}
draw.Line(self.ParseInt.GetCanvasHWND(),
draw.Line(self.Parent.GetCanvasHWND(),
&color.Color{169,169,169,255},
self.PosX,self.PosY+self.Height-1,
self.PosX+self.Width,self.PosY+self.Height-1,

View File

@ -10,7 +10,7 @@ import (
"github.com/cuu/gogame/color"
*/
"github.com/cuu/LauncherGo/sysgo/UI"
"github.com/cuu/LauncherGo/sysgo/DBUS"
)
/******************************************************************************/
@ -28,6 +28,13 @@ func (self *WifiPlugin) Init( main_screen *UI.MainScreen ) {
self.PasswordPage.Init()
self.ScanPage = NewWifiList()
self.ScanPage.Name = "Scan wifi"
self.ScanPage.Wireless = DBUS.DBusHandler.Wifi
self.ScanPage.Daemon = DBUS.DBusHandler.Daemon
self.ScanPage.Screen = main_screen
self.ScanPage.Init()
}

View File

@ -2,17 +2,25 @@ package main
//wifi_list.py
import (
"fmt"
"strconv"
"strings"
gotime "time"
"github.com/veandco/go-sdl2/ttf"
"github.com/cuu/gogame/surface"
"github.com/cuu/gogame/font"
"github.com/cuu/gogame/color"
"github.com/cuu/gogame/event"
"github.com/cuu/gogame/time"
"github.com/cuu/gogame/rect"
"github.com/cuu/gogame/draw"
"github.com/cuu/LauncherGo/sysgo/UI"
"github.com/cuu/LauncherGo/sysgo/DBUS"
"github.com/cuu/LaucherGo/sysgo/wicd/misc"
"github.com/cuu/LauncherGo/sysgo/wicd/misc"
)
@ -23,6 +31,9 @@ type WifiDisconnectConfirmPage struct {
func NewWifiDisconnectConfirmPage() *WifiDisconnectConfirmPage {
p := &WifiDisconnectConfirmPage{}
p.ListFont = UI.Fonts["veramono20"]
p.FootMsg = [5]string{"Nav","","","Cancel","Yes"}
p.ConfirmText ="Confirm Disconnect?"
return p
}
@ -40,7 +51,7 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) {
self.Screen.Draw()
self.Screen.SwapAndShow()
self.Parent.Daemon.Disconnect()
DBUS.DBusHandler.Daemon.Method("Disconnect")
time.BlockDelay(400)
@ -60,7 +71,7 @@ type WifiInfoPage struct {
AList map[string]map[string]string
NetworkId int
MyList []*UI.ListItemInterface
MyList []UI.ListItemInterface
DisconnectConfirmPage *WifiDisconnectConfirmPage //child page
}
@ -82,7 +93,7 @@ func (self *WifiInfoPage) GenList() {
var iwconfig string
var cur_network_id int
self.MyList = nil
self.MyList = make([]*UI.ListItemInterface,0)
self.MyList = make([]UI.ListItemInterface,0)
cur_network_id = -2
@ -92,7 +103,7 @@ func (self *WifiInfoPage) GenList() {
self.Wireless.Get( self.Wireless.Method("GetCurrentNetworkID",iwconfig), &cur_network_id)
if cur_network_id == self.NetworkId {
var ip string
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip)
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip)
if len(ip) > 0 {
self.AList["ip"]["value"]=ip
@ -136,7 +147,7 @@ func (self *WifiInfoPage) Init() {
if self.Screen.CanvasHWND != nil && self.CanvasHWND == nil {
self.CanvasHWND = self.Screen.CanvasHWND
}
}
self.PosX = self.Index * self.Screen.Width
self.Width = self.Screen.Width
self.Height = self.Screen.Height
@ -168,6 +179,7 @@ func (self *WifiInfoPage) Init() {
self.DisconnectConfirmPage.Parent = self
self.DisconnectConfirmPage.Init()
}
func (self *WifiInfoPage) ScrollUp() {
@ -227,12 +239,12 @@ func (self *WifiInfoPage) TryDisconnect() {
var ip string
self.Wireless.Get( self.Wireless.Method("GetIwconfig"), &iwconfig)
self.Wireless.Get( self.Wireless.Method("GetCurrentNetworkID",iwconfig), &cur_network_id)
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip)
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip)
if cur_network_id == self.NetworkId && len(ip) > 1 {
self.Screen.PushPage(self.DisconnectConfirmPage)
self.Screen.Draw()
self.SwapAndShow()
self.Screen.SwapAndShow()
}else {
return
}
@ -244,7 +256,7 @@ func (self *WifiInfoPage) OnLoadCb() {
var ip string
self.Wireless.Get( self.Wireless.Method("GetIwconfig"), &iwconfig)
self.Wireless.Get( self.Wireless.Method("GetCurrentNetworkID",iwconfig), &cur_network_id)
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip)
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip)
if cur_network_id == self.NetworkId && len(ip) > 1 {
self.FootMsg[1]="Disconnect"
@ -318,10 +330,10 @@ func NewWifiListSelector() *WifiListSelector {
func (self *WifiListSelector) Draw() {
idx := self.Parent.PsIndex
if idx < len(self.Parent.WirelessList) {
x := self.Parent.WirelessList[idx].PosX + 11
y := self.Parent.WirelessList[idx].PosY + 1
h := self.Parent.WirelessList[idx].Height - 3
if idx < len(self.Parent.MyList) {
x := self.Parent.MyList[idx].PosX + 11
y := self.Parent.MyList[idx].PosY + 1
h := self.Parent.MyList[idx].Height - 3
self.PosX = x
self.PosY = y
@ -345,7 +357,7 @@ func NewWifiListMessageBox() *WifiListMessageBox{
func (self *WifiListMessageBox) Draw() {
my_text := font.Render(self.FontObj,self.Text,true,self.Color)
my_text := font.Render(self.FontObj,self.Text,true,self.Color,nil)
w := surface.GetWidth(my_text)
h := surface.GetHeight(my_text)
@ -402,6 +414,8 @@ type WifiList struct{
func NewWifiList() *WifiList {
p:= &WifiList{}
p.PrevWicdState = -1
p.ListFontObj = UI.Fonts["notosanscjk15"]
p.FootMsg = [5]string{"Nav.","Scan","Info","Back","Enter"}
return p
}
@ -436,7 +450,7 @@ func (self *WifiList) GenNetworkList() {
var is_active bool
self.Wireless.Method("GetNumberOfNetworks"),&num_of_networks)
self.Wireless.Get(self.Wireless.Method("GetNumberOfNetworks"),&num_of_networks)
for network_id:=0;network_id< num_of_networks;network_id++ {
is_active = false
@ -497,14 +511,18 @@ func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,fi
if self.Daemon == nil {
return
}
type status struct {
State int
Trash []string
}
var state_ int
var trash []string
var mystatus status
if state == -1 {
self.Daemon.Get(self.Daemon.Method("GetConnectionStatus"),&state_,&trash)
fmt.Println("state ",state_)
fmt.Println("Trash ",trash)
self.Daemon.Get(self.Daemon.Method("GetConnectionStatus"),&mystatus)
fmt.Println("state ",mystatus.State)
fmt.Println("Trash ",mystatus.Trash)
}
if force_check == true || self.PrevWicdState != state {
@ -550,7 +568,7 @@ func (self *WifiList) SetConnectingStatus(fast bool) bool { // default fast == f
return false
}
status_msg := fmt.Sprintf("%s: %s", essid,stat)
status_msg = fmt.Sprintf("%s: %s", essid,stat)
if self.LastStatusMsg != status_msg {
fmt.Printf("%s: %s\n",essid,stat)
@ -606,7 +624,7 @@ func (self *WifiList) UpdateStatus() bool {
iwconfig = ""
}
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",''), &ip)
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip)
if self.CheckForWireless(iwconfig,ip,"") == true { // self.CheckForWireless(iwconfig,self._Wireless.GetWirelessIP(''),None)
return true
@ -829,7 +847,7 @@ func (self *WifiList) KeyDown( ev *event.Event ) {
self.Wireless.Get(self.Wireless.Method("CheckIfWirelessConnecting"),&wireless_connecting)
if wireless_connecting == true {
self.Shutdownconnecting()
self.ShutDownConnecting()
self.ShowBox("ShutDownConnecting...")
self.BlockingUI = true
self.BlockCb = self.AbortedAndReturnToUpLevel
@ -874,7 +892,7 @@ func (self *WifiList) KeyDown( ev *event.Event ) {
self.Screen.SetCurPage(APIOBJ.PasswordPage)
thepass := ""
for i,v := range wicd_wireless_encrypt_pwd { //[]map[string]string
for _,v := range wicd_wireless_encrypt_pwd { //[]map[string]string
if _, ok := v["preshared_key"]; ok {
if len(v["preshared_key"]) > 0 {
thepass = v["preshared_key"]
@ -926,12 +944,12 @@ func (self *WifiList) Init() {
msgbox := NewWifiListMessageBox()
msgbox.CanvasHWND = self.CanvasHWND
msgbox.Init(" ",UI.Fonts["veramono12"])
msgbox.Init(" ",UI.Fonts["veramono12"],nil)
msgbox.Parent = self
self.MsgBox = msgbox
self.EncMethods = misc.LoadEncryptionMethods() //# load predefined templates from /etc/wicd/...
self.EncMethods = misc.LoadEncryptionMethods(false) //# load predefined templates from /etc/wicd/...
/*
{
'fields': [],
@ -947,7 +965,7 @@ func (self *WifiList) Init() {
},
*/
self.UpdateNetList(true,true) // self.UpdateNetList(force_check=True,firstrun=True)
self.UpdateNetList(-1,[]string{}, true,true) // self.UpdateNetList(force_check=True,firstrun=True)
self.Scroller = UI.NewListScroller()
self.Scroller.Parent = self

Binary file not shown.

View File

@ -16,4 +16,7 @@ cd Menu/GameShell/10_Settings/About
go build -o about.so -buildmode=plugin
cd -
cd Menu/GameShell/10_Settings/Wifi
go build -o wifi.so -buildmode=plugin
cd -

View File

@ -48,12 +48,11 @@ func (self *DbusInterface) Get( thecall *dbus.Call, retvalues ...interface{}) er
}
err:= thecall.Store(retvalues...)
return err
/*
if err != nil {
panic(fmt.Sprintf("Failed: %s",err))
panic(fmt.Sprintf("Failed: %s,%s",err,thecall.Method))
}
*/
return err
}
type DBusInterface interface {
@ -170,3 +169,10 @@ func (self *DBus) ListenSignal() {
}
}
var DBusHandler *DBus //global
func init() {
DBusHandler = NewDBus()
DBusHandler.Init()
fmt.Println("dbus inited")
}

View File

@ -1,6 +1,7 @@
package UI
import (
//"fmt"
"github.com/veandco/go-sdl2/sdl"
"github.com/veandco/go-sdl2/ttf"
@ -88,6 +89,7 @@ func (self *Label) SetText(text string) {
func (self *Label) Draw() {
font.SetBold(self.FontObj,false) // avoing same font tangling set_bold to others
my_text := font.Render(self.FontObj,self.Text, true, self.Color, nil)
rect_ := rect.Rect(self.PosX,self.PosY,self.Width,self.Height)

View File

@ -197,8 +197,9 @@ func (self *MainScreen) Init() {
self.SkinManager = NewSkinManager()
self.SkinManager.Init()
self.DBusManager = DBUS.NewDBus()
self.DBusManager.Init()
//self.DBusManager = DBUS.NewDBus()
self.DBusManager = DBUS.DBusHandler
//self.DBusManager.Init()
}
func (self *MainScreen) FartherPages() { // right after ReadTheDirIntoPages