Example #1
0
def initGsmNetwork(inSTR1, inSTR2):
# This function sets all Network specific settings
    # Input Parameter Definitions
    #   inSTR1:     GSM Network (ATT or GSM)
    #   inSTR2:     AT#BND=inSTR2 (0,1,2,or 3)

    tmpReturn = -1

    try:

        #res = ATC.sendAtCmd("AT+CFUN=1",ATC.properties.CMD_TERMINATOR,0,2)                  #Set Automatic Operator Selection        

        res = ATC.getFirmwareRev()
        if (res == -1):
            return tmpReturn

        res = ATC.sendAtCmd("AT#SELINT?",ATC.properties.CMD_TERMINATOR,0,2)                 #query SELINT setting
        if (res != "#SELINT: 2"):
            res = ATC.sendAtCmd('AT#SELINT=2',ATC.properties.CMD_TERMINATOR,0,2)            #use of most recent AT command set
            res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)                  #Save Profile
            res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)                  #Save Settings
            return tmpReturn

        if (ATC.properties.firmwareMajor == '07'):

            #Firmware specific settings                
            if (ATC.properties.firmwareMinor == '02'):
                res = ATC.sendAtCmd('AT#AUTOBND?',ATC.properties.CMD_TERMINATOR,3,2)	        #query AUTOBND setting
                if (res != "#AUTOBND: 1"):
                    res = ATC.sendAtCmd('AT#AUTOBND=1',ATC.properties.CMD_TERMINATOR,3,2)	    #enable Quad band system selection
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn
                
            elif (ATC.properties.firmwareMinor == '03'):
                res = ATC.sendAtCmd('AT#AUTOBND?',ATC.properties.CMD_TERMINATOR,3,2)	        #query AUTOBND setting
                if (res != "#AUTOBND: 2"):
                    res = ATC.sendAtCmd('AT#AUTOBND=2',ATC.properties.CMD_TERMINATOR,3,2)	    #enable Quad band system selection
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn
            
            #Apply Network Specific settings see myApp.xxxx assignment above
            if (inSTR1 == "ATT"):
                #Set module to work on US ATT Network  
                res = ATC.sendAtCmd("AT#ENS?",ATC.properties.CMD_TERMINATOR,0,2)                #query ENS setting
                if (res != "#ENS: 1"):
                    res = ATC.sendAtCmd('AT#ENS=1',ATC.properties.CMD_TERMINATOR,0,2)           #sets all ATT requirements
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn

                #Firmware specific settings                
                if (ATC.properties.firmwareMinor == '02'):
                    res = ATC.sendAtCmd("AT#PLMNMODE?",ATC.properties.CMD_TERMINATOR,0,2)       #query PLMN setting
                    if (res != "#PLMNMODE: 1"):
                        res = ATC.sendAtCmd('AT#PLMNMODE=1',ATC.properties.CMD_TERMINATOR,0,2)  #enable EONS (enhanced operator naming scheme)
                        res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)          #Save Profile
                        res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)          #Save Settings
                        return tmpReturn

            else:
                #Set module to work on all other Networks
                res = ATC.sendAtCmd('AT#ENS?',ATC.properties.CMD_TERMINATOR,0,2) 
                if (res != "#ENS: 0"):
                    res = ATC.sendAtCmd('AT#ENS=0',ATC.properties.CMD_TERMINATOR,0,2)           #disable all ATT requirements
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn
                
                res = ATC.sendAtCmd("AT#BND?",ATC.properties.CMD_TERMINATOR,0,2)                #query BND setting
                if (res != "#BND: " + inSTR2):
                    res = ATC.sendAtCmd('AT#BND='+ inSTR2,ATC.properties.CMD_TERMINATOR,3,2)    #set bands to 850/1900 
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn


                res = ATC.sendAtCmd("AT#PLMNMODE?",ATC.properties.CMD_TERMINATOR,0,2)           #query PLMN setting
                if (res != "#PLMNMODE: 1"):
                    res = ATC.sendAtCmd('AT#PLMNMODE=1',ATC.properties.CMD_TERMINATOR,0,2)      #enable EONS (enhanced operator naming scheme)
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn

                res = wait4SIMReady()                                                           #wait for SIM to be ready for use
                res = ATC.sendAtCmd("AT#STIA?",ATC.properties.CMD_TERMINATOR,0,2)               #query STIA settings
                if ((res.find('STIA: 0,1')==-1) and (res.find('STIA: 1,1')==-1)):
                    res = ATC.sendAtCmd('AT#STIA=1,10',ATC.properties.CMD_TERMINATOR,0,2)       #enable SAT - SIM Application Tool-Kit                
                    res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                    res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                    return tmpReturn
            
        elif (ATC.properties.firmwareMajor == '10'):

                if (inSTR1 == "ATT"):

                    #Set module to work on US ATT Network  
                    res = ATC.sendAtCmd("AT#ENS?",ATC.properties.CMD_TERMINATOR,0,2)                #query ENS setting
                    if (res != "#ENS: 1"):
                        res = ATC.sendAtCmd('AT#ENS=1',ATC.properties.CMD_TERMINATOR,0,2)           #sets all ATT requirements
                        res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                        res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                        return tmpReturn
                                            
                else:
                    
                    res = ATC.sendAtCmd('AT#AUTOBND?',ATC.properties.CMD_TERMINATOR,3,2)	        #query AUTOBND setting
                    if (res != "#AUTOBND: 2"):
                        res = ATC.sendAtCmd('AT#AUTOBND=2',ATC.properties.CMD_TERMINATOR,3,2)	    #enable Quad band system selection
                        res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                        res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                        return tmpReturn

                    res = ATC.sendAtCmd("AT#PLMNMODE?",ATC.properties.CMD_TERMINATOR,0,2)           #query PLMN setting
                    if (res != "#PLMNMODE: 1"):
                        res = ATC.sendAtCmd('AT#PLMNMODE=1',ATC.properties.CMD_TERMINATOR,0,2)      #enable EONS (enhanced operator naming scheme)
                        res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                        res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                        return tmpReturn

                    res = wait4SIMReady()                                                           #wait for SIM to be ready for use
                    res = ATC.sendAtCmd("AT#STIA?",ATC.properties.CMD_TERMINATOR,0,2)               #query STIA settings
                    if ((res.find('STIA: 0,1')==-1) and (res.find('STIA: 1,1')==-1)):
                        res = ATC.sendAtCmd('AT#STIA=1,10',ATC.properties.CMD_TERMINATOR,0,2)       #enable SAT - SIM Application Tool-Kit                
                        res = ATC.sendAtCmd('AT&P0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Profile
                        res = ATC.sendAtCmd('AT&W0',ATC.properties.CMD_TERMINATOR,0,2)              #Save Settings
                        return tmpReturn



        else:

            print 'Unknown Firmware'                

        tmpReturn = 0
        
    except:
        printException("initGsmNetwork()")

    return tmpReturn