This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
guides:virtual_modem:script [2022-12-20 06:33] omolini |
guides:virtual_modem:script [2022-12-21 23:03] omolini |
||
---|---|---|---|
Line 130: | Line 130: | ||
# SEND MESSAGE ON SCREEN AND OVER SERIAL | # SEND MESSAGE ON SCREEN AND OVER SERIAL | ||
sendtty () { | sendtty () { | ||
+ | # Prints message in console and over serial. Message is given as first parameter. | ||
message="$1" | message="$1" | ||
echo -en "$message" | tee /dev/$serport | echo -en "$message" | tee /dev/$serport | ||
Line 135: | Line 136: | ||
readtty () { | readtty () { | ||
- | while [ "$continue" != "1" ]; do | + | # Reads input from TTY and stores it in variable given as first parameter |
+ | line= | ||
+ | while [[ -z "$line" ]]; do | ||
charhex=`head -c 1 /dev/$serport | xxd -p -` | charhex=`head -c 1 /dev/$serport | xxd -p -` | ||
char="`echo -e "\x$charhex"`" | char="`echo -e "\x$charhex"`" | ||
echo -n "$char" | echo -n "$char" | ||
echo -n "$char" > /dev/$serport | echo -n "$char" > /dev/$serport | ||
+ | # Newline received | ||
if [ "$charhex" = "0d" -o "$charhex" = "0a" ]; then | if [ "$charhex" = "0d" -o "$charhex" = "0a" ]; then | ||
line=$buffer | line=$buffer | ||
Line 147: | Line 150: | ||
sendtty "\n" | sendtty "\n" | ||
fi | fi | ||
+ | buffer=$buffer$char | ||
done | done | ||
- | return $line | + | local __resultvar=$1 |
+ | local result="$line" | ||
+ | eval $__resultvar="'$result'" | ||
} | } | ||
Line 161: | Line 167: | ||
sendtty "\n" | sendtty "\n" | ||
- | sendtty "VMODEM - Virtual Modem bootstrap for PPP link v$vmodver\n" | + | sendtty "Virtual Modem bootstrap for PPP link v$vmodver\n" |
sendtty "Connection speed set to $baud baud\n" | sendtty "Connection speed set to $baud baud\n" | ||
sendtty "\n" | sendtty "\n" | ||
- | sendtty "TYPE HELP FOR COMMANDS\n" | + | sendtty "TYPE \"HELP\" FOR COMMAND REFERENCE.\n" |
sendtty "READY.\n" | sendtty "READY.\n" | ||
Line 470: | Line 476: | ||
while true; do | while true; do | ||
# Display menu | # Display menu | ||
+ | sendtty "\n" | ||
sendtty "System Setup\n" | sendtty "System Setup\n" | ||
sendtty "============\n" | sendtty "============\n" | ||
Line 476: | Line 483: | ||
sendtty "Enter your selection: " | sendtty "Enter your selection: " | ||
# Read user input | # Read user input | ||
- | selection=$(readtty) | + | readtty selection |
- | sendtty $selection | + | |
# Wireless network settings | # Wireless network settings | ||
if [[ "$selection" == "1" ]]; then | if [[ "$selection" == "1" ]]; then | ||
while true; do | while true; do | ||
+ | sendtty "\n" | ||
sendtty "Wi-Fi Settings\n" | sendtty "Wi-Fi Settings\n" | ||
sendtty "==============\n" | sendtty "==============\n" | ||
Line 490: | Line 498: | ||
sendtty "Enter your selection: " | sendtty "Enter your selection: " | ||
# Read user input | # Read user input | ||
- | read -p selection | + | readtty selection |
# Connect to new Wi-Fi network | # Connect to new Wi-Fi network | ||
if [[ "$selection" == "1" ]]; then | if [[ "$selection" == "1" ]]; then | ||
sendtty "Enter SSID: " | sendtty "Enter SSID: " | ||
- | read -p ssid | + | readtty ssid |
sendtty "Enter password: " | sendtty "Enter password: " | ||
- | read -p password | + | readtty password |
#sudo wpa_cli -i wlan0 remove_network 0 | #sudo wpa_cli -i wlan0 remove_network 0 | ||
#sudo wpa_cli -i wlan0 add_network | #sudo wpa_cli -i wlan0 add_network | ||
Line 506: | Line 514: | ||
elif [[ "$selection" == "2" ]]; then | elif [[ "$selection" == "2" ]]; then | ||
sendtty "Enter new password: " | sendtty "Enter new password: " | ||
- | read -p password | + | readtty password |
#sudo wpa_cli -i wlan0 set_network 0 psk "\"$password\"" | #sudo wpa_cli -i wlan0 set_network 0 psk "\"$password\"" | ||
# Disconnect from current Wi-Fi network | # Disconnect from current Wi-Fi network | ||
Line 515: | Line 523: | ||
elif [[ "$selection" == "4" ]]; then | elif [[ "$selection" == "4" ]]; then | ||
status=$(sudo wpa_cli -i wlan0 status) | status=$(sudo wpa_cli -i wlan0 status) | ||
+ | sendtty "\n" | ||
+ | sendtty "Wi-fi connection status\n" | ||
+ | sendtty "=======================\n" | ||
sendtty "$status" | sendtty "$status" | ||
+ | sendtty "\n" | ||
# Exit | # Exit | ||
elif [[ "$selection" == "5" ]]; then | elif [[ "$selection" == "5" ]]; then | ||
Line 526: | Line 538: | ||
# Exit | # Exit | ||
elif [[ "$selection" == "2" ]]; then | elif [[ "$selection" == "2" ]]; then | ||
+ | sendtty "Exited setup\n" | ||
+ | sendtty "READY.\n" | ||
break | break | ||
# Invalid selection | # Invalid selection | ||
else | else | ||
- | echo "Invalid selection. Please try again." | + | sendtty "Invalid selection. Please try again.\n" |
fi | fi | ||
done | done | ||
Line 653: | Line 667: | ||
sendtty "\n" | sendtty "\n" | ||
sendtty "Please enter your name: \n" | sendtty "Please enter your name: \n" | ||
- | read -e -p "User? " username | + | readtty username |
sendtty "\n" | sendtty "\n" | ||
sendtty "Hello, $username!\n" | sendtty "Hello, $username!\n" |