diff options
author | Artur Artamonov <freeartman@wechall.net> | 2013-07-24 22:49:24 +0300 |
---|---|---|
committer | Artur Artamonov <freeartman@wechall.net> | 2013-07-24 22:49:24 +0300 |
commit | 4ed5985ada0f0420d69d7d959ecc3c9c8515efa0 (patch) | |
tree | 8a487220e49ce90fee969cbd2a7b2347ea57a28b /package/query3g | |
parent | d27678cf375bbb473e5111084c1c53a4081731d6 (diff) |
query3g fixed apnprovider output, added apnprovider option(when web part will ready uncomment it)
Diffstat (limited to 'package/query3g')
-rw-r--r-- | package/query3g/files/usr/bin/3gdetect.sh | 193 | ||||
-rwxr-xr-x | package/query3g/files/usr/bin/query3g | 13 | ||||
-rw-r--r-- | package/query3g/src/apnprovider.c | 25 |
3 files changed, 30 insertions, 201 deletions
diff --git a/package/query3g/files/usr/bin/3gdetect.sh b/package/query3g/files/usr/bin/3gdetect.sh deleted file mode 100644 index da93c499e..000000000 --- a/package/query3g/files/usr/bin/3gdetect.sh +++ /dev/null @@ -1,193 +0,0 @@ -#!/bin/sh -DATA_DIR=./data -GCOM=comgt -GCOM_MODEMDETECT="/usr/share/query3g.gcom" -MODEM_INFO="modemname.sh" -RETURN_APN=$DATA_DIR/apnprovider -usbreset=/usr/bin/usbreset -GCOM_CMD="/tmp/cmds.gcom" -GCOM_OUT="/tmp/gcom.out" - -detect_model() -{ - #$1 device - #$2 script - $GCOM -d $1 -s $2 >> $GCOM_OUT -} - -modem_info() -{ - $MODEM_INFO "$1" $2 -} - -gcomscr_start() -{ - rm $GCOM_CMD - echo "opengt - set com 115200n81 - set comecho off - set senddelay 0.02 - waitquiet 0.2 0.2 - - send \"AT^m\" - waitfor 1 \"OK\",\"ERROR\" " >> $GCOM_CMD - -} - -gcomscr_add_cmd() -{ - echo " - let \$c=\"$1^m\" - gosub readatcmdnr -" >> $GCOM_CMD -} - -gcomscr_end() -{ - echo -e " - exit 0 - -:readatcmdnr - let i=10 - send \$c -:loop3 - get 1 \"^m\" \$s - if len(\$s) < 2 goto loop5 - if \$mid(\$s,1,2) = \"ER\" goto loop4 - if \$mid(\$s,1,2) = \"OK\" goto loop5 - if \$mid(\$s,1,2) = \"AT\" goto loop5 - if \$mid(\$s,1,2) = \"TE\" goto loop5 - if \$mid(\$s,1,1) = \"+\" goto loop5 - if \$mid(\$s,1,1) = \"\^\" goto loop5 - let l=len(\$s) - let \$s=\$mid(\$s,1,l) - return - -:loop4 - let \$s=\"\" - return - -:loop5 - if i = 0 return - let i=i-1 - sleep 0.25 - goto loop3 - " >> $GCOM_CMD -} - -gcomscr_run() -{ - $GCOM -d $1 $GCOM_CMD -} - -rm -f /tmp/modem3g.* -rm -f $GCOM_OUT -rm -f $GCOM_CMD - -skip_cycles=0 -skip_passed=0 -known_modems="" -for port in 0 1 2 3 4 5 6 7 8 9; do - for tty in $(find /sys/devices/ -name "ttyUSB$port" -type d | sort -u); do - [ -f "$tty/../../idProduct" ] || continue - if [ $skip_cycles -gt 0 ]; then - skip_cycles=$((skip_cycles-1)) - skip_passed=1 - continue - fi - dir="$(cd "$tty/../.."; pwd)" - uid="$(basename "$dir")" - dev="/dev/$(basename "$tty")" - vid="$(cat "$tty/../../idVendor")" - pid="$(cat "$tty/../../idProduct")" - #echo $dir - #echo $uid - #echo "PORT:"$dev - #echo $vid":"$pid - - $GCOM -d $dev -s $GCOM_MODEMDETECT > $GCOM_OUT - model=$( echo `awk -F ':' '{if ($1=="DEVICE") {gsub(/^ */,"",$2);l_a=split($2,a," ");print a[l_a]}}' $GCOM_OUT | tr '[A-Z]' '[a-z]'` ) - serialnum=$( echo `awk -F ':' '{if ($1=="SERIAL") {gsub(/^ */,"",$2);print $2}}' $GCOM_OUT` ) - manuf=$(echo `awk -F ':' '{if ($1=="DEVICE") {gsub(/^ */,"",$2);l_a=split($2,a," ");r="";for(i=1;i<l_a;i++)r=r""a[i]" ";gsub(/[[:space:]]*/,"",r); print r}}' $GCOM_OUT | tr '[A-Z]' '[a-z]'`) - - if [ "$model" != "" ] && [ "$manuf" != "" ]; then - manuf="${manuf//[[:space:]]/}" - #echo "DEVICE:["$manuf"] ["$model"]" - #echo "IMEI:"$serialnum - fi - - FILE="/tmp/modem3g.$serialnum" - #echo "FILE:"$FILE - if [ -f $FILE ]; then - found=1 - else - found=0 - fi - - if [ "$model" != "" ] && \ - [ "$manuf" != "" ]; then - if [ $found -eq 0 ]; then - touch /tmp/modem3g.$serialnum - manuf="${manuf//[[:space:]]/}" - #echo "$manuf" $model - ret=$(modem_info "$manuf" $model) - reti="$?" - #echo "modem_info == "$ret - #echo "reti"$reti - if [ "$reti" == "0" ];then - #echo "FOUND 3G MODEM "$model" "$manuf"?" - #echo "ret="$ret - - - tmp="/tmp/tmp.txt" - echo "$ret" >> $tmp - usbid=`awk -F "," '{print $1}' $tmp` - serialportnum=`awk -F "," '{print $4}' $tmp` - serialport=`awk -F "," '{print $5}' $tmp` - cmds=`awk -F "," '{print $6}' $tmp` - reset=`awk -F "," '{print $7}' $tmp` - rm -f $tmp - - - - #echo usbid "$usbid" - #echo serialportnum "$serialportnum" - #echo serialport "$serialport" - - if [ "$reset" == "1" ]; then - #echo "RESET MODEM" - $usbreset "$vid:$pid" >/dev/null - fi - - #echo "cmds="$cmds - if [ "$cmds" != "" ]; then - - gcomscr_start - old_ifs="$IFS" - IFS=$';' - for cmd in $cmds; do - #echo "CMD : "$cmd - gcomscr_add_cmd $cmd - done - IFS="$old_ifs" - gcomscr_end - gcomscr_run $dev - fi - - awk '1' $GCOM_OUT - - echo "PORT:$dev" - echo "VID:$vid" - echo "PID:$pid" - echo "UID:$uid" - exit 0 - fi - fi - fi - done -done - - -exit 1 - - diff --git a/package/query3g/files/usr/bin/query3g b/package/query3g/files/usr/bin/query3g index da93c499e..e8948622e 100755 --- a/package/query3g/files/usr/bin/query3g +++ b/package/query3g/files/usr/bin/query3g @@ -7,6 +7,7 @@ RETURN_APN=$DATA_DIR/apnprovider usbreset=/usr/bin/usbreset GCOM_CMD="/tmp/cmds.gcom" GCOM_OUT="/tmp/gcom.out" +APN_CNVRT="apnprovider" detect_model() { @@ -81,7 +82,7 @@ gcomscr_run() } rm -f /tmp/modem3g.* -rm -f $GCOM_OUT +rm -f $GCOM_OUT* rm -f $GCOM_CMD skip_cycles=0 @@ -106,10 +107,20 @@ for port in 0 1 2 3 4 5 6 7 8 9; do #echo $vid":"$pid $GCOM -d $dev -s $GCOM_MODEMDETECT > $GCOM_OUT + model=$( echo `awk -F ':' '{if ($1=="DEVICE") {gsub(/^ */,"",$2);l_a=split($2,a," ");print a[l_a]}}' $GCOM_OUT | tr '[A-Z]' '[a-z]'` ) serialnum=$( echo `awk -F ':' '{if ($1=="SERIAL") {gsub(/^ */,"",$2);print $2}}' $GCOM_OUT` ) manuf=$(echo `awk -F ':' '{if ($1=="DEVICE") {gsub(/^ */,"",$2);l_a=split($2,a," ");r="";for(i=1;i<l_a;i++)r=r""a[i]" ";gsub(/[[:space:]]*/,"",r); print r}}' $GCOM_OUT | tr '[A-Z]' '[a-z]'`) + #apn=$(echo `awk -F':' '{if ($1=="+COPS"){l_s=split($2,s,"\"");if(length(s[2])==5){print s[2];}}}' $GCOM_OUT`) + #ret="$($APN_CNVRT $apn)" + #if [ "$?" == "0" ]; then + # apn_fullname=$(echo "$ret" | cut -d',' -f4 | tr -d ' ') + # ret=$(echo -e "awk '{gsub(/$apn/,\"$apn_fullname\");print}' $GCOM_OUT") + # eval $ret > $GCOM_OUT.p + # mv $GCOM_OUT.p $GCOM_OUT + #fi + if [ "$model" != "" ] && [ "$manuf" != "" ]; then manuf="${manuf//[[:space:]]/}" #echo "DEVICE:["$manuf"] ["$model"]" diff --git a/package/query3g/src/apnprovider.c b/package/query3g/src/apnprovider.c index c5f812073..88b625f4c 100644 --- a/package/query3g/src/apnprovider.c +++ b/package/query3g/src/apnprovider.c @@ -9,6 +9,7 @@ int main( int argc, char **argv ) { int ret=0; + int i,j,k; int cnt_apn=0; if ( argc != 2 ) { @@ -29,7 +30,6 @@ int main( int argc, char **argv ) memcpy( mnc, apnnumber+3 , 2 ); mnc[2] = 0; - int i; struct json_object *jo = json_object_from_file( FNAME ); if ( jo == NULL ) { @@ -60,6 +60,9 @@ int main( int argc, char **argv ) struct json_object *jmnc = json_object_object_get( obj, "mnc" ); struct json_object *jname = json_object_object_get( obj, "name" ); struct json_object *jfullname = json_object_object_get( obj, "fullname" ); + struct json_object *jstatus = json_object_object_get( obj, "status" ); + struct json_object *jgsmband = json_object_object_get( obj, "gsmband" ); + struct json_object *jarr[] = { jmcc, jmnc, jname, jfullname, jstatus, jgsmband }; if ( (jmcc != NULL) && (jmnc != NULL) && ( (jname != NULL) || (jfullname != NULL) ) ) { const char *tmp_mcc = json_object_to_json_string( jmcc ); @@ -72,12 +75,20 @@ int main( int argc, char **argv ) { continue; } - printf("%s ", tmp_mcc ); - printf("%s ", tmp_mnc ); - if ( jname != NULL ) - printf("%s ", json_object_to_json_string( jname ) ); - if ( jfullname != NULL ) - printf("%s ", json_object_to_json_string( jfullname ) ); + for (j=0; j<6; j++,(j<6)?printf(","):0) + { + if ( jarr[j] != NULL ) + { + const char *str = json_object_to_json_string( jarr[j] ); + k=1; + while (str[k+1]!=0x0) + { + if (str[k] != '\\') + putc(str[k],stdout); + k++; + } + } + } printf("\n"); cnt_apn++; } |