/* NITZDemo.c: NITZ adjust the RTC demo Compiler: BC++ 3.1, Turbo C++ 1.01 (3.01) MSVC 1.52 Compile mode: Large Project: NITZDemo.c ..\..\lib\uPAC5000.Lib ..\..\lib\OS7_COM.lib ..\lib\GSM.lib Hardware: uPAC-5000 Note The OS7_COM.lib library is required for using the GSM member functions. [Mar 15, 2011] Create by Malo */ #include #include #include #include #include #include "..\..\lib\uPAC5000.h" #include "..\..\lib\OS7_COM.h" #include "..\lib\GSM.h" int main(void) { int iAction=1, quit=1; int libVer; char libDate[20]; int Result=0; SYSProfile sysProfile; InitLib(); /* InitLib() must be called before other functions in the library may be used */ //-- print uPAC5000.lib version GetLibDate(libDate); libVer=GetLibVersion(); Print("uPAC5000.Lib vesion %X.%02X, Date:%s\r\n", libVer>>8, libVer&0xff, libDate); //-- print GSM.lib version GM_SYS_GetLibDate(libDate); libVer = GM_SYS_GetLibVersion(); Print("GSM LIB vesion %X.%02X, Date:%s\r\n", libVer>>8, libVer&0xff, libDate); //---- init modem strcpy(sysProfile.PINCode, "0000"); //The pin code of SIM card, ex: "0000" sysProfile.modemPort = 11; //modem port number. G-4500 = 4, uP-5000 = 11 sysProfile.hardware = 2; //hardware type. 1: G-4500, 2: uPAC-5000, 3: iP-8000, 0: GTM-201 if( (Result = GM_SYS_InitModem(sysProfile)) == GM_NOERROR) Print("init_modem success!!\r\n"); else{ Print("init_modem fail!! return value is %d\r\n", Result); return 1; } //--check Could the modem service? while(GM_SYS_CheckModemStatus() != GM_NOERROR) { Print("wait modem register...\r\n"); DelayMs(1000); } Print("modem registered!!\r\n"); while(iAction!=0) { iAction=0; quit=0; Print("\r\n"); Print("1) NITZ Demo\r\n"); Print("2) check signal quality\r\n"); Print("3) check registered?\r\n"); Print("\r\n"); Print("0) Quits demo program\r\n"); Print("Choose an option and press [Enter]: "); Scanf("%d", &iAction); Print("\r\n"); switch(iAction) { case 1: Print("NITZ Demo\r\n Please wait a minute for RTC updating\r\n"); GM_SYS_EnableNITZ(1); GM_SYS_NITZUpdateRTC(); while(GM_SYS_CheckNITZ()==2) { Print("wait NITZ updating RTC\r\n"); DelayMs(1000); } if(GM_SYS_CheckNITZ() == 0) Print("NITZ update RTC --> fail\r\n"); else Print("NITZ update RTC --> success\r\n"); break; case 2://check signal quality Result = GM_SYS_CheckSignal(); Print("-----------------------------------\r\n"); Print("signal value = %d\r\n", Result); Print("signal quality:\r\n"); Print("0 -113 dBm or less\r\n"); Print("1 -111 dBm\r\n"); Print("2~30 -109... -53 dBm\r\n"); Print("31 -51 dBm or greater\r\n"); Print("99 not known or not detectable\r\n"); Print("-----------------------------------\r\n"); break; case 3://check register value Result = GM_SYS_CheckReg(); Print("-----------------------------------\r\n"); Print("register value = %d (0:no register, 1:registered, 2:registering)\r\n", Result); Print("register flag:\r\n"); Print(" 0: not registered\r\n"); Print(" 1: registered, home network\r\n"); Print(" 2: not registered, and searching...\r\n"); Print(" 3: registration denied\r\n"); Print(" 4: unknown\r\n"); Print(" 5: registered, roaming\r\n"); Print("-----------------------------------\r\n"); break; case 0: default: quit=1; break; }//end switch() if(!quit) { Print("Press any key to continue...\r\n"); Getch(); } }//end while(1) //must close before program ending to release you resource GM_SYS_CloseModem(0); //== Close the modem, 0:not turn off modem, 1:turn off modem Print("Please press ENTER to exit...\r\n"); Getch(); return 0; }