diff options
Diffstat (limited to 'unittest/tnc4_high_snr_ping.sh')
| -rwxr-xr-x | unittest/tnc4_high_snr_ping.sh | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/unittest/tnc4_high_snr_ping.sh b/unittest/tnc4_high_snr_ping.sh deleted file mode 100755 index d9bee07..0000000 --- a/unittest/tnc4_high_snr_ping.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash -# tnc4_high_snr_ping.sh -# -# HF TNC use case test 4 -# + Terminal 1 sends frames to Terminal 2 -# + Terminal 2 receives frames and re-transmits them back to Terminal 1 -# + Terminal 1 and 2 count number of frames received (see logfiles) -# + The modem samples are sent over virtual sound cards, this runs in real time, which -# can be slow for tests involving many packets. Therefore this test is implemented as a -# service script. - -NAME=tnc4 -CODEC2_PATH=${HOME}/codec2 -PIDFILE_TX1=/tmp/${NAME}_tx1.pid -PIDFILE_RX1=/tmp/${NAME}_rx1.pid -PIDFILE_RX2=/tmp/${NAME}_rx2.pid -LOGFILE1=${NAME}_1.log -LOGFILE2=${NAME}_2.log -PATH=${CODEC2_PATH}/build_linux/src:${PATH} -DELAY="${DELAY:-500}" -MAX_RUN_TIME=3600 -# in this version we use single frame bursts, so BURSTS==FRAMES -BURSTS=$2 -MODE=DATAC0 - -function tx1 { - freedv_data_raw_tx ${MODE} /dev/zero - --testframes ${BURSTS} --bursts ${BURSTS} --delay ${DELAY} | aplay --device="plughw:CARD=CHAT2,DEV=1" -f S16_LE -} - -function rx2_background { - # re-transmit any frames we receive - ( arecord --device="plughw:CARD=CHAT2,DEV=0" -f S16_LE -d $MAX_RUN_TIME | \ - freedv_data_raw_rx ${MODE} - - --framesperburst 1 --vv --testframes | \ - freedv_data_raw_tx ${MODE} - - --delay ${DELAY} | \ - aplay --device="plughw:CARD=CHAT1,DEV=1" -f S16_LE ) 2>${LOGFILE2} & - # killing arecord kills the entire pipeline - echo $(pidof arecord)>${PIDFILE_RX2} -} - -function rx1_background { - arecord --device="plughw:CARD=CHAT1,DEV=0" -f S16_LE -d $MAX_RUN_TIME | freedv_data_raw_rx ${MODE} - /dev/null --framesperburst 1 --vv --testframes & - echo $!>${PIDFILE_RX1} -} - -function stop_process { - if [ -e ${1} ]; then - pid=$(cat ${1}) - rm ${1} - kill ${pid} - fi -} - -function stop_service { - echo "service stopping - bye!" 1>&2 - stop_process ${PIDFILE_RX1} - stop_process ${PIDFILE_RX2} - stop_process ${PIDFILE_TX1} -} - -function check_running { - if [ -e ${PIDFILE_TX1} ]; then - echo "Tx already running... pid: ${PIDFILE_TX1}" - exit 1 - fi - if [ -e ${PIDFILE_RX1} ]; then - echo "Rx1 already running... pid: ${PIDFILE_RX1}" - exit 1 - fi - if [ -e ${PIDFILE_RX2} ]; then - echo "Rx2 already running... pid: ${PIDFILE_RX2}" - exit 1 - fi -} - -function check_alsa_loopback { - lsmod | grep snd_aloop >> /dev/null - if [ $? -eq 1 ]; then - echo "ALSA loopback device not present. Please install with:" - echo - echo " sudo modprobe snd-aloop index=1,2 enable=1,1 pcm_substreams=1,1 id=CHAT1,CHAT2" - exit 1 - fi -} - -case "$1" in - start) - check_running - check_alsa_loopback - rx2_background - ( rx1_background && sleep 1 && tx1 && sleep 5 && stop_service ) 2>${LOGFILE1} & - echo $!>${PIDFILE_TX1} - echo "Results for terminal 1 in ${LOGFILE1} and terminal 2 in ${LOGFILE2}" - ;; - stop) - stop_service - ;; - restart) - $0 stop - $0 start - ;; - status) - if [ -e ${PIDFILE_TX1} ]; then - echo ${NAME} is running, pid=`cat ${PIDFILE_TX1}` - else - echo ${NAME} is NOT running - exit 1 - fi - ;; - *) - echo "Usage: $0 {start|start_verbose|stop|restart|status} NumFrames" - echo " $0 start 5 - test ping over 5 frames; logs sent to ${LOGFILE1} and ${LOGFILE2}" -esac - -exit 0 |
