From 5bfe1cdae38c39a4fe7ca891aac31233165e3531 Mon Sep 17 00:00:00 2001 From: Artur Artamonov Date: Thu, 18 Jul 2013 16:51:06 +0300 Subject: query3g pre-release changes. added modem info search, added apnfinder by id, apn provider database, supported modem database --- package/query3g/src/Makefile | 6 +++ package/query3g/src/apnprovider | Bin 0 -> 48352 bytes package/query3g/src/apnprovider.c | 91 +++++++++++++++++++++++++++++++++++ package/query3g/src/modemname | Bin 0 -> 50332 bytes package/query3g/src/modemname.c | 97 ++++++++++++++++++++++++++++++++++++++ 5 files changed, 194 insertions(+) create mode 100644 package/query3g/src/Makefile create mode 100755 package/query3g/src/apnprovider create mode 100644 package/query3g/src/apnprovider.c create mode 100755 package/query3g/src/modemname create mode 100644 package/query3g/src/modemname.c (limited to 'package/query3g/src') diff --git a/package/query3g/src/Makefile b/package/query3g/src/Makefile new file mode 100644 index 000000000..36b8d40c4 --- /dev/null +++ b/package/query3g/src/Makefile @@ -0,0 +1,6 @@ +CC=gcc +CFLAGS=-Wall -g3 +LDFLAGS=-ljson-c -lc +make: + $(CC) apnprovider.c -o apnprovider $(CFLAGS) $(LDFLAGS) + $(CC) modemname.c -o modemname $(CFLAGS) $(LDFLAGS) diff --git a/package/query3g/src/apnprovider b/package/query3g/src/apnprovider new file mode 100755 index 000000000..7fee85c8a Binary files /dev/null and b/package/query3g/src/apnprovider differ diff --git a/package/query3g/src/apnprovider.c b/package/query3g/src/apnprovider.c new file mode 100644 index 000000000..c5f812073 --- /dev/null +++ b/package/query3g/src/apnprovider.c @@ -0,0 +1,91 @@ +#include +#include +#include + +#include + +#define FNAME "/usr/share/3gmodem/apn.json" + +int main( int argc, char **argv ) +{ + int ret=0; + int cnt_apn=0; + if ( argc != 2 ) + { + printf(" %s [APN_Provider_5_symbols]\n", argv[0]); + printf("%s 12345\n", argv[0]); + return -1; + } else if ( strlen(argv[1]) != 5 ) + { + printf("ERR: Only 5 number apn supported\n"); + return -1; + } + + char *apnnumber = argv[1]; + char mcc[4]; + char mnc[3]; + memcpy( mcc, apnnumber, 3 ); + mcc[3] = 0; + memcpy( mnc, apnnumber+3 , 2 ); + mnc[2] = 0; + + int i; + struct json_object *jo = json_object_from_file( FNAME ); + if ( jo == NULL ) + { + printf("ERR:Cannot get file\n"); + ret = 1; + goto free_resources; + } + + struct json_object *jarr = json_object_object_get( jo, "data" ); + if ( jarr == NULL ) + { + printf("ERR:Cannot get data object\n"); + ret = 1; + goto free_resources; + } + + if ( !json_object_is_type( jarr, json_type_array ) ) + { + printf("ERR:Object isnot array\n"); + ret = 1; + goto free_resources; + } + + for (i=0; i +#include +#include + +#include + +#define MAX_MANUF_NAME 128 +#define MAX_MODEL_NAME 128 + +#define FNAME "/usr/share/3gmodem/modem.json" + +int main( int argc, char **argv ) +{ + int i,j,k; + int ret=0; + int cnt_apn=0; + if ( argc != 3 ) + { + printf(" %s [Manufacturer Name] [Modem model]\n", argv[0]); + printf("%s huawei e180\n", argv[0]); + return -1; + } + + char *str_manuf = argv[1]; + char *str_model = argv[2]; + char manuf[MAX_MANUF_NAME+1]; memset( manuf, 0, MAX_MANUF_NAME+1 ); + char model[MAX_MODEL_NAME+1]; memset( model, 0, MAX_MODEL_NAME+1 ); + + //printf( "%d", ((i=strlen(str_manuf))