diff options
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++;  		} | 
