#namedTuple defines
atCmd = namedtuple('atCmd', ['cmdText','timeout','responses'])
at = atCmd("AT\r", 300, ["OK", "ERROR"]) # AT
atE0 = atCmd("ATE0\r", 300, ["OK", "ERROR"]) # Command Echo
atQGSN = atCmd("AT+QGSN\r", 3000, ["OK", "ERROR"]) # Gsm Serial Number
atCCID = atCmd("AT+CCID\r", 300, ["OK", "ERROR"]) # Sim Abone No
atQNITZ = atCmd("AT+QNITZ=1\r", 300, ["OK", "ERROR"]) # Network Time Sync Enable
atCTZU = atCmd("AT+CTZU=3\r", 300, ["OK", "ERROR"]) # Localized Time Sync
atCTZR = atCmd("AT+CTZR=1\r", 300, ["OK", "ERROR"]) # Time Sync Bildirimi
atCCLK = atCmd("AT+CCLK?\r", 1000, ["OK", "ERROR"]) # Saat?
atQGNSSC = atCmd("AT+QGNSSC=1\r", 300, ["OK", "ERROR"]) # GNSS Power On
atQGNSS = atCmd("AT+QGNSS=0\r", 300, ["OK", "ERROR","+CME ERROR:"]) # GNSS NMEA Tipi
atCMGF = atCmd("AT+CMGF=1\r", 300, ["OK", "ERROR","+CME ERROR:"]) # SMS Format
atCNMI = atCmd("AT+CNMI=2,1\r", 300, ["OK", "ERROR","+CME ERROR:"]) # SMS Notification Type
atQNSTATUS = atCmd("AT+QNSTATUS\r", 1000, ["OK", "ERROR"]) # Network Status
atCSQ = atCmd("AT+CSQ\r", 300, ["OK", "ERROR", "+CME ERROR:"]) # Signal Quality
atCREG = atCmd("AT+CREG?\r", 300, ["OK", "ERROR","+CME ERROR:","+CREG:"]) # Signal Quality
atCMGL = atCmd("""AT+CMGL="REC UNREAD"\r""",3000, ["OK", "ERROR"])
atCMGD = atCmd("AT+CMGD=1,4\r",3000, ["OK", "ERROR"])
atQGNSSRD = atCmd("AT+QGNSSRD?\r",3000,["OK", "ERROR"])
atCSMP = atCmd("AT+CSMP=17,167,0,0\r",1000,["OK", "ERROR"])
atCSCS = atCmd("""AT+CSCS="GSM"\r""",1000,["OK", "ERROR"])
atCMGS = atCmd("""AT+CMGS="{}"\r""",5000,["OK", "ERROR"])
atQIFGCNT = atCmd("AT+QIFGCNT=0\r",1000,["OK", "ERROR"])
atQICSGP = atCmd('AT+QICSGP=1,"INTERNET","",""\r',1000,["OK", "ERROR"])
atQIREGAPP=atCmd("AT+QIREGAPP\r",5000,["OK", "ERROR"])
atCGATT = atCmd("AT+CGATT?\r",5000,["OK", "ERROR"])
atQIACT = atCmd("AT+QIACT\r",5000,["OK", "ERROR"])
atQLOCCFG = atCmd("AT+QLOCCFG?\r",5000,["OK", "ERROR"])
atQCELLLOC = atCmd("AT+QCELLLOC\r",5000,["OK", "ERROR"])