Guest User

Untitled

a guest
Oct 21st, 2012
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.40 KB | None | 0 0
  1.    
  2.    
  3.  
  4. #!/bin/sh
  5. #
  6. # GSM manipulating script
  7. #
  8. #
  9.  
  10. #initialise gsm
  11. #
  12. prepare_gsm(){
  13.     load_fpga /lib/firmware/fpga/apf51_gsm_gps_firmware.bin
  14.     modprobe irq_ocore
  15.     modprobe 8250
  16.     modprobe twin_uarts_irq_mng
  17.     modprobe twin_uarts_16750
  18.     # bring GSM out of reset:
  19.     modprobe wm831x-gpio
  20.  
  21.  
  22.     echo 245 > /sys/class/gpio/export
  23.     echo out > /sys/class/gpio/gpio245/direction
  24.     echo 1 > /sys/class/gpio/gpio245/value
  25.     ls -al /dev/ttyS*
  26.     GSM_DEVICE=/dev/ttyS0
  27.     GSM_SPEED=115200
  28. }
  29.  
  30. check_number(){
  31.     DIGITS=`echo -n "$PHONE_NUMBER" | wc -c`
  32.     if [ "$DIGITS" != 10 ]; then
  33.     echo "Bad phone number format ($PHONE_NUMBER)"
  34.     exit 1;
  35.     fi
  36. }
  37.  
  38.  
  39.  
  40. #envoit des commandes AT
  41. send_at_cmd()
  42. {
  43.     echo -e -n "$1\015" > $GSM_DEVICE
  44.     sleep 1
  45. }
  46.  
  47.  
  48. main(){
  49.     i=0    
  50.  
  51.  
  52.     if [ $# -eq 0 ]; then
  53.     exit
  54.     else
  55.     choix=$1
  56.  
  57.     fi
  58.  
  59.  
  60.                                                
  61.     while [ -e sms.lock ] ; do                            
  62.     i=$((i+1))                                            
  63.     sleep 1                                              
  64.     if [ $i -eq 9 ]; then                
  65.         exit 2;                                                  
  66.     fi                                  
  67.     done
  68.  
  69.     touch sms.lock
  70.  
  71.     prepare_gsm 2>>/dev/null >>/dev/null
  72.  
  73.     stty -F $GSM_DEVICE raw -echo -echoe -echok $GSM_SPEED 2>>/dev/null >>/dev/null
  74.    
  75.     if [ "$?" != 0 ]; then
  76.     echo "Failed to setup serial port ($GSM_DEVICE)"
  77.     rm sms.lock
  78.     exit 1;
  79.    
  80.     fi
  81.    
  82.     send_at_cmd ATE0    # ECHO OFF
  83.  
  84.     case $choix in
  85.     0) 
  86.     cat $GSM_DEVICE >./result&
  87.     sleep 1
  88.  
  89.     #echo " --- Checking signal quality (should be better than 12/99):"
  90.     send_at_cmd AT+CSQ
  91.     kill $!
  92.     grep CSQ ./result
  93.     ;;
  94.  
  95.     1)
  96.         PHONE_NUMBER=5142663570
  97.     check_number
  98.  
  99.     /usr/sbin/chat ABORT 'NO CARRIER' ECHO ON '' AT OK ATD"$PHONE_NUMBER"\; OK > $GSM_DEVICE < $GSM_DEVICE
  100.     sleep 6
  101.     send_at_cmd ATH
  102.     ;;
  103.  
  104.  
  105.     2)
  106.    
  107.    
  108.     if [ $# -ge 3 ]; then
  109.       PHONE_NUMBER=$2
  110.  
  111.       shift;
  112.       shift;
  113.      
  114.       MESSAGE=$*
  115.  
  116.     else
  117.         echo $#
  118.         exit 1;
  119.     fi
  120.  
  121.    
  122.    
  123.    
  124.     check_number
  125.  
  126.     #sms sending mode
  127.     send_at_cmd AT+CMGF=1
  128.  
  129.     send_at_cmd AT+CSCS="GSM"
  130.  
  131.     send_at_cmd "AT+CMGS=\"$PHONE_NUMBER\""
  132.  
  133.     send_at_cmd "$MESSAGE"
  134.  
  135.     send_at_cmd "\032"
  136.  
  137.     ;;
  138.  
  139.     *) echo "not def"
  140.     ;;
  141.     esac;
  142.    
  143.     send_at_cmd ATE1    # ECHO ON
  144.  
  145.     rm sms.lock
  146. }
  147.  
  148. main $*
Advertisement
Add Comment
Please, Sign In to add comment