summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Artamonov <freeartman@wechall.net>2013-07-24 22:49:24 +0300
committerArtur Artamonov <freeartman@wechall.net>2013-07-24 22:49:24 +0300
commit4ed5985ada0f0420d69d7d959ecc3c9c8515efa0 (patch)
tree8a487220e49ce90fee969cbd2a7b2347ea57a28b
parentd27678cf375bbb473e5111084c1c53a4081731d6 (diff)
query3g fixed apnprovider output, added apnprovider option(when web part will ready uncomment it)
-rw-r--r--package/query3g/files/usr/bin/3gdetect.sh193
-rwxr-xr-xpackage/query3g/files/usr/bin/query3g13
-rw-r--r--package/query3g/src/apnprovider.c25
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++;
}