Fixes related to cleaning up modem functionality; fix audio; add flash toggle
This commit is contained in:
parent
b37138c845
commit
34b2c57038
9 changed files with 53 additions and 29 deletions
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
# sxmo-utils
|
||||
|
||||
This repository contains scripts and C programs to support sxmo.
|
||||
|
||||
|
|
@ -1,4 +1,3 @@
|
|||
# Mute speaker, only output to headphones
|
||||
state.sun50ia64audio {
|
||||
control.1 {
|
||||
iface MIXER
|
||||
|
@ -429,8 +428,8 @@ state.sun50ia64audio {
|
|||
control.33 {
|
||||
iface MIXER
|
||||
name 'DAC Mixer AIF2 DAC Playback Switch'
|
||||
value.0 true
|
||||
value.1 true
|
||||
value.0 false
|
||||
value.1 false
|
||||
comment {
|
||||
access 'read write'
|
||||
type BOOLEAN
|
||||
|
|
|
@ -40,13 +40,12 @@ programchoicesinit() {
|
|||
|
||||
# System Control menu
|
||||
echo $WMCLASS | grep -i "config" && CHOICES="$(echo "
|
||||
Volume ↑ ^ 1 ^ sxmo_vol.sh up
|
||||
Volume ↓ ^ 1 ^ sxmo_vol.sh down
|
||||
Brightesss ↑ ^ 1 ^ sxmo_brightness.sh up
|
||||
Brightness ↓ ^ 1 ^ sxmo_brightness.sh down
|
||||
Modem $(pgrep -f sxmo_modemmonitor.sh >/dev/null && echo -n "On → Off" || echo -n "Off → On") ^ 1 ^ sxmo_modemmonitortoggle.sh
|
||||
Modem Info ^ 0 ^ sxmo_modeminfo.sh
|
||||
Modem Log ^ 0 ^ sxmo_modemlog.sh
|
||||
Flash $(cat /sys/class/leds/white:flash/brightness | grep -E '^0$' > /dev/null && echo -n "Off → On" || echo -n "On → Off") ^ 1 ^ sxmo_flashtoggle.sh
|
||||
Rotate ^ 1 ^ rotate
|
||||
Wifi ^ 0 ^ st -e "nmtui"
|
||||
Upgrade Pkgs ^ 0 ^ st -e sxmo_upgrade.sh
|
||||
|
|
6
scripts/core/sxmo_flashtoggle.sh
Executable file
6
scripts/core/sxmo_flashtoggle.sh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/usr/bin/env sh
|
||||
sxmo_setpineled white "$(
|
||||
cat /sys/class/leds/white:flash/brightness |
|
||||
grep -E '^0$' > /dev/null && echo 255 || echo 0
|
||||
)"
|
||||
|
|
@ -24,7 +24,7 @@ do
|
|||
|
||||
# Volume
|
||||
VOL=$(
|
||||
echo "$(audiodevice)" |
|
||||
echo "$(amixer sget $(audiodevice))" |
|
||||
grep -oE '([0-9]+)%' |
|
||||
tr -d ' %' |
|
||||
awk '{ s += $1; c++ } END { print s/c }' |
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
#!/usr/bin/env sh
|
||||
PID=$$
|
||||
LOGDIR=/home/$USER/.sxmo
|
||||
trap "kill 0" SIGINT
|
||||
|
||||
err() {
|
||||
echo -e "$1" | dmenu -fn Terminus-20 -c -l 10
|
||||
kill $$
|
||||
alsactl --file /usr/share/sxmo/default_alsa_sound.conf restore
|
||||
kill -9 0
|
||||
}
|
||||
|
||||
modem_n() {
|
||||
|
@ -11,10 +14,11 @@ modem_n() {
|
|||
}
|
||||
|
||||
contacts() {
|
||||
cat $LOGDIR/modemlog.tsv | cut -f3 | sort | uniq | awk NF
|
||||
RES="$(cat $LOGDIR/modemlog.tsv | cut -f3 | sort | uniq | awk NF)"
|
||||
echo $RES
|
||||
echo -e "$RES" | grep 8042221111 || echo Test Number 8042221111
|
||||
}
|
||||
|
||||
|
||||
modem_cmd_errcheck() {
|
||||
ARGS="$@"
|
||||
RES="$(mmcli $ARGS 2>&1)"
|
||||
|
@ -23,15 +27,16 @@ modem_cmd_errcheck() {
|
|||
}
|
||||
|
||||
vid_to_number() {
|
||||
mmcli -m $(modem_n) -o $1 -K | grep call.properties.number | cut -d ':' -f2 | tr -d ' '
|
||||
mmcli -m $(modem_n) -o $1 -K | grep call.properties.number | cut -d ':' -f2 | tr -d ' ' | sed 's/^[+]//' | sed 's/^1//'
|
||||
}
|
||||
|
||||
log_event() {
|
||||
EVT_HANDLE="$1"
|
||||
EVT_VID="$2"
|
||||
NUMBER="$(vid_to_number $EVT_VID)"
|
||||
NUM="$(vid_to_number $EVT_VID)"
|
||||
TIME="$(date --iso-8601=seconds)"
|
||||
echo -ne "$TIME\t$EVT_HANDLE\t$NUMBER\n" >> $LOGDIR/modemlog.tsv
|
||||
mkdir -p $LOGDIR
|
||||
echo -ne "$TIME\t$EVT_HANDLE\t$NUM\n" >> $LOGDIR/modemlog.tsv
|
||||
}
|
||||
|
||||
toggleflag() {
|
||||
|
@ -52,12 +57,13 @@ toggleflag() {
|
|||
dialmenu() {
|
||||
CONTACTS="$(contacts)"
|
||||
NUMBER="$(
|
||||
echo -e "Close Menu\n$CONTACTS\nTest Number 804-222-1111" |
|
||||
sxmo_dmenu_with_kb.sh -l 10 -p Number -c -fn Terminus-20 |
|
||||
awk -F' ' '{print $NF}' |
|
||||
tr -d -
|
||||
echo -e "Close Menu\n$CONTACTS" |
|
||||
sxmo_dmenu_with_kb.sh -l 10 -p Number -c -fn Terminus-20
|
||||
)"
|
||||
echo $NUMBER | grep "Close Menu" && kill $$
|
||||
echo "$NUMBER" | grep "Close Menu" && kill 0
|
||||
|
||||
NUMBER="$(echo $NUMBER | awk -F' ' '{print $NF}' | tr -d -)"
|
||||
echo "$NUMBER" | grep -E '^[0-9]+$'> /dev/null || err "$NUMBER is not a number"
|
||||
|
||||
echo "Attempting to dial: $NUMBER" >&2
|
||||
VID="$(
|
||||
|
@ -72,7 +78,7 @@ startcall() {
|
|||
VID="$1"
|
||||
#modem_cmd_errcheck --voice-status -o $VID
|
||||
modem_cmd_errcheck -m $(modem_n) -o $VID --start
|
||||
log_event "call_start" $VID
|
||||
log_event "call_start" "$VID"
|
||||
}
|
||||
|
||||
acceptcall() {
|
||||
|
@ -163,7 +169,6 @@ dtmfmenu() {
|
|||
done
|
||||
}
|
||||
|
||||
|
||||
dial() {
|
||||
VID="$(dialmenu)"
|
||||
incallmenu $VID
|
||||
|
|
|
@ -21,10 +21,13 @@ newcall() {
|
|||
INCOMINGNUMBER=$(
|
||||
mmcli -m $(modem_n) --voice-list-calls -o "$VID" -K |
|
||||
grep call.properties.number |
|
||||
cut -d ':' -f 2
|
||||
cut -d ':' -f 2 |
|
||||
sed 's/^[+]//' |
|
||||
sed 's/^1//'
|
||||
)
|
||||
|
||||
TIME="$(date --iso-8601=seconds)"
|
||||
mkdir -p $LOGDIR
|
||||
echo -ne "$TIME\tcall_ring\t$NUMBER\n" >> $LOGDIR/modemlog.tsv
|
||||
echo "$VID:$INCOMINGNUMBER" > /tmp/sxmo_incomingcall
|
||||
echo "Number: $INCOMINGNUMBER (VID: $VID)"
|
||||
|
@ -39,7 +42,13 @@ newtexts() {
|
|||
DAT="$(mmcli -m $(modem_n) -s $i -K)"
|
||||
|
||||
TEXT="$(echo "$DAT" | grep sms.content.text | sed -E 's/^sms\.content\.text\s+:\s+//')"
|
||||
NUM="$(echo "$DAT" | grep sms.content.number | sed -E 's/^sms\.content\.number\s+:\s+[+]?//')"
|
||||
NUM="$(
|
||||
echo "$DAT" |
|
||||
grep sms.content.number |
|
||||
sed -E 's/^sms\.content\.number\s+:\s+[+]?//' |
|
||||
sed 's/^[+]//' |
|
||||
sed 's/^1//'
|
||||
)"
|
||||
TIME="$(echo "$DAT" | grep sms.properties.timestamp | sed -E 's/^sms\.properties\.timestamp\s+:\s+//')"
|
||||
TEXTSIZE="$(echo $TEXT | wc -c)"
|
||||
|
||||
|
|
|
@ -3,6 +3,6 @@ pgrep -f sxmo_modemmonitor.sh && pkill -9 -f sxmo_modemmonitor.sh || sxmo_modemm
|
|||
rm /tmp/sxmo_incomingcall
|
||||
|
||||
# E.g. wait until process killed or started -- maybe there's a better way..
|
||||
sleep 0.2
|
||||
sleep 1
|
||||
|
||||
echo 1 > /tmp/sxmo_bar
|
||||
|
|
|
@ -11,8 +11,9 @@ modem_n() {
|
|||
mmcli -L | grep -oE 'Modem\/([0-9]+)' | cut -d'/' -f2
|
||||
}
|
||||
|
||||
contacts() {
|
||||
cat $LOGDIR/modemlog.tsv | cut -f3 | sort | uniq | awk NF
|
||||
textcontacts() {
|
||||
# TODO: is find automatically sorted by timestamp?
|
||||
find $LOGDIR/* -type d -maxdepth 1 | awk -F'/' '{print $NF}' | tac
|
||||
}
|
||||
|
||||
editmsg() {
|
||||
|
@ -24,7 +25,7 @@ editmsg() {
|
|||
|
||||
sendmsg() {
|
||||
MODEM=$(modem_n)
|
||||
NUMBER="$1"
|
||||
NUMBER="$(echo "$1" | sed 's/^[+]//' | sed 's/^1//')"
|
||||
TEXT="$2"
|
||||
TEXTSIZE="$(echo "$TEXT" | wc -c)"
|
||||
|
||||
|
@ -38,7 +39,7 @@ sendmsg() {
|
|||
done
|
||||
|
||||
TIME="$(date --iso-8601=seconds)"
|
||||
mkdir -p ~/.sxmo/$NUMBER
|
||||
mkdir -p $LOGDIR/$NUMBER
|
||||
echo -ne "Sent to $NUMBER at $TIME:\n$TEXT\n\n" >> $LOGDIR/$NUMBER/sms.txt
|
||||
echo -ne "$TIME\tsent_txt\t$NUMBER\t$TEXTSIZE chars\n" >> $LOGDIR/modemlog.tsv
|
||||
|
||||
|
@ -50,7 +51,7 @@ sendtextmenu() {
|
|||
|
||||
# Prompt for number
|
||||
NUMBER=$(
|
||||
echo -e "\nCancel\n$(contacts)" |
|
||||
echo -e "\nCancel\n$(textcontacts)" |
|
||||
awk NF |
|
||||
sxmo_dmenu_with_kb.sh -p "Number" -fn "Terminus-20" -l 10 -c
|
||||
)
|
||||
|
@ -79,7 +80,7 @@ tailtextlog() {
|
|||
|
||||
main() {
|
||||
# Display
|
||||
ENTRIES="$(echo -e "$(contacts)" | xargs -INUM echo NUM logfile)"
|
||||
ENTRIES="$(echo -e "$(textcontacts)" | xargs -INUM echo NUM logfile)"
|
||||
ENTRIES="$(echo -e "Close Menu\nSend a Text\n$ENTRIES")"
|
||||
NUMBER="$(echo -e "$ENTRIES" | dmenu -p Texts -c -fn Terminus-20 -l 10)"
|
||||
echo $NUMBER | grep "Close Menu" && exit 1
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue