Esempio n. 1
0
 def ping(self, host, verbose):
     ser = self.myserial
     self.create_packet_session()
     mycmd = 'AT+QPING=1,\"' + host + '\",4,4'  # Context, host, timeout, pingnum
     rmutils.write(
         ser, mycmd,
         delay=6)  # Write a ping command; Wait timeout plus 2 seconds
Esempio n. 2
0
 def get_psm_info(self, verbose):
     ser = self.myserial
     # Check on urc setting
     psmsettings = rmutils.write(ser, 'AT+CGEREP?', verbose=verbose)  # Check if urc enabled
     # Check general Power Savings setting
     rmutils.write(ser, 'AT+UPSV?', verbose=verbose)  # Get general power savings config
     return super().get_psm_info('+UCPSMS', 2, 2, verbose)   
Esempio n. 3
0
 def udp_echo(self, host, port, echo_delay, echo_wait, verbose=True):
     echo_host = '35.212.147.4'
     echo_port = '3030'
     listen_port = '3032'
     ser = self.myserial
     # Create a packet session in case there is not one
     self.create_packet_session()
     # Close socket if open
     rmutils.write(ser, 'AT#SL=1,0,' + listen_port + ',0', delay=1)
     rmutils.write(ser, 'AT#SH=1', delay=1)
     # Create UDP socket for sending and receiving
     mycmd = 'AT#SD=1,1,' + echo_port + ',"' + echo_host + '",0,' + listen_port + ',1,0,1'
     rmutils.write(ser, mycmd, delay=1)
     # Send our UDP packet
     udppacket = str(
         '{"delay":' + str(echo_delay * 1000) + ', "ip":' + self.my_ip 
         + ',"port":' + listen_port + '}' + chr(26))
     rmutils.write(ser, 'AT#SSEND=1', udppacket, delay=1)  # Sending packets to socket
     aerisutils.print_log('Sent Echo command to remote UDP server')
     # Wait for data
     if echo_wait > 0:
         echo_wait = round(echo_wait + echo_delay)
         # Wait for data to come in; handle case where we go to sleep
         rmutils.wait_urc(ser, echo_wait, self.com_port, returnonreset=True,
                          returnonvalue='APP RDY')
         # Try to read data
         rmutils.write(ser, 'AT#SRECV=1,1500,1', delay=1)
Esempio n. 4
0
 def udp_echo(self, host, port, echo_delay, echo_wait, verbose=True):
     ser = self.myserial
     echo_host = '35.212.147.4'
     port = '3030'
     write_sock = '0'  # Use socket 0 for sending
     if self.udp_listen(port, 0, verbose=verbose):  # Open listen port
         aerisutils.print_log('Listening on port: ' + port)
     else:
         return False
     # Open UDP socket to the host for sending echo command
     rmutils.write(ser, 'AT+QICLOSE=0', delay=1,
                   verbose=verbose)  # Make sure no sockets open
     mycmd = 'AT+QIOPEN=1,0,\"UDP\",\"' + echo_host + '\",' + port + ',0,1'
     rmutils.write(
         ser, mycmd, delay=1,
         verbose=verbose)  # Create UDP socket connection as a client
     sostate = rmutils.write(ser, 'AT+QISTATE=1,0',
                             verbose=verbose)  # Check socket state
     if "UDP" not in sostate:  # Try one more time with a delay if not connected
         sostate = rmutils.write(ser,
                                 'AT+QISTATE=1,0',
                                 delay=1,
                                 verbose=verbose)  # Check socket state
     # Send data
     udppacket = str('{"delay":' + str(echo_delay * 1000) + ', "ip":"' +
                     self.my_ip + '","port":' + str(port) + '}')
     #udppacket = str('Echo test!')
     # print('UDP packet: ' + udppacket)
     mycmd = 'AT+QISEND=0,' + str(len(udppacket))
     rmutils.write(ser, mycmd, udppacket, delay=0,
                   verbose=verbose)  # Write udp packet
     rmutils.write(ser, 'AT+QISEND=0,0',
                   verbose=verbose)  # Check how much data sent
     aerisutils.print_log('Sent echo command: ' + udppacket)
     if echo_wait == 0:
         # True indicates we sent the echo
         return True
     else:
         echo_wait = round(echo_wait + echo_delay)
         vals = rmutils.wait_urc(
             ser,
             echo_wait,
             self.com_port,
             returnonreset=True,
             returnonvalue='OK'
         )  # Wait up to X seconds to confirm data sent
         #print('Return: ' + str(vals))
         vals = rmutils.wait_urc(
             ser,
             echo_wait,
             self.com_port,
             returnonreset=True,
             returnonvalue='+QIURC:'
         )  # Wait up to X seconds for UDP data to come in
         vals = super().parse_response(vals, '+QIURC:')
         print('Return: ' + str(vals))
         if len(vals) > 2 and int(vals[2]) == len(udppacket):
             return True
         else:
             return False
Esempio n. 5
0
 def gps_config(self):
     ser = self.myserial
     # Enable GPSOneExtra
     rmutils.write(ser, 'AT+QGPSXTRA=1')
     # Download and save GPSOneExtra data file
     print('Downloading GPSOneExtra data file.')
     #url = 'http://xtrapath1.izatcloud.net/xtra2.bin'
     url = 'http://xtrapath4.izatcloud.net/xtra2.bin'
     r = requests.get(url, allow_redirects=True)
     src_path = str(pathlib.Path.home()) + '/'
     f = open(src_path + 'xtra2.bin', 'wb')
     f.write(r.content)
     f.close()
     # Upload to the module
     self.file_upload(src_path, 'UFS:', 'xtra2.bin')
     # Inject time
     from datetime import datetime, timezone
     my_datetime = datetime.now(timezone.utc).strftime("%Y/%m/%d,%H:%M:%S")
     rmutils.write(ser, 'AT+QGPSXTRATIME=0,"' + my_datetime + '",1,1,3500')
     # Inject data file
     rmutils.write(ser, 'AT+QGPSXTRADATA="UFS:xtra2.bin"')
     # Now we can delete the data file from the file system
     rmutils.write(ser, 'AT+QFDEL="UFS:xtra2.bin"')
     # Now turn on gps
     rmutils.write(ser, 'AT+QGPS=1')
     return True
Esempio n. 6
0
 def list_app(self):
     ser = self.myserial
     mycmd = 'AT+QFLST="EUFS:/datatx/*"'
     #mycmd = 'AT+QFLST="EUFS:*"'
     rmutils.write(ser, mycmd)
     #rmutils.wait_urc(ser, 20, self.com_port)
     return True
Esempio n. 7
0
 def sms_wait(self, time, verbose):
     rmutils.write(
         self.myserial,
         'AT+QURCCFG="urcport","usbat"')  # Send URCs to USB AT port
     rmutils.write(self.myserial,
                   'AT+CNMI=2,1,0,1,0')  # Enable URC notifications
     return super().sms_wait(time, verbose)
Esempio n. 8
0
 def enable_psm(self, tau_time, atime, verbose=True):
     ser = self.myserial
     super().enable_psm(tau_time, atime, verbose)
     rmutils.write(ser, 'AT+QCFG="psm/urc",1',
                   verbose=verbose)  # Enable urc for PSM
     aerisutils.print_log(
         'PSM is enabled with TAU: {0} s and AT: {1} s'.format(
             str(tau_time), str(atime)))
Esempio n. 9
0
 def delete_app(self, filename):
     ser = self.myserial
     #filename = 'oem_app_disable.ini'
     #filename = 'program.bin'
     path = '/datatx/' + filename
     mycmd = 'AT+QFDEL="EUFS:' + path + '"'
     rmutils.write(ser, mycmd)
     return True
Esempio n. 10
0
 def lookup(self, host, verbose):
     ser = self.myserial
     self.create_packet_session()
     rmutils.write(ser, 'AT+QIDNSCFG=1')  # Check DNS server
     mycmd = 'AT+QIDNSGIP=1,\"' + host + '\"'
     rmutils.write(ser, mycmd, timeout=0)  # Write a dns lookup command
     rmutils.wait_urc(
         ser, 4, self.com_port
     )  # Wait up to 4 seconds for results to come back via urc
Esempio n. 11
0
 def close_socket(self, socket_id = None, verbose=True):
     ser = self.myserial
     if socket_id is None:
         for i in range(7):
             # Close socket
             mycmd = 'AT+USOCL=' + str(i)
             rmutils.write(ser, mycmd, verbose=verbose)
     else:
         mycmd = 'AT+USOCL=' + str(socket_id)
         rmutils.write(ser, mycmd, verbose=verbose)
Esempio n. 12
0
 def udp_listen(self,
                listen_port,
                listen_wait,
                verbose=True,
                returnbytes=False):
     '''Starts listening for UDP packets.
     Parameters
     ----------
     listen_port : int
         The port on which to listen.
     listen_wait : int
         Greater than zero if this method should wait for that many seconds for received packets.
         If less than or equal to zero, this method will return a boolean type.
     verbose : bool, optional
     returnbytes : bool, optional
         If True, returns bytes, instead of a string.
     Returns
     -------
     s : bool
         False if a packet data session was not active, or if setting up the UDP socket failed.
         True if the modem successfully started listening for packets.
     m : str or bytes
         Any URCs that arrived while listening for packets.
     '''
     ser = self.myserial
     read_sock = '1'  # Use socket 1 for listen
     if self.create_packet_session(verbose=verbose):
         aerisutils.print_log('Packet session active: ' + self.my_ip)
     else:
         return False
     # Open UDP socket for listen
     mycmd = 'AT+QIOPEN=1,' + read_sock + ',"UDP SERVICE","127.0.0.1",0,' + str(
         listen_port) + ',1'
     rmutils.write(ser, mycmd, delay=1,
                   verbose=verbose)  # Create UDP socket connection
     sostate = rmutils.write(ser,
                             'AT+QISTATE=1,' + read_sock,
                             verbose=verbose)  # Check socket state
     if "UDP" not in sostate:  # Try one more time with a delay if not connected
         sostate = rmutils.write(ser,
                                 'AT+QISTATE=1,' + read_sock,
                                 delay=1,
                                 verbose=verbose)  # Check socket state
         if "UDP" not in sostate:
             return False
     # Wait for data
     if listen_wait > 0:
         return rmutils.wait_urc(
             ser,
             listen_wait,
             self.com_port,
             returnonreset=True,
             returnbytes=returnbytes
         )  # Wait up to X seconds for UDP data to come in
     return True
Esempio n. 13
0
 def download_app(self):
     ser = self.myserial
     #filename = 'oem_app_disable.ini'
     filename = 'oem_app_path.ini'
     mycmd = 'AT+QFDWL="EUFS:/datatx/' + filename + '"'
     rmutils.write(ser, mycmd)
     char = ''
     while char is not None:
         char = self.getc()
         print('Char: ' + str(char))
     return True
Esempio n. 14
0
 def create_packet_session(self):
     ser = self.myserial
     #rmutils.write(ser, 'AT#SCFG?')  # Prints Socket Configuration
     #constate = rmutils.write(ser, 'AT#SGACT?', verbose=self.verbose)  # Check if we are already connected
     if not self.get_packet_info():  # Check if already in a packet sessiion
         rmutils.write(ser, 'AT#SGACT=1,1', delay=1, verbose=self.verbose)  # Activate context / create packet session
         # constate = rmutils.write(ser, 'AT#SGACT?', verbose=self.verbose)  # Verify that we connected
         # self.parse_connection_state(constate)
         if not self.get_packet_info():
             return False
     response = rmutils.write(ser, 'AT+CGPADDR=1', delay=1)
     self.get_module_ip(response)
     return True
Esempio n. 15
0
 def get_psm_info(self, verbose):
     ser = self.myserial
     psmsettings = rmutils.write(
         ser, 'AT+QPSMCFG?',
         verbose=verbose)  # Check PSM feature mode and min time threshold
     vals = super().parse_response(psmsettings, '+QPSMCFG:')
     print('Minimum seconds to enter PSM: ' + vals[0])
     print('PSM mode: ' + self.psm_mode(int(vals[1])))
     # Check on urc setting
     psmsettings = rmutils.write(ser, 'AT+QCFG="psm/urc"',
                                 verbose=verbose)  # Check if urc enabled
     vals = super().parse_response(psmsettings, '+QCFG: ')
     print('PSM unsolicited response codes (urc): ' + vals[1])
     # Query settings
     return super().get_psm_info('+QPSMS', 2, 10, verbose)
Esempio n. 16
0
 def udp_echo(self, host, port, echo_delay, echo_wait, verbose=True):
     ser = self.myserial
     echo_host = host
     listen_port = port
     udp_socket = 0
     # echo_host = '195.34.89.241' # ublox echo server
     # port = '7' # ublox echo server port
     # Make sure we have a packet session
     self.create_packet_session(verbose=verbose)
     # Close our read socket
     self.close_socket(udp_socket, verbose)
     # Create a UDP socket
     mycmd = 'AT+USOCR=17,' + str(listen_port)
     socket_id = (super().get_values_for_cmd(mycmd,'+USOCR:'))[0]
     #print('Socket ID = ' + str(socket_id))
     # Send data
     udppacket = str(
                 '{"delay":' + str(echo_delay * 1000) + ', "ip":"' 
                 + self.my_ip + '","port":' + str(listen_port) + '}')
     mycmd = 'AT+USOST=' + str(socket_id) + ',"' + echo_host + '",' + str(port) + ',' + str(len(udppacket))
     rmutils.write(ser, mycmd, udppacket, delay=0, verbose=verbose)  # Write udp packet
     aerisutils.print_log('Sent echo command: ' + udppacket, verbose)
     # Always wait long enough to verify packet sent
     vals = rmutils.wait_urc(ser, 5, self.com_port, returnonvalue='OK', verbose=verbose)
     #print('Return: ' + str(vals))
     if echo_wait == 0:
         # True indicates we sent the echo
         return True
     else:
         # Wait for data
         echo_wait = round(echo_wait + echo_delay)
         # vals = rmutils.wait_urc(ser, echo_wait, self.com_port, returnonreset=True,
                          # returnonvalue='APP RDY')  # Wait up to X seconds for UDP data to come in
         vals = rmutils.wait_urc(ser, echo_wait, self.com_port, returnonreset=True,
                          returnonvalue='+UUSORF:', verbose=verbose)
         #print('Return: ' + str(vals))
         mycmd = 'AT+USORF=0,' + str(len(udppacket))
         #vals = rmutils.write(ser, mycmd, verbose=verbose)  # Read from socket
         vals = (super().get_values_for_cmd(mycmd,'+USORF:'))
         #print('Return: ' + str(vals))
         if len(vals) > 3 and int(vals[3]) == len(udppacket):
             return True
         else:
             return False
Esempio n. 17
0
 def network_config_ec25(self):
     ser = self.myserial
     # Set scan sequence to LTE
     rmutils.write(ser, 'AT+QCFG="nwscanseq",04')
     # Set scan mode to LTE
     rmutils.write(ser, 'AT+QCFG="nwscanmode",3,1')
     # Quectel - Service Domain 1 = PS; 2 = CS & PS
     rmutils.write(ser, 'AT+QCFG="servicedomain",2,1')
     #rmutils.write(ser, 'AT+QCFG="servicedomain",1,1')
     # Quectel - Enable roaming 2 = enabled
     rmutils.write(ser, 'AT+QCFG="roamservice",2,1')
     return True
Esempio n. 18
0
 def create_packet_session(self, verbose=True):
     ser = self.myserial
     rmutils.write(ser, 'AT+CGDCONT=1,"IP","' + self.apn + '"', verbose=verbose)
     rmutils.write(ser, 'AT+CGACT=1,1', verbose=verbose)  # Activate context / create packet session
     constate = rmutils.write(ser, 'AT+CGDCONT?', verbose=verbose)  # Check if we are already connected
     if not self.parse_constate(constate):  # Returns packet session info if in session
         rmutils.write(ser, 'AT+CGACT=1,1', verbose=verbose)  # Activate context / create packet session
         constate = rmutils.write(ser, 'AT+CGDCONT?', verbose=verbose)  # Verify that we connected
         self.parse_constate(constate)
         if not self.parse_constate(constate):
             return False
     return True
Esempio n. 19
0
 def load_app(self, path, filename):
     ser = self.myserial
     #filename = 'oem_app_path.ini'
     #filename = 'program.bin'
     #path = '/home/pi/share/pio-bg96-1/.pio/build/bg96/' + filename
     stats = os.stat(path + filename)
     filesize = stats.st_size
     print('Size of file is ' + str(stats.st_size) + ' bytes')
     f = open(path + filename, 'rb')
     mycmd = 'AT+QFUPL="EUFS:/datatx/' + filename + '",' + str(filesize)
     rmutils.write(ser, mycmd)
     i = 0
     while i < filesize:
         self.putc(f.read(1))
         i += 1
     f.close()
     rmutils.wait_urc(
         ser, 5, self.com_port
     )  # Wait up to 5 seconds for results to come back via urc
     return True
Esempio n. 20
0
 def file_upload(self, src_path, dst_path, filename):
     ser = self.myserial
     # Ensure source file exists
     stats = os.stat(src_path + filename)
     filesize = stats.st_size
     print('Size of file is ' + str(stats.st_size) + ' bytes')
     # Open source file for reading
     f = open(src_path + filename, 'rb')
     # Issue upload command to destination path
     #mycmd = 'AT+QFUPL="EUFS:/datatx/' + filename+ '",' + str(filesize)
     mycmd = 'AT+QFUPL="' + dst_path + filename + '",' + str(filesize)
     rmutils.write(ser, mycmd)
     i = 0
     while i < filesize:
         self.putc(f.read(1))
         i += 1
     f.close()
     rmutils.wait_urc(
         ser, 5, self.com_port
     )  # Wait up to 5 seconds for results to come back via urc
     return True
Esempio n. 21
0
 def http_get(self, url, verbose):
     url_values = urlsplit(url)  # Parse URL to get Host & Path
     if url_values.netloc:
         host = url_values.netloc
         path = url_values.path
     else:
         host = url_values.path
         path = '/'
     ser = self.myserial
     self.create_packet_session()
     rmutils.write(ser, 'AT#HTTPCFG=0,\"' + host + '\",80,0,,,0,120,1')  # Establish HTTP Connection
     rmutils.write(ser, 'AT#HTTPQRY=0,0,\"' + path + '\"', delay=2)  # Send HTTP Get
     rmutils.write(ser, 'AT#HTTPRCV=0', delay=2)  # Receive HTTP Response
     rmutils.write(ser, 'AT#SH=1', delay=2)  # Close socket
Esempio n. 22
0
def test(ctx, timeout, psmtau, psmat, delay):
    """Test PSM mode 
    \f

    """
    echo_host = '35.212.147.4'
    echo_port = 3030
    echo_delay = delay
    echo_wait = 4
    # Enable PSM
    my_module.enable_psm(psmtau, psmat, verbose=ctx.obj['verbose'])
    time.sleep(1.0) # Sleep to allow enable to complete
    # Make sure network allowed the configuration we asked for
    psm_settings = my_module.get_psm_info(ctx.obj['verbose'])
    if 'tau_network' not in psm_settings:
        exit()
    tau_network = int(psm_settings['tau_network'])
    if tau_network - psmtau > 120:
        my_module.disable_psm(verbose=ctx.obj['verbose'])
        aerisutils.print_log('Network settings not within tolerance.')
        return False
    aerisutils.print_log('Network tau: ' + str(tau_network))
    # Get ready to do some timing
    start_time = time.time()
    elapsed_time = 0
    aerisutils.print_log('Starting test for {0} seconds'.format(timeout))
    while elapsed_time < timeout:
        #my_module.udp_echo(delay, 4, verbose=ctx.obj['verbose'])
        success = my_module.udp_echo(echo_host, echo_port, echo_delay, echo_wait, verbose=ctx.obj['verbose'])        
        aerisutils.print_log('Success: ' + str(success))
        rmutils.wait_urc(my_module.myserial, timeout, my_module.com_port, returnonreset=True, returnonvalue='APP RDY',
                         verbose=ctx.obj['verbose'])  # Wait up to X seconds for app rdy
        time.sleep(5.0) # Sleep in case it helps telit be able to connect
        my_module.init_serial(ctx.obj['comPort'], ctx.obj['apn'], verbose=ctx.obj['verbose'])
        rmutils.write(my_module.myserial, 'ATE0', verbose=ctx.obj['verbose'])  # Turn off echo
        aerisutils.print_log('Connection state: ' + str(my_module.get_packet_info(verbose=ctx.obj['verbose'])))
        elapsed_time = time.time() - start_time
    # Do some cleanup tasks
    my_module.disable_psm(verbose=ctx.obj['verbose'])
    aerisutils.print_log('Finished test')
Esempio n. 23
0
 def gps_time(self):
     ser = self.myserial
     # Inject time
     from datetime import datetime, timezone
     my_datetime = datetime.now(timezone.utc).strftime("%Y/%m/%d,%H:%M:%S")
     rmutils.write(ser, 'AT+QGPSXTRATIME=0,"' + my_datetime + '",1,1,3500')
     # Check if GPSOneExtra is enabled
     rmutils.write(ser, 'AT+QGPSXTRA?')
     # Check GPSOneExtra data file
     rmutils.write(ser, 'AT+QGPSXTRADATA?')
     return True
Esempio n. 24
0
 def file_list(self):
     ser = self.myserial
     # User file system
     mycmd = 'AT+QFLST="UFS:*"'
     rmutils.write(ser, mycmd)
     # Extended User file system
     mycmd = 'AT+QFLST="EUFS:*"'
     rmutils.write(ser, mycmd)
     # Extended User file system - threadx
     mycmd = 'AT+QFLST="EUFS:/datatx/*"'
     rmutils.write(ser, mycmd)
     return True
Esempio n. 25
0
 def udp_listen(self, listen_port, listen_wait, verbose=True):
     ser = self.myserial
     udp_socket = 0
     if self.create_packet_session(verbose=verbose):
         aerisutils.print_log('Packet session active: ' + self.my_ip)
     else:
         return False
     # Close our read socket
     self.close_socket(udp_socket, verbose)
     # Open UDP socket
     socket_id = (super().get_values_for_cmd('AT+USOCR=17','+USOCR:'))[0]
     print('Socket ID = ' + str(socket_id))
     # Listen on udp socket port
     mycmd = 'AT+USOLI=' + str(socket_id) + ',' + str(listen_port)
     val = rmutils.write(ser, mycmd, verbose=verbose)      
     # Wait for data up to X seconds
     if listen_wait > 0:
         rmutils.wait_urc(ser, listen_wait, self.com_port, returnonreset=True)
     return True
Esempio n. 26
0
 def udp_listen(self, listen_wait, verbose):
     ser = self.myserial
     read_sock = '1'  # Use socket 1 for listen
     if self.create_packet_session():
         aerisutils.print_log('Packet session active: ' + self.my_ip)
     else:
         return False
     # Open UDP socket for listen
     rmutils.write(ser, 'AT#SLUDP=1,1,3030', delay=1)  # Starts listener
     rmutils.write(ser, 'AT#SS', delay=1)
     if listen_wait > 0:
         rmutils.wait_urc(ser, listen_wait, self.com_port, returnonreset=True)  # Wait up to X seconds for UDP data to come in
         rmutils.write(ser, 'AT#SS', delay=1)
     return True
Esempio n. 27
0
 def fw_update(self):
     ser = self.myserial
     modem = XMODEM(self.getc, self.putc)
     # stream = open('/home/pi/share/fw/0bb_stg1_pkg1-0m_L56A0200_to_L58A0204.bin', 'rb')
     stream = open('/home/pi/share/fw/0bb_stg2_L56A0200_to_L58A0204.bin', 'rb')
     rmutils.write(ser, 'AT+UFWUPD=3')
     rmutils.wait_urc(ser, 20, self.com_port)
     modem.send(stream)
     stream.close()
     ser.flushOutput()
     rmutils.wait_urc(ser, 20, self.com_port)
     # print(stream)
     rmutils.write(ser, 'AT+UFWINSTALL')
     rmutils.write(ser, 'AT+UFWINSTALL?')
Esempio n. 28
0
 def network_config(self, mod, b25, bfull, gsm, catm, catnb, verbose):
     print("Mod: " + mod)
     if mod is 'ec25':
         print("Configuring ec25")
         return self.network_config_ec25()
     ser = self.myserial
     # Set scan sequence
     rmutils.write(ser, 'AT+QCFG="nwscanseq",020301,1')
     if gsm and not catm:
         # Set scan mode to auto
         rmutils.write(ser, 'AT+QCFG="nwscanmode",1,1')
     elif gsm:
         # Set scan mode to auto
         rmutils.write(ser, 'AT+QCFG="nwscanmode",0,1')
         # Quectel - IoT operating mode - auto
         rmutils.write(ser, 'AT+QCFG="iotopmode",2,1')
     elif catm:
         # Set scan mode to LTE only
         rmutils.write(ser, 'AT+QCFG="nwscanmode",3,1')
         # Quectel - IoT operating mode - CAT-M only
         rmutils.write(ser, 'AT+QCFG="iotopmode",0,1')
         # Quectel - IoT operating mode - NB only
         #rmutils.write(ser, 'AT+QCFG="iotopmode",1,1')
     else:
         # Set scan mode to auto
         rmutils.write(ser, 'AT+QCFG="nwscanmode",0,1')
         # Quectel - IoT operating mode - auto
         rmutils.write(ser, 'AT+QCFG="iotopmode",2,1')
     if bfull:
         # Set enabled bands with all
         rmutils.write(ser, 'AT+QCFG="band",f,400b0e189f,b0e189f,1')
     elif b25:
         # Set enabled bands with band 2, 12, 25
         rmutils.write(ser, 'AT+QCFG="band",F,1000802,802,1')
     else:
         # Set enabled bands with band 2, 12 no band 25
         rmutils.write(ser, 'AT+QCFG="band",F,802,802,1')
     # Quectel - Service Domain 1 = PS; 2 = CS & PS
     rmutils.write(ser, 'AT+QCFG="servicedomain",2,1')
     #rmutils.write(ser, 'AT+QCFG="servicedomain",1,1')
     # Quectel - Enable roaming 2 = enabled
     rmutils.write(ser, 'AT+QCFG="roamservice",2,1')
Esempio n. 29
0
 def gps_disable(self):
     ser = self.myserial
     # Disable / end gps
     rmutils.write(ser, 'AT+QGPSEND')
     return True
Esempio n. 30
0
 def gps_enable(self):
     ser = self.myserial
     # Now turn on gps
     rmutils.write(ser, 'AT+QGPS=1')
     return True