WIP: JSONRPC server refactoring
This commit is contained in:
90
script/experiment/luciRpc.sh
Normal file
90
script/experiment/luciRpc.sh
Normal file
@ -0,0 +1,90 @@
|
||||
#!/bin/bash
|
||||
|
||||
function rpcLogin() {
|
||||
local IP=$1
|
||||
local PORT=$2
|
||||
local USER="$3"
|
||||
local PASS="$4"
|
||||
local RES=""
|
||||
|
||||
local cmd="curl"
|
||||
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/auth"
|
||||
local opt="--silent --data"
|
||||
local data="{ \"id\": 1, \"method\": \"login\", \"params\": [ \"$USER\", \"$PASS\" ] }"
|
||||
|
||||
res=$(${cmd} ${url} ${opt} "${data}")
|
||||
echo ${res} | jq -Ma ".result"
|
||||
}
|
||||
|
||||
function iwList()
|
||||
{
|
||||
local IP=$1
|
||||
local PORT=$2
|
||||
local IFACE=$3
|
||||
local TOKEN="$4"
|
||||
|
||||
local cmd="curl"
|
||||
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
|
||||
local opt="--silent --cookie sysauth=${TOKEN} --data"
|
||||
local data="{ \"method\": \"wifi.getiwinfo\", \"params\": [ \"${IFACE}\" ] }"
|
||||
|
||||
res=$(${cmd} ${url} ${opt} "${data}")
|
||||
echo ${res} |jq
|
||||
}
|
||||
|
||||
function netDeviceInfo()
|
||||
{
|
||||
local IP=$1
|
||||
local PORT=$2
|
||||
local TOKEN="$3"
|
||||
|
||||
local cmd="curl"
|
||||
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
|
||||
local opt="--silent --cookie sysauth=${TOKEN} --data"
|
||||
local data="{ \"method\": \"net.deviceinfo\", \"params\": [ \"wlan0\" ]}"
|
||||
|
||||
res=$(${cmd} ${url} ${opt} "${data}")
|
||||
echo ${res} |jq
|
||||
|
||||
}
|
||||
|
||||
function netDevices()
|
||||
{
|
||||
local IP=$1
|
||||
local PORT=$2
|
||||
local TOKEN="$3"
|
||||
|
||||
local cmd="curl"
|
||||
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
|
||||
local opt="--silent --cookie sysauth=${TOKEN} --data"
|
||||
local data="{ \"method\": \"net.devices\", \"params\": [] }"
|
||||
|
||||
res=$(${cmd} ${url} ${opt} "${data}")
|
||||
echo ${res} |jq
|
||||
}
|
||||
|
||||
function arpTable()
|
||||
{
|
||||
local IP=$1
|
||||
local PORT=$2
|
||||
local TOKEN="$3"
|
||||
|
||||
local cmd="curl"
|
||||
local url="http://${IP}:${PORT}/cgi-bin/luci/rpc/sys"
|
||||
local opt="--silent --cookie sysauth=${TOKEN} --data"
|
||||
local data="{ \"method\": \"net.arptable\", \"params\": [] }"
|
||||
|
||||
res=$(${cmd} ${url} ${opt} "${data}")
|
||||
echo ${res} |jq
|
||||
}
|
||||
|
||||
#FIXME USER PASS
|
||||
authToken=$(rpcLogin 192.168.1.1 8080 root 'XXXXXX EDITE MOI')
|
||||
|
||||
#netDevices 192.168.1.1 8080 ${authToken}
|
||||
#netDeviceInfo 192.168.1.1 8080 ${authToken}
|
||||
#iwList 192.168.1.1 8080 wlan0 ${authToken}
|
||||
#iwList 192.168.1.1 8080 wlan1 ${authToken}
|
||||
|
||||
adoles:
|
||||
|
38
script/experiment/setupKit.go
Normal file
38
script/experiment/setupKit.go
Normal file
@ -0,0 +1,38 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"log"
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
func scanWifi(iface string) string {
|
||||
command := "iwinfo"
|
||||
opt := "scan"
|
||||
var out bytes.Buffer
|
||||
var stderr bytes.Buffer
|
||||
|
||||
fmt.Printf("Running %s command\n", command)
|
||||
exe := exec.Command(command, iface, opt)
|
||||
exe.Stdout = &out
|
||||
exe.Stderr = &stderr
|
||||
|
||||
err := exe.Run()
|
||||
if err != nil {
|
||||
fmt.Println(fmt.Sprint(err) + ": " + stderr.String())
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
return out.String()
|
||||
}
|
||||
|
||||
func getCellInfo(iface string, ssidPrefix string) {
|
||||
cells := scanWifi(iface)
|
||||
fmt.Printf("%s\n", cells)
|
||||
|
||||
}
|
||||
|
||||
func main() {
|
||||
getCellInfo("wlan1", "Base1")
|
||||
}
|
73
script/experiment/setupKit.sh
Normal file
73
script/experiment/setupKit.sh
Normal file
@ -0,0 +1,73 @@
|
||||
#!/bin/bash
|
||||
|
||||
#
|
||||
# Try to setup Kit !
|
||||
#
|
||||
|
||||
function scanWifi() {
|
||||
local iface=${1}
|
||||
iwinfo ${iface} scan
|
||||
return ${?}
|
||||
}
|
||||
|
||||
function getWifiCell()
|
||||
{
|
||||
local iface=${1}
|
||||
local ssidPrefix=${2}
|
||||
res=$(scanWifi ${iface} | grep -B 1 "ESSID: \"${ssidPrefix}")
|
||||
if [[ "${res}" == "Scanning not possible" ]] || [[ "${res}" == "" ]]
|
||||
then
|
||||
for try in $(seq 0 10)
|
||||
do
|
||||
sleep 5
|
||||
res=$(scanWifi ${iface} | grep -B 1 "ESSID: \"${ssidPrefix}")
|
||||
if [[ "${res}" == "Scanning not possible" ]] || [[ "${res}" == "" ]]
|
||||
then
|
||||
continue
|
||||
else
|
||||
echo ${res}
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
echo "Error scanning wifi networks !"
|
||||
return 2
|
||||
else
|
||||
echo ${res}
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
function connectWifi() {
|
||||
local iface=${1}
|
||||
local ssidPrefix=${2}
|
||||
local wpa=${3}
|
||||
|
||||
local cell=$(getWifiCell ${iface} ${ssidPrefix})
|
||||
if [[ $? -ne 0 ]]
|
||||
then
|
||||
echo "Error on wifi scan !"
|
||||
exit 12
|
||||
fi
|
||||
local ssid=$(echo ${cell} | awk '{print $7}' | sed -e 's/"//g')
|
||||
local cellMAC=$(echo ${cell} | awk '{print $5}' | sed -e 's/"//g"')
|
||||
|
||||
set -x
|
||||
uci delete wireless.@wifi-iface[1]
|
||||
uci add wireless wifi-iface
|
||||
uci set wireless.@wifi-iface[1].network="EmlidReach"
|
||||
uci set wireless.@wifi-iface[1].ssid="${ssid}"
|
||||
uci set wireless.@wifi-iface[1].encryption="psk2"
|
||||
uci set wireless.@wifi-iface[1].device="radio1"
|
||||
uci set wireless.@wifi-iface[1].mode="sta"
|
||||
uci set wireless.@wifi-iface[1].bssid="${cellMAC}"
|
||||
uci set wireless.@wifi-iface[1].key="${wpa}"
|
||||
uci commit
|
||||
reload_config
|
||||
sleep 20
|
||||
set +x
|
||||
udhcpc -i ${iface}
|
||||
}
|
||||
|
||||
# interface SSID_PREFIX Network_KEY
|
||||
connectWifi "$1" "$2" "$3"
|
||||
|
26
script/experiment/uciCli.sh
Normal file
26
script/experiment/uciCli.sh
Normal file
@ -0,0 +1,26 @@
|
||||
#!/bin/bash
|
||||
|
||||
function scanWifi()
|
||||
{
|
||||
local ifcace=$1
|
||||
iwconfig ${iface} scan
|
||||
|
||||
|
||||
function connectBoard()
|
||||
{
|
||||
uci delete wireless.@wifi-iface[1]
|
||||
uci add wireless wifi-iface
|
||||
uci set wireless.@wifi-iface[1].network="EmlidReach"
|
||||
uci set wireless.@wifi-iface[1].ssid="Base1:2a:03"
|
||||
uci set wireless.@wifi-iface[1].encryption="psk2"
|
||||
uci set wireless.@wifi-iface[1].device="radio1"
|
||||
uci set wireless.@wifi-iface[1].mode="sta"
|
||||
uci set wireless.@wifi-iface[1].bssid="FC:DB:B3:7E:2A:03"
|
||||
uci set wireless.@wifi-iface[1].key="basepyxis"
|
||||
uci commit
|
||||
reload_config
|
||||
sleep 15
|
||||
udhcpc -i wlan1
|
||||
}
|
||||
|
||||
cells=$(scanWifi wlan1)
|
Reference in New Issue
Block a user