CC864 IP issues with SRING URC and #SS Socket Status command.

5 thoughts on “CC864 IP issues with SRING URC and #SS Socket Status command.

  1. Hi,

    I have been testing this module for a while now. I would appreciate any help with the following issues I am facing regarding the SRING URC and Socket Status command:

    [1] The module sends the SRING URC only the first time data is received from a server. After this, any subsequent data packets do not trigger SRING URC anymore. However polling the module with the #SI command indicates that data is indeed received by the module, and I can read the data using #SRECV command. There seems to be these other issues related to this problem.

    [2] SRING format does not follow the configured setting and stays always the default format.

    [3] After receiving the first data packet from the server, the “state” field in Socket Status (#SS) response is stuck to 3 (Socket suspended with pending data) and it never goes back to 2 after data has been read.

    [4] In this case of [3], there is no data waiting to be read and issuing more #SREAD commands returns zero bytes. However this should really generate an error based on the data sheet.

    [5] The Socket Info (#SI) gives the correct information regarding unread bytes of data. However the order of “buff_in” and “ack_waiting” fields is reversed from what is expected based on the documentation.

     

    Here is a log of commands between our program and the Telit module. This may provide more details on the issues that were outlined above.

     

    /***** Connecting to APN and Open Socket
    at#scfg=2,1,100,0,600,1
    OK
    at#scfgext=2,1,1,0,0,0
    OK
    at#sgact=1,1,””,””
    #SGACT: XX.XXX.X.XX
    OK
    at#sd=2,0,2900,”XXX.XXX.XXX.XXX”,0,0,1
    CONNECT

    OK

    /***** Check socket status/info, results as expected
    /***** state = 2 (Socket suspended)
    /***** buff_in = 0
    /***** ack_waiting = 0
    at#ss
    #SS: 1,0
    #SS: 2,2,X,X,X,X
    #SS: 3,0
    #SS: 4,0
    #SS: 5,0
    #SS: 6,0
    OK
    at#si=2
    #SI: 2,3,0,0,0
    OK

    /***** Here we send data from the server
    /***** SRING URC is received, although NOT in the right format
    /***** We expect to see SRING 2, 12
    SRING: 2

    /***** Check socket status/info to confirm data
    /***** state = 3 (Socket suspended with pending data)
    /***** buff_in = 12
    /***** ack_waiting = 0
    /***** Note the order of buff_in, ack_waiting is reverse of data sheet
    at#ss
    #SS: 1,0
    #SS: 2,3,X,X,X,X
    #SS: 3,0
    #SS: 4,0
    #SS: 5,0
    #SS: 6,0
    OK
    at#si=2
    #SI: 2,3,0,0,12
    OK

    /***** Read data bytes here
    at#srecv=2,63
    #SRECV: 2,12
    239102030000000200005926
    OK

    /***** Check socket status/info again
    /***** state = 3 (Socket STILL suspended with pending data!)
    /***** buff_in = 0 (However, this is zero as expected)
    /***** ack_waiting = 0
    at#ss
    #SS: 1,0
    #SS: 2,3,X,X,X,X
    #SS: 3,0
    #SS: 4,0
    #SS: 5,0
    #SS: 6,0
    OK
    at#si=2
    #SI: 2,3,12,0,0
    OK

    /***** Try to read socket, in case there really is data
    /***** This returns zero bytes, and does not raise an error as it should.
    at#srecv=2,63
    #SRECV: 2,0
    OK

    /***** Socket information still shows no pending bytes
    at#si=2
    #SI: 2,3,12,0,0
    OK

    /***** Here we send data another data packet from the server
    /***** However No SRING URC is received
    /***** Check socket status/info
    /***** state = 3 (Socket suspended with pending data as before)
    /***** buff_in = 14
    /***** ack_waiting = 0
    at#ss
    #SS: 1,0
    #SS: 2,3,X,X,X,X
    #SS: 3,0
    #SS: 4,0
    #SS: 5,0
    #SS: 6,0
    OK
    at#si=2
    #SI: 2,3,12,0,14
    OK

    /***** Read data bytes here
    at#srecv=2,63
    #SRECV: 2,14
    239401030000000400008C002DCC
    OK

    /***** Check socket status/info again
    /***** state = 3 (Socket STILL suspended with pending data!)
    /***** buff_in = 0 (No more bytes to receive)
    /***** ack_waiting = 0
    at#ss
    #SS: 1,0
    #SS: 2,3,X,X,X,X
    #SS: 3,0
    #SS: 4,0
    #SS: 5,0
    #SS: 6,0
    OK
    at#si=2
    #SI: 2,3,26,0,0
    OK

    /***** Try to read socket again, just in case
    /***** No more bytes as per
    at#srecv=2,63
    #SRECV: 2,0
    OK

    /***** END