mirror of
https://github.com/clockworkpi/LauncherGoDev.git
synced 2025-12-14 00:48:53 +01:00
try to remove wicd related commponent
This commit is contained in:
parent
ca89651302
commit
b4680f1a3e
@ -21,7 +21,6 @@ import (
|
||||
*/
|
||||
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/UI"
|
||||
//"github.com/clockworkpi/LauncherGoDev/sysgo/DBUS"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
|
||||
@ -3,7 +3,7 @@ package Wifi
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
"strings"
|
||||
//"strings"
|
||||
|
||||
"github.com/veandco/go-sdl2/sdl"
|
||||
"github.com/veandco/go-sdl2/ttf"
|
||||
@ -13,7 +13,6 @@ import (
|
||||
"github.com/cuu/gogame/surface"
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/UI"
|
||||
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/DBUS"
|
||||
|
||||
)
|
||||
var NetItemDefaultHeight = 30
|
||||
@ -72,44 +71,24 @@ type NetItem struct {
|
||||
Bssid string //eg: 50:3A:A0:51:18:3C
|
||||
Essid string //eg: MERCURY_EB88
|
||||
|
||||
dhcphostname string //"GameShell"
|
||||
ip string
|
||||
dns_domain string
|
||||
gateway string
|
||||
use_global_dns int // eg 0==False,1 == True
|
||||
netmask string
|
||||
usedhcphostname int
|
||||
bitrate string //"auto"
|
||||
dns3 string
|
||||
dns2 string
|
||||
dns1 string
|
||||
use_settings_globally int // 0
|
||||
use_static_dns int //eg: 1== True
|
||||
search_domain string
|
||||
|
||||
Encrypt string // WPA2
|
||||
Channel string //'10'
|
||||
Stren string // 19%
|
||||
NetId int
|
||||
Signal string // -67
|
||||
Mode string // Master or AdHoc
|
||||
Parent *WifiList
|
||||
IsActive bool
|
||||
|
||||
Password string
|
||||
Labels map[string]UI.LabelInterface
|
||||
Icons map[string]UI.IconItemInterface
|
||||
Fonts map[string]*ttf.Font
|
||||
FontObj *ttf.Font
|
||||
|
||||
Wireless *DBUS.DbusInterface
|
||||
Daemon *DBUS.DbusInterface
|
||||
|
||||
}
|
||||
|
||||
func NewNetItem() *NetItem {
|
||||
p := &NetItem{}
|
||||
p.NetId = 0
|
||||
p.bitrate = "auto"
|
||||
p.dhcphostname = "GameShell"
|
||||
|
||||
p.Height = NetItemDefaultHeight
|
||||
|
||||
@ -124,72 +103,27 @@ func (self *NetItem) SetActive( act bool) {
|
||||
self.IsActive = act
|
||||
}
|
||||
|
||||
func (self *NetItem) UpdateStrenLabel( strenstr string) { // ## strenstr should be 'number',eg:'90'
|
||||
func (self *NetItem) UpdateStrenLabel( sig_str string) { // ## sig_str should be 'number',eg:'-70'
|
||||
|
||||
self.Stren = strenstr
|
||||
self.Signal = sig_str
|
||||
|
||||
if _, ok := self.Labels["stren"]; ok {
|
||||
self.Labels["stren"].SetText(self.Stren)
|
||||
self.Labels["stren"].SetText( fmt.Sprintf("%d",self.CalcWifiQuality()) )
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (self *NetItem) Init(i int,is_active bool) {
|
||||
func (self *NetItem) Init(is_active bool) {
|
||||
|
||||
var sig_display_type int
|
||||
strenstr := "quality"
|
||||
gap := 4
|
||||
//strenstr := "quality"
|
||||
//gap := 7
|
||||
|
||||
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"
|
||||
gap = 4 // Allow for 100%
|
||||
}else {
|
||||
strenstr = "strength"
|
||||
gap = 7 // -XX dbm = 7
|
||||
}
|
||||
|
||||
self.NetId = i
|
||||
|
||||
tmp := 0
|
||||
self.Wireless.Get(self.Wireless.Method("GetWirelessProperty",self.NetId, strenstr),&tmp)
|
||||
tmp2 := ""
|
||||
self.Daemon.Get( self.Daemon.Method("FormatSignalForPrinting",tmp), &tmp2)
|
||||
|
||||
self.Stren = tmp2
|
||||
|
||||
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
|
||||
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"encryption"),&check_enc)
|
||||
|
||||
if check_enc == true {
|
||||
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"encryption_method"),&self.Encrypt)
|
||||
}else {
|
||||
self.Encrypt = "Unsecured"
|
||||
}
|
||||
|
||||
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetId,"mode"),&self.Mode)
|
||||
|
||||
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.PosX = 36
|
||||
@ -210,7 +144,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,nil)
|
||||
stren_label.Init(self.Signal, self.FontObj,nil)
|
||||
stren_label.PosX = self.Width - 23 - stren_label.Width-2
|
||||
|
||||
self.Labels["stren"] = stren_label
|
||||
@ -234,15 +168,42 @@ func (self *NetItem) Init(i int,is_active bool) {
|
||||
nimt.Parent = self // WidgetInterface
|
||||
|
||||
self.Icons["wifistatus"] = nimt
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
func (self *NetItem) Connect() {
|
||||
|
||||
self.Wireless.Method("ConnectWireless",self.NetId)
|
||||
|
||||
}
|
||||
|
||||
func (self *NetItem) CalcWifiQuality() int {
|
||||
|
||||
qua := 0
|
||||
stren,err := strconv.ParseInt(self.Signal, 10, 0)
|
||||
if err == nil {
|
||||
qua = 2 * (int(stren) + 100)
|
||||
}
|
||||
|
||||
return qua
|
||||
}
|
||||
|
||||
func (self *NetItem) CalcWifiStrength() int {
|
||||
|
||||
segs := [][]int{ []int{-2,-1}, []int{0,25}, []int{25,50}, []int{50,75},[]int{75,100}}
|
||||
stren_number := self.CalcWifiQuality()
|
||||
ge := 0
|
||||
if stren_number == 0 {
|
||||
return ge
|
||||
}
|
||||
|
||||
for i,v := range segs {
|
||||
if stren_number >= v[0] && stren_number <= v[1] {
|
||||
ge = i
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return ge
|
||||
|
||||
}
|
||||
|
||||
@ -259,16 +220,15 @@ func (self *NetItem) Draw() {
|
||||
self.Icons["done"].Draw()
|
||||
}
|
||||
|
||||
/*
|
||||
if self.Encrypt != "Unsecured" {
|
||||
w_,_ := self.Labels["stren"].Size()
|
||||
self.Icons["lock"].NewCoord(self.Width -23 - w_ -2 - 18, self.PosY)
|
||||
self.Icons["lock"].Draw()
|
||||
}
|
||||
|
||||
stren_int,err := strconv.ParseInt(strings.Replace(self.Stren,"%","",-1),10,64)
|
||||
if err == nil {
|
||||
the_main_screen := self.Parent.GetScreen()
|
||||
ge := the_main_screen.TitleBar.GetWifiStrength(int(stren_int))
|
||||
*/
|
||||
//the_main_screen := self.Parent.GetScreen()
|
||||
ge := self.CalcWifiStrength()
|
||||
if ge > 0 {
|
||||
self.Icons["wifistatus"].SetIconIndex(ge)
|
||||
self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY)
|
||||
@ -278,7 +238,6 @@ func (self *NetItem) Draw() {
|
||||
self.Icons["wifistatus"].NewCoord(self.Width-23,self.PosY)
|
||||
self.Icons["wifistatus"].Draw()
|
||||
}
|
||||
}
|
||||
|
||||
draw.Line(self.Parent.GetCanvasHWND(),
|
||||
&color.Color{169,169,169,255},
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
package Wifi
|
||||
|
||||
import (
|
||||
gotime "time"
|
||||
//gotime "time"
|
||||
/*
|
||||
"github.com/veandco/go-sdl2/ttf"
|
||||
|
||||
@ -31,8 +31,6 @@ func (self *WifiPlugin) Init( main_screen *UI.MainScreen ) {
|
||||
|
||||
self.ScanPage = NewWifiList()
|
||||
self.ScanPage.Name = "Scan wifi"
|
||||
self.ScanPage.Wireless = main_screen.DBusManager.Wifi
|
||||
self.ScanPage.Daemon = main_screen.DBusManager.Daemon
|
||||
|
||||
self.ScanPage.Screen = main_screen
|
||||
|
||||
@ -40,24 +38,6 @@ func (self *WifiPlugin) Init( main_screen *UI.MainScreen ) {
|
||||
|
||||
self.ScanPage.Init()
|
||||
|
||||
go func() {
|
||||
gotime.Sleep(2000 * gotime.Millisecond)
|
||||
|
||||
if self.ScanPage.Daemon != nil {
|
||||
|
||||
self.ScanPage.Daemon.EnableSignal("StatusChanged")
|
||||
self.ScanPage.Daemon.EnableSignal("ConnectResultsSent")
|
||||
self.ScanPage.Wireless.EnableSignal("SendStartScanSignal")
|
||||
self.ScanPage.Wireless.EnableSignal("SendEndScanSignal")
|
||||
|
||||
self.ScanPage.Daemon.SigFuncs["StatusChanged"] = self.ScanPage.DbusDaemonStatusChangedSig
|
||||
self.ScanPage.Daemon.SigFuncs["ConnectResultSent"] = self.ScanPage.DbusConnectResultsSent
|
||||
|
||||
self.ScanPage.Wireless.SigFuncs["SendStartScanSignal"] = self.ScanPage.WifiDbusScanStarted
|
||||
self.ScanPage.Wireless.SigFuncs["SendEndScanSignal"] = self.ScanPage.WifiDbusScanFinishedSig
|
||||
}
|
||||
}()
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiPlugin) Run( main_screen *UI.MainScreen ) {
|
||||
|
||||
@ -3,11 +3,13 @@ package Wifi
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strconv"
|
||||
//"strconv"
|
||||
"strings"
|
||||
"os"
|
||||
"os/exec"
|
||||
gotime "time"
|
||||
|
||||
"github.com/godbus/dbus"
|
||||
//"github.com/godbus/dbus"
|
||||
|
||||
"github.com/veandco/go-sdl2/ttf"
|
||||
|
||||
@ -18,19 +20,34 @@ import (
|
||||
"github.com/cuu/gogame/time"
|
||||
"github.com/cuu/gogame/rect"
|
||||
"github.com/cuu/gogame/draw"
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo"
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/UI"
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/DBUS"
|
||||
|
||||
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/wicd/misc"
|
||||
|
||||
wifi "github.com/mark2b/wpa-connect"
|
||||
)
|
||||
|
||||
const EMPTY_NETWORK = "00:00:00:00:00:00"
|
||||
|
||||
type WifiDisconnectConfirmPage struct {
|
||||
UI.ConfirmPage
|
||||
Parent *WifiInfoPage
|
||||
}
|
||||
|
||||
func cmdEnv() []string {
|
||||
return []string{"LANG=C", "LC_ALL=C"}
|
||||
}
|
||||
|
||||
func execCmd(cmdArgs []string) ([]byte, error) {
|
||||
cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...)
|
||||
cmd.Env = append(os.Environ(), cmdEnv()...)
|
||||
out, err := cmd.Output()
|
||||
if err != nil {
|
||||
err = fmt.Errorf(`failed to execute "%v" (%+v)`, strings.Join(cmdArgs, " "), err)
|
||||
}
|
||||
return out, err
|
||||
}
|
||||
|
||||
|
||||
func NewWifiDisconnectConfirmPage() *WifiDisconnectConfirmPage {
|
||||
p := &WifiDisconnectConfirmPage{}
|
||||
p.ListFont = UI.Fonts["veramono20"]
|
||||
@ -42,7 +59,6 @@ func NewWifiDisconnectConfirmPage() *WifiDisconnectConfirmPage {
|
||||
|
||||
func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) {
|
||||
|
||||
|
||||
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
|
||||
self.ReturnToUpLevelPage()
|
||||
self.Screen.Draw()
|
||||
@ -55,8 +71,7 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) {
|
||||
self.Screen.Draw()
|
||||
self.Screen.SwapAndShow()
|
||||
|
||||
//DBUS.DBusHandler.Daemon.Method("Disconnect")
|
||||
self.Parent.Daemon.Method("Disconnect")
|
||||
self.Parent.Parent.Disconnect()
|
||||
|
||||
time.BlockDelay(400)
|
||||
|
||||
@ -70,15 +85,15 @@ func (self *WifiDisconnectConfirmPage) KeyDown(ev *event.Event ) {
|
||||
type WifiInfoPage struct {
|
||||
UI.Page
|
||||
ListFontObj *ttf.Font
|
||||
Bss *wifi.BSS
|
||||
|
||||
Wireless *DBUS.DbusInterface
|
||||
Daemon *DBUS.DbusInterface
|
||||
AList map[string]map[string]string
|
||||
NetworkId int
|
||||
NetworkId string
|
||||
|
||||
MyList []UI.ListItemInterface
|
||||
|
||||
DisconnectConfirmPage *WifiDisconnectConfirmPage //child page
|
||||
Parent *WifiList
|
||||
}
|
||||
|
||||
func NewWifiInfoPage() *WifiInfoPage {
|
||||
@ -89,35 +104,34 @@ func NewWifiInfoPage() *WifiInfoPage {
|
||||
|
||||
p.AList = make(map[string]map[string]string)
|
||||
|
||||
p.NetworkId = -1
|
||||
p.NetworkId = EMPTY_NETWORK
|
||||
return p
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiInfoPage) GetWirelessIP() string {
|
||||
|
||||
return "0.0.0.0"
|
||||
}
|
||||
|
||||
func (self *WifiInfoPage) GenList() {
|
||||
var iwconfig string
|
||||
var cur_network_id int
|
||||
var cur_network_id string
|
||||
self.MyList = nil
|
||||
self.MyList = make([]UI.ListItemInterface,0)
|
||||
|
||||
cur_network_id = -2
|
||||
cur_network_id = EMPTY_NETWORK
|
||||
|
||||
if self.NetworkId != -1 {
|
||||
if self.NetworkId != EMPTY_NETWORK {
|
||||
self.AList["ip"]["value"] = "Not Connected"
|
||||
self.Wireless.Get( self.Wireless.Method("GetIwconfig"), &iwconfig)
|
||||
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)
|
||||
|
||||
ip = self.GetWirelessIP()
|
||||
if len(ip) > 0 {
|
||||
self.AList["ip"]["value"]=ip
|
||||
}
|
||||
}
|
||||
var bssid string
|
||||
self.Wireless.Get( self.Wireless.Method("GetWirelessProperty",self.NetworkId,"bssid"),&bssid)
|
||||
|
||||
self.AList["bssid"]["value"] = bssid
|
||||
self.AList["bssid"]["value"] = self.Parent.CurBssid
|
||||
}
|
||||
|
||||
start_x := 0
|
||||
@ -239,36 +253,27 @@ func (self *WifiInfoPage) Click() {
|
||||
}
|
||||
|
||||
func (self *WifiInfoPage) TryDisconnect() {
|
||||
var iwconfig string
|
||||
var cur_network_id int
|
||||
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)
|
||||
|
||||
if cur_network_id == self.NetworkId && len(ip) > 1 {
|
||||
ip = self.Parent.GetWirelessIP()
|
||||
|
||||
if len(ip) > 6 {
|
||||
self.Screen.PushPage(self.DisconnectConfirmPage)
|
||||
self.Screen.Draw()
|
||||
self.Screen.SwapAndShow()
|
||||
}else {
|
||||
fmt.Println("WifiInfoPage TryDisconnect cur_network_id != self.NetworkId ")
|
||||
fmt.Println("WifiInfoPage TryDisconnect can not get IP,maybe you are offline")
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
func (self *WifiInfoPage) OnLoadCb() {
|
||||
var iwconfig string
|
||||
var cur_network_id int
|
||||
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)
|
||||
|
||||
if cur_network_id == self.NetworkId && len(ip) > 1 {
|
||||
/*
|
||||
self.FootMsg[1]="Disconnect"
|
||||
}else {
|
||||
self.FootMsg[1] = ""
|
||||
}
|
||||
*/
|
||||
|
||||
self.GenList()
|
||||
}
|
||||
|
||||
@ -391,14 +396,10 @@ type BlockCbFunc func()
|
||||
|
||||
type WifiList struct{
|
||||
UI.Page
|
||||
Wireless *DBUS.DbusInterface
|
||||
Daemon *DBUS.DbusInterface
|
||||
WifiPassword string
|
||||
Connecting bool
|
||||
Scanning bool
|
||||
|
||||
PrevWicdState int
|
||||
|
||||
ShowingMessageBox bool
|
||||
MsgBox *WifiListMessageBox
|
||||
ConnectTry int
|
||||
@ -407,7 +408,6 @@ type WifiList struct{
|
||||
BlockCb BlockCbFunc
|
||||
|
||||
LastStatusMsg string
|
||||
EncMethods []*misc.CurType
|
||||
Scroller *UI.ListScroller
|
||||
ListFontObj *ttf.Font
|
||||
|
||||
@ -415,11 +415,12 @@ type WifiList struct{
|
||||
|
||||
MyList []*NetItem
|
||||
CurBssid string
|
||||
CurIP string
|
||||
CurSig string
|
||||
}
|
||||
|
||||
func NewWifiList() *WifiList {
|
||||
p:= &WifiList{}
|
||||
p.PrevWicdState = -1
|
||||
p.ListFontObj = UI.Fonts["notosanscjk15"]
|
||||
p.FootMsg = [5]string{"Nav.","Scan","Info","Back","Enter"}
|
||||
|
||||
@ -448,64 +449,59 @@ func (self *WifiList) GenNetworkList() {
|
||||
start_x := 0
|
||||
start_y := 0
|
||||
|
||||
var num_of_networks int
|
||||
var cur_signal_strength int
|
||||
var cur_network_id int // -1 or 0-n
|
||||
var iwconfig string
|
||||
var wireless_ip string
|
||||
|
||||
var is_active bool
|
||||
var li_idx int
|
||||
li_idx = 0
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("GetNumberOfNetworks"),&num_of_networks)
|
||||
self.WifiScanStarted()
|
||||
if bssList, err := wifi.ScanManager.Scan(); err == nil {
|
||||
|
||||
for network_id:=0;network_id< num_of_networks;network_id++ {
|
||||
for _, bss := range bssList {
|
||||
is_active = false
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("GetCurrentSignalStrength",""), &cur_signal_strength)
|
||||
self.Wireless.Get(self.Wireless.Method("GetIwconfig"),&iwconfig)
|
||||
self.Wireless.Get(self.Wireless.Method("GetCurrentNetworkID",iwconfig),&cur_network_id)
|
||||
|
||||
if cur_signal_strength != 0 && cur_network_id == network_id {
|
||||
self.Wireless.Get(self.Wireless.Method("GetWirelessIP",""),&wireless_ip)
|
||||
if wireless_ip != "" {
|
||||
is_active = true
|
||||
}
|
||||
}
|
||||
|
||||
print(bss.SSID, bss.Signal, bss.KeyMgmt)
|
||||
ni := NewNetItem()
|
||||
ni.Parent = self
|
||||
ni.PosX = start_x
|
||||
ni.PosY = start_y + network_id* NetItemDefaultHeight
|
||||
ni.PosY = start_y + li_idx* NetItemDefaultHeight
|
||||
ni.Width = UI.Width
|
||||
ni.FontObj = self.ListFontObj
|
||||
ni.Init(network_id, is_active)
|
||||
ni.Essid = bss.SSID
|
||||
ni.Bssid = bss.BSSID
|
||||
ni.Init(is_active)
|
||||
self.MyList = append(self.MyList,ni)
|
||||
|
||||
li_idx++
|
||||
}
|
||||
}
|
||||
|
||||
self.WifiScanFinished()
|
||||
|
||||
self.PsIndex = 0
|
||||
}
|
||||
|
||||
func (self *WifiList) Disconnect() {
|
||||
self.Connecting = false
|
||||
self.Daemon.Method("Disconnect")
|
||||
wpa_cli_disconnect := []string{"wpa_cli","disconnect",self.CurBssid}
|
||||
//out, err := execCmd(getVolumeCmd())
|
||||
execCmd( wpa_cli_disconnect )
|
||||
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) ShutDownConnecting() {
|
||||
fmt.Println("Shutdownconnecting...", self.ConnectTry)
|
||||
self.Daemon.Method("CancelConnect")
|
||||
self.Daemon.Method("SetForcedDisconnect",true)
|
||||
|
||||
self.Connecting= false
|
||||
self.Disconnect()
|
||||
}
|
||||
|
||||
func (self *WifiList) Rescan(sync bool) { // sync default should be false
|
||||
fmt.Println("start Rescan")
|
||||
if self.Wireless!= nil {
|
||||
self.Wireless.Method("Scan",sync)
|
||||
}
|
||||
self.GenNetworkList()
|
||||
}
|
||||
|
||||
// dbus signal functions
|
||||
func (self *WifiList) WifiDbusScanFinishedSig(body []interface{}) {
|
||||
func (self *WifiList) WifiScanFinished() {
|
||||
if self.Screen.CurrentPage != self {
|
||||
return
|
||||
}
|
||||
@ -522,7 +518,7 @@ func (self *WifiList) WifiDbusScanFinishedSig(body []interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) WifiDbusScanStarted(body []interface{} ) {
|
||||
func (self *WifiList) WifiScanStarted( ) {
|
||||
if self.Screen.CurrentPage != self {
|
||||
return
|
||||
}
|
||||
@ -534,347 +530,53 @@ func (self *WifiList) WifiDbusScanStarted(body []interface{} ) {
|
||||
}
|
||||
|
||||
|
||||
func (self *WifiList) DbusDaemonStatusChangedSig(body []interface{}) {
|
||||
var state int
|
||||
var info []dbus.Variant
|
||||
|
||||
err := dbus.Store(body,&state,&info)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}else {
|
||||
fmt.Println(state," ", info)
|
||||
}
|
||||
|
||||
if self.Screen.CurPage() != self {
|
||||
return
|
||||
}
|
||||
|
||||
var info_str []string
|
||||
for _,v := range info {
|
||||
info_str = append(info_str, v.String())
|
||||
}
|
||||
|
||||
self.UpdateNetList(state,info_str,false,false)
|
||||
if len(info_str) > 0 {
|
||||
self.Screen.Draw()
|
||||
self.Screen.SwapAndShow()
|
||||
}
|
||||
func (self *WifiList) SaveNetworkList() {
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) DbusConnectResultsSent(body []interface{}) {
|
||||
var ret_val string
|
||||
err := dbus.Store(body,&ret_val)
|
||||
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
}else {
|
||||
fmt.Println(ret_val)
|
||||
}
|
||||
|
||||
self.Connecting = false
|
||||
self.BlockingUI = false
|
||||
if self.BlockCb != nil {
|
||||
self.BlockCb()
|
||||
self.BlockCb = nil
|
||||
}
|
||||
|
||||
self.Screen.FootBar.ResetNavText()
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------------
|
||||
|
||||
func (self *WifiList) UpdateNetList(state int,info []string ,force_check bool,firstrun bool) { //force_check default ==false, firstrun default == false
|
||||
if self.Daemon == nil {
|
||||
return
|
||||
}
|
||||
|
||||
type status struct {
|
||||
State int
|
||||
Trash []string
|
||||
}
|
||||
|
||||
var mystatus status
|
||||
|
||||
if state == -1 {
|
||||
|
||||
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 {
|
||||
if force_check == true {
|
||||
self.GenNetworkList()
|
||||
self.SaveNetworkList()
|
||||
}
|
||||
|
||||
if len(info) > 0 {
|
||||
if len(info) > 3 {
|
||||
_id,_ := strconv.Atoi(info[3])
|
||||
if _id < len(self.MyList) {
|
||||
var strength_str string
|
||||
strength,err := strconv.Atoi(strings.Replace(info[2],"\"","",-1))
|
||||
if err == nil {
|
||||
self.Daemon.Get(self.Daemon.Method("FormatSignalForPrinting",strength),&strength_str)
|
||||
self.MyList[_id].UpdateStrenLabel(strength_str)
|
||||
}else {
|
||||
fmt.Println(err)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
self.PrevWicdState = state
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) SetConnectingStatus(fast bool) bool { // default fast == false
|
||||
|
||||
var wireless_connecting bool
|
||||
var iwconfig string
|
||||
|
||||
var essid string
|
||||
var stat string
|
||||
var status_msg string
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("CheckIfWirelessConnecting"),&wireless_connecting)
|
||||
|
||||
|
||||
if wireless_connecting == true {
|
||||
if fast == false {
|
||||
self.Wireless.Get(self.Wireless.Method("GetIwconfig"),&iwconfig)
|
||||
}else {
|
||||
iwconfig=""
|
||||
}
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("GetCurrentNetwork",iwconfig),&essid)
|
||||
|
||||
err := self.Wireless.Get(self.Wireless.Method("CheckWirelessConnectingMessage"),&stat) // wicd will return False or stat message,False is a boolean,stat is string
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
|
||||
status_msg = fmt.Sprintf("%s: %s", essid,stat)
|
||||
|
||||
if self.LastStatusMsg != status_msg {
|
||||
fmt.Printf("%s: %s\n",essid,stat)
|
||||
self.LastStatusMsg = status_msg
|
||||
|
||||
self.ShowBox(self.LastStatusMsg)
|
||||
|
||||
self.Screen.FootBar.UpdateNavText(self.LastStatusMsg)
|
||||
UI.SwapAndShow()
|
||||
|
||||
}
|
||||
|
||||
return true
|
||||
|
||||
}else {
|
||||
self.Connecting=false
|
||||
return self.Connecting
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func (self *WifiList) UpdateStatus() bool {
|
||||
fmt.Println("UpdateStatus")
|
||||
var wireless_connecting bool
|
||||
var fast bool
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("CheckIfWirelessConnecting"),&wireless_connecting)
|
||||
|
||||
self.Daemon.Get(self.Daemon.Method("NeedsExternalCalls"),&fast)
|
||||
|
||||
fast = !fast
|
||||
|
||||
self.Connecting = wireless_connecting
|
||||
|
||||
if self.Connecting == true {
|
||||
go func() {
|
||||
for {
|
||||
gotime.Sleep(250 * gotime.Millisecond)
|
||||
ret := self.SetConnectingStatus(fast)
|
||||
if ret == false {
|
||||
break
|
||||
}
|
||||
}
|
||||
}()
|
||||
}else {
|
||||
|
||||
var iwconfig string
|
||||
var ip string
|
||||
if fast == false {
|
||||
self.Wireless.Get(self.Wireless.Method("GetIwconfig"),&iwconfig)
|
||||
}else {
|
||||
iwconfig = ""
|
||||
}
|
||||
|
||||
self.Wireless.Get( self.Wireless.Method("GetWirelessIP",""), &ip)
|
||||
|
||||
if self.CheckForWireless(iwconfig,ip,"") == true { // self.CheckForWireless(iwconfig,self._Wireless.GetWirelessIP(''),None)
|
||||
return true
|
||||
}else {
|
||||
fmt.Println("not Connected")
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return true
|
||||
|
||||
}
|
||||
|
||||
//set_status == "" not used
|
||||
func (self *WifiList) CheckForWireless(iwconfig string, wireless_ip string , set_status string ) bool {
|
||||
if len(wireless_ip) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
var network string
|
||||
self.Wireless.Get(self.Wireless.Method("GetCurrentNetwork",iwconfig),&network)
|
||||
|
||||
if len(network) == 0 {
|
||||
return false
|
||||
}
|
||||
|
||||
var sig_display_type int
|
||||
var strength int
|
||||
|
||||
strength = -1
|
||||
|
||||
self.Daemon.Get(self.Daemon.Method("GetSignalDisplayType"),&sig_display_type)
|
||||
|
||||
if sig_display_type == 0 {
|
||||
self.Wireless.Get(self.Wireless.Method("GetCurrentSignalStrength",iwconfig),&strength)
|
||||
}else {
|
||||
self.Wireless.Get(self.Wireless.Method("GetCurrentDBMStrength",iwconfig),&strength)
|
||||
}
|
||||
|
||||
if strength == -1 {
|
||||
return false
|
||||
}
|
||||
|
||||
var strength_str string
|
||||
|
||||
self.Daemon.Get(self.Daemon.Method("FormatSignalForPrinting",strength),&strength_str)
|
||||
|
||||
fmt.Printf("Connected to %s at %s (IP: %s)\n",network,strength_str,wireless_ip)
|
||||
|
||||
return true
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) ConfigWireless(password string) {
|
||||
netid := self.PsIndex
|
||||
fmt.Println(netid, " ", password)
|
||||
|
||||
for i,v := range self.MyList {
|
||||
if v.Bssid == self.CurBssid {
|
||||
netid = i
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"dhcphostname","GameShell")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"ip","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"dns_domain","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"gateway","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"use_global_dns",0)
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"netmask","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"usedhcphostname",0) ## set 1 to use hostname above
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"bitrate","auto")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"allow_lower_bitrates",0)
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"dns3","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"dns2","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"dns1","None")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"use_settings_globally",0)
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"use_static_dns",0)
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"search_domain","None")
|
||||
*/
|
||||
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"enctype","wpa-psk")
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"apsk",password)
|
||||
self.Wireless.Method("SetWirelessProperty",netid,"automatic",1)
|
||||
ssid := self.MyList[self.PsIndex].Essid
|
||||
|
||||
self.ShowBox("Connecting...")
|
||||
|
||||
self.MyList[netid].Connect()
|
||||
if conn, err := wifi.ConnectManager.Connect(ssid, password, gotime.Second * 20); err == nil {
|
||||
fmt.Println("Connected", conn.NetInterface, conn.SSID, conn.IP4.String(), conn.IP6.String())
|
||||
self.CurBssid = self.MyList[self.PsIndex].Bssid
|
||||
self.MyList[self.PsIndex].Password = password
|
||||
self.CurIP = conn.IP4.String();
|
||||
|
||||
fmt.Println("after connect")
|
||||
self.UpdateStatus()
|
||||
} else {
|
||||
fmt.Println(err)
|
||||
}
|
||||
|
||||
|
||||
//self.UpdateStatus()
|
||||
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) GetWirelessIP() string {
|
||||
|
||||
cli := fmt.Sprintf( "ip -4 addr show %s | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}'",sysgo.WifiDev)
|
||||
out := UI.System(cli)
|
||||
|
||||
return out
|
||||
|
||||
}
|
||||
|
||||
func (self *WifiList) GetWirelessEncrypt(network_id int) []map[string]string {
|
||||
var results []map[string]string
|
||||
|
||||
activeID := -1
|
||||
var enc_type string
|
||||
for i,v := range self.EncMethods {
|
||||
enc_type = ""
|
||||
fmt.Println(i,v)
|
||||
self.Wireless.Get(self.Wireless.Method("GetWirelessProperty",network_id,"enctype"),&enc_type)
|
||||
enc_type = strings.ToLower(enc_type)
|
||||
if enc_type != "" && v.Type == enc_type {
|
||||
activeID = i
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if activeID == -1 {
|
||||
fmt.Println("GetWirelessEncrypt activeID == -1")
|
||||
return results
|
||||
}
|
||||
|
||||
required_fields := self.EncMethods[activeID].Required
|
||||
for _,field := range required_fields {
|
||||
if len(field) != 2 {
|
||||
continue
|
||||
}
|
||||
text := strings.Replace(strings.ToLower(field[1])," ","_",-1)
|
||||
|
||||
var value string
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("GetWirelessProperty",network_id,field[0]),&value)
|
||||
|
||||
kv_map := make(map[string]string)
|
||||
kv_map[text] = value
|
||||
|
||||
results = append(results,kv_map)
|
||||
|
||||
/*
|
||||
"""
|
||||
[{'preshared_key': 'blah blah blah',},]
|
||||
|
||||
or nothing
|
||||
[{'identity': "",},{'password': "",},]
|
||||
|
||||
"""
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
optional_fields := self.EncMethods[activeID].Optional
|
||||
for _,field := range optional_fields {
|
||||
if len(field) != 2 {
|
||||
continue
|
||||
}
|
||||
text := strings.Replace(strings.ToLower(field[1])," ","_",-1)
|
||||
|
||||
var value string
|
||||
|
||||
self.Wireless.Get(self.Wireless.Method("GetWirelessProperty",network_id,field[0]),&value)
|
||||
|
||||
kv_map := make(map[string]string)
|
||||
kv_map[text] = value
|
||||
|
||||
results = append(results,kv_map)
|
||||
}
|
||||
|
||||
return results
|
||||
return nil
|
||||
|
||||
}
|
||||
|
||||
@ -936,25 +638,11 @@ func (self *WifiList) OnReturnBackCb() {
|
||||
|
||||
func (self *WifiList) KeyDown( ev *event.Event ) {
|
||||
if ev.Data["Key"] == UI.CurKeys["A"] || ev.Data["Key"] == UI.CurKeys["Menu"] {
|
||||
if self.Wireless != nil {
|
||||
var wireless_connecting bool
|
||||
self.Wireless.Get(self.Wireless.Method("CheckIfWirelessConnecting"),&wireless_connecting)
|
||||
|
||||
if wireless_connecting == true {
|
||||
self.ShutDownConnecting()
|
||||
self.ShowBox("ShutDownConnecting...")
|
||||
self.BlockingUI = true
|
||||
self.BlockCb = self.AbortedAndReturnToUpLevel
|
||||
|
||||
}else {
|
||||
self.AbortedAndReturnToUpLevel()
|
||||
}
|
||||
}else {
|
||||
self.HideBox()
|
||||
self.ReturnToUpLevelPage()
|
||||
self.Screen.Draw()
|
||||
self.Screen.SwapAndShow()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -976,25 +664,15 @@ func (self *WifiList) KeyDown( ev *event.Event ) {
|
||||
}
|
||||
self.CurBssid = self.MyList[self.PsIndex].Bssid
|
||||
|
||||
wicd_wireless_encrypt_pwd := self.GetWirelessEncrypt(self.PsIndex)
|
||||
fmt.Println("wicd_wireless_encrypt_pwd ", wicd_wireless_encrypt_pwd)
|
||||
|
||||
if self.MyList[self.PsIndex].IsActive == true {
|
||||
var ip string
|
||||
self.Wireless.Get(self.Wireless.Method("GetWirelessIP",""),&ip)
|
||||
ip = self.GetWirelessIP()
|
||||
self.ShowBox(ip)
|
||||
}else {
|
||||
self.Screen.PushCurPage()
|
||||
self.Screen.SetCurPage(APIOBJ.PasswordPage)
|
||||
|
||||
thepass := ""
|
||||
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"]
|
||||
}
|
||||
}
|
||||
}
|
||||
thepass := self.MyList[self.PsIndex].Password
|
||||
|
||||
fmt.Println("APIOBJ.PasswordPage.SetPassword ", thepass,len(thepass))
|
||||
APIOBJ.PasswordPage.SetPassword(thepass)
|
||||
@ -1014,9 +692,6 @@ func (self *WifiList) KeyDown( ev *event.Event ) {
|
||||
return
|
||||
}
|
||||
|
||||
self.InfoPage.NetworkId = self.PsIndex
|
||||
self.InfoPage.Wireless = self.Wireless
|
||||
self.InfoPage.Daemon = self.Daemon
|
||||
|
||||
self.Screen.PushPage(self.InfoPage)
|
||||
self.Screen.Draw()
|
||||
@ -1048,7 +723,6 @@ func (self *WifiList) Init() {
|
||||
|
||||
self.MsgBox = msgbox
|
||||
|
||||
self.EncMethods = misc.LoadEncryptionMethods(false) //# load predefined templates from /etc/wicd/...
|
||||
/*
|
||||
{
|
||||
'fields': [],
|
||||
|
||||
@ -22,8 +22,6 @@ import (
|
||||
|
||||
"github.com/vjeantet/jodaTime"
|
||||
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo/DBUS"
|
||||
|
||||
"github.com/clockworkpi/LauncherGoDev/sysgo"
|
||||
|
||||
|
||||
@ -106,7 +104,6 @@ type TitleBar struct {
|
||||
InAirPlaneMode bool
|
||||
|
||||
SkinManager *SkinManager //set by MainScreen
|
||||
DBusManager DBUS.DBusInterface
|
||||
|
||||
icon_base_path string /// SkinMap("gameshell/titlebar_icons/")
|
||||
|
||||
@ -172,13 +169,40 @@ func (self *TitleBar) RoundRobinCheck() {
|
||||
}
|
||||
}
|
||||
|
||||
func (self *TitleBar) IsWifiConnectedNow() bool {
|
||||
cli := fmt.Sprintf( "ip -4 addr show %s | grep -oP '(?<=inet\\s)\\d+(\\.\\d+){3}'",sysgo.WifiDev)
|
||||
out := System(cli)
|
||||
if(len(out) > 7) {
|
||||
if strings.Contains(out,"not") {
|
||||
return false
|
||||
}else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
|
||||
}
|
||||
|
||||
func (self *TitleBar) UpdateWifiStrength() {
|
||||
self.Draw(self.Title)
|
||||
}
|
||||
|
||||
func (t *TitleBar) GetWifiStrength(stren int) int {
|
||||
func (t *TitleBar) GetWifiStrength() int {
|
||||
qua := 0
|
||||
cli := fmt.Sprintf("iwconfig %s | grep Signal | /usr/bin/awk '{print $4}' | /usr/bin/cut -d'=' -f2",sysgo.WifiDev)
|
||||
out := System(cli)
|
||||
if(len(out) > 2) {
|
||||
if strings.Contains(out,"No") == false {
|
||||
stren,err := strconv.ParseInt(out, 10, 0)
|
||||
if err == nil {
|
||||
qua = 2 * (int(stren) + 100)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
segs := [][]int{ []int{-2,-1}, []int{0,25}, []int{25,50}, []int{50,75},[]int{75,100}}
|
||||
stren_number := stren
|
||||
stren_number := qua
|
||||
ge := 0
|
||||
if stren_number == 0 {
|
||||
return ge
|
||||
@ -327,7 +351,6 @@ func (self *TitleBar) Init(main_screen *MainScreen) {
|
||||
self.CanvasHWND = surface.Surface(self.Width,self.Height)
|
||||
self.HWND = main_screen.HWND
|
||||
self.SkinManager = main_screen.SkinManager
|
||||
self.DBusManager = main_screen.DBusManager
|
||||
|
||||
icon_wifi_status := NewTitleBarIconItem()
|
||||
|
||||
@ -396,9 +419,8 @@ func (self *TitleBar) Init(main_screen *MainScreen) {
|
||||
|
||||
self.Icons["round_corners"] = round_corners
|
||||
|
||||
if self.DBusManager.IsWifiConnectedNow() {
|
||||
if self.IsWifiConnectedNow() {
|
||||
print("wifi is connected")
|
||||
print( self.DBusManager.WifiStrength())
|
||||
}else {
|
||||
|
||||
cmd := "sudo rfkill list | grep yes | cut -d \" \" -f3" //make sure sudo rfkill needs no password
|
||||
@ -482,8 +504,8 @@ func (self *TitleBar) Draw(title string) {
|
||||
self.Icons["sound"].NewCoord( start_x, self.IconHeight/2+ (self.BarHeight-self.IconHeight)/2)
|
||||
self.Icons["battery"].NewCoord(start_x+self.IconWidth+self.IconWidth+8, self.IconHeight/2+(self.BarHeight-self.IconHeight)/2)
|
||||
|
||||
if self.DBusManager.IsWifiConnectedNow() == true {
|
||||
ge := self.GetWifiStrength( self.DBusManager.WifiStrength() )
|
||||
if self.IsWifiConnectedNow() == true {
|
||||
ge := self.GetWifiStrength()
|
||||
//fmt.Println("wifi ge: ",ge)
|
||||
if ge > 0 {
|
||||
self.Icons["wifistatus"].SetIconIndex(ge)
|
||||
|
||||
@ -24,6 +24,8 @@ var (
|
||||
//load from dot files
|
||||
CurPowerLevel= "performance"
|
||||
Lang = "English"
|
||||
WifiDev = "wlan0"
|
||||
|
||||
|
||||
)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user