From 9314ec141b15996dc0e6a71785efbf491eec8493 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 12 九月 2023 15:07:54 +0800 Subject: [PATCH] 修改wifi配置 --- system-service/sys/system.go | 156 ++++++++++++++++++++++++++-------------------------- 1 files changed, 78 insertions(+), 78 deletions(-) diff --git a/system-service/sys/system.go b/system-service/sys/system.go index 41d6e46..c79d6f0 100644 --- a/system-service/sys/system.go +++ b/system-service/sys/system.go @@ -11,6 +11,7 @@ "strconv" "vamicro/config" "vamicro/extend/util" + "vamicro/system-service/iwlist" "vamicro/system-service/models" sysVo "vamicro/system-service/vo" @@ -141,7 +142,7 @@ return info, err } -//鑾峰彇缃戝崱淇℃伅 +// 鑾峰彇缃戝崱淇℃伅 func GetNetWorkCards() ([]sysVo.NetWorkCard, error) { interfaces, err := net.Interfaces() if nil != err { @@ -184,7 +185,7 @@ return data, nil } -//淇敼IP鍙戝竷娑堟伅 +// 淇敼IP鍙戝竷娑堟伅 func IpChangePublish(newIp string) bool { //淇敼鍥芥爣ip tmpResourceConf := models.ResourceConfig{} @@ -213,7 +214,8 @@ return false } -/** +/* +* 鏇存柊閰嶇疆 @param serverName 鏈嶅姟鍚嶇О @param newIp 鏈嶅姟Ip @@ -491,7 +493,7 @@ return err == nil } -//璁剧疆璇█ +// 璁剧疆璇█ func SetLang(lang string, language string) error { // set env envCMD := exec.Command("/bin/sh", "-c", "LANG=%s", lang) @@ -525,7 +527,7 @@ return err } -//鑾峰彇褰撳墠璇█ +// 鑾峰彇褰撳墠璇█ func GetLang() (string, error) { content, err := execRootCommand("cat /etc/default/locale|grep LANG") if nil == err { @@ -541,7 +543,7 @@ return "", err } -//鑾峰彇榛樿閿洏甯冨眬 +// 鑾峰彇榛樿閿洏甯冨眬 func GetDefKeyboard() (string, error) { content, err := execRootCommand("cat /etc/default/keyboard|grep XKBLAYOUT") if nil == err { @@ -557,7 +559,7 @@ return "", err } -//鑾峰彇閿洏甯冨眬 +// 鑾峰彇閿洏甯冨眬 func GetKeyboardLayouts() (map[string]string, []sysVo.KeyBoardLayout, error) { output, err := execRootCommand("man -P cat xkeyboard-config") if nil != err { @@ -615,7 +617,7 @@ return keyBoardLayoutMap, keyBoardLayouts, nil } -//璁剧疆閿洏甯冨眬 +// 璁剧疆閿洏甯冨眬 func SetKeyboardLayout(layout string) error { cmdStr := fmt.Sprintf("sed -i 's/XKBLAYOUT=.*/XKBLAYOUT=\"%s\"/' /etc/default/keyboard", layout) _, err := execRootCommand(cmdStr) @@ -623,7 +625,7 @@ return err } -//鍏抽棴缃戠粶 +// 鍏抽棴缃戠粶 func DownNetCard(networkAdapter string) error { cmdStr := fmt.Sprintf("ip link set %s down", networkAdapter) _, err := execRootCommand(cmdStr) @@ -631,7 +633,7 @@ return err } -//寮�鍚綉缁� +// 寮�鍚綉缁� func UpNetCard(networkAdapter string) error { _, _, err := GetLocalIP(networkAdapter) if err != nil { @@ -643,7 +645,7 @@ return err } -//鑾峰彇鏃犵嚎缃戝崱 +// 鑾峰彇鏃犵嚎缃戝崱 func GetIwDev() ([]string, error) { content, err := execRootCommand("iw dev") if nil == err { @@ -664,76 +666,74 @@ return nil, errors.New("iw dev not found") } -//鑾峰彇wifi缃戠粶 -func GetWifi(netcard string) ([]sysVo.WiFi, error) { - reg, err := regexp.Compile(`Quality=(\d+)/70[^\n]+\n\s+Encryption key:([^\n]+)\n\s+ESSID:\"([^\"]+)\"`) - if nil == err { - var wifiList = make([]sysVo.WiFi, 0) - info, err := execRootCommand(fmt.Sprintf("iwlist %s scan", netcard)) - if nil == err { - res := reg.FindAllStringSubmatch(string(info), -1) - for _, item := range res { - if len(item) >= 4 { - wifi := sysVo.WiFi{item[3], item[1], item[2]} - wifiList = append(wifiList, wifi) - } - } - return wifiList, nil - } - } - return nil, err +// 鑾峰彇wifi缃戠粶 +func ScanWifiList(netcard string) ([]iwlist.Cell, error) { + return iwlist.Scan(netcard) } -//杩炴帴WIFI -func ConnectWifi(fname, passwd, ssid string) error { - content, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s add_network", fname)) - if nil != err { +// 杩炴帴WIFI +func ConnectWifi(fname, ssid, passwd string) error { + networkConfigScript := "/opt/vasystem/script/wlanconfig" + + // 妫�鏌ユ枃浠舵槸鍚﹀瓨鍦� + if _, err := os.Stat(networkConfigScript); err != nil { return err } - newid := strings.TrimSpace(string(content)) - reg, err := regexp.Compile(`^(\d+)$`) - if nil == err { - b := reg.MatchString(newid) - if !b { - return errors.New("WIFI鍔犲叆澶辫触") - } - ret, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s ssid '\"%s\"'", fname, newid, ssid)) - if nil != err { - return err - } - if strings.TrimSpace(string(ret)) != "OK" { - return errors.New(string(ret)) - } - ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s psk '\"%s\"'", fname, newid, passwd)) - if nil != err { - return err - } - if strings.TrimSpace(string(ret)) != "OK" { - return errors.New(string(ret)) - } - ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s disconnect", fname)) - if nil != err { - return err - } - if strings.TrimSpace(string(ret)) != "OK" { - return errors.New(string(ret)) - } - ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s select_network %s", fname, newid)) - if nil != err { - return err - } - if strings.TrimSpace(string(ret)) != "OK" { - return errors.New(string(ret)) - } - _, err = execRootCommand(fmt.Sprintf("udhcpc -i %s -q -n", fname)) - if nil != err { - return errors.New("瀵嗙爜濂藉儚涓嶅鍝�") - } - _, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s save_config", fname)) - return nil - } else { - return err - } + + // # wlanconfig wlan0 Basic Basic2019 + cmdStr := fmt.Sprintf("%s %s %s %s", networkConfigScript, fname, ssid, passwd) + _, err := execRootCommand(cmdStr) + + return err + + //content, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s add_network", fname)) + //if nil != err { + // return err + //} + //newid := strings.TrimSpace(string(content)) + //reg, err := regexp.Compile(`^(\d+)$`) + //if nil == err { + // b := reg.MatchString(newid) + // if !b { + // return errors.New("WIFI鍔犲叆澶辫触") + // } + // ret, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s ssid '\"%s\"'", fname, newid, ssid)) + // if nil != err { + // return err + // } + // if strings.TrimSpace(string(ret)) != "OK" { + // return errors.New(string(ret)) + // } + // ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s psk '\"%s\"'", fname, newid, passwd)) + // if nil != err { + // return err + // } + // if strings.TrimSpace(string(ret)) != "OK" { + // return errors.New(string(ret)) + // } + // ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s disconnect", fname)) + // if nil != err { + // return err + // } + // if strings.TrimSpace(string(ret)) != "OK" { + // return errors.New(string(ret)) + // } + // ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s select_network %s", fname, newid)) + // if nil != err { + // return err + // } + // if strings.TrimSpace(string(ret)) != "OK" { + // return errors.New(string(ret)) + // } + // _, err = execRootCommand(fmt.Sprintf("udhcpc -i %s -q -n", fname)) + // if nil != err { + // return errors.New("瀵嗙爜濂藉儚涓嶅鍝�") + // } + // _, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s save_config", fname)) + // return nil + //} else { + // return err + //} } func ExistService(name string) string { @@ -744,7 +744,7 @@ return string(b) } -//閰嶇疆mqtt +// 閰嶇疆mqtt func SetMqttConf(conf *sysVo.MqttConf) error { etcPath := "/etc/mosquitto/mosquitto.conf" pwfile := "/etc/mosquitto/pwfile" -- Gitblit v1.8.0