Specifications

MC55 AT Command Set
10.5 AT^SISR
s
MC55_ATC_V03.03 Page 244 of 459 9/9/05
Confidential / Released
Indicates whether or not data are available for reading with AT^SISR.
0 No data available for reading.
1 New data are available and can be read by sending the AT^SISR command.
While the service is open this URC appears each time when new data are
available again. This eliminates the need to poll for fresh data.
2 Data transfer has been finished (all data have been read) and the service can
be closed with AT^SISC.
Optional third parameter of the "^SISR" URC displayed only if the Socket service uses UDP.
The UDP protocol requires that data are received in the same order that they were sent from the remote host.
Consequently, the reception of each datagram must be completed before the next datagram can be received.
This may be a problem if the buffer of the host application is limited and not designed to handle the maximum
packet size of 1500 bytes. To compensate this, the host is advised to request, via <reqReadLength>, an
amount less or equal its maxmimum buffer capacity and wait for the resulting "^SISR" URC with parameter
<remainUdpPacketLength>. The benefit of this approach is that the host may properly receive all parts of a
UDP datagram, as after each received data part the number of remaining bytes is synchronized, until reading
the datagram is finished.
If the currently read datagram is smaller than the number of bytes requested by the host the <remainUdpPack-
etLength> parameter is omitted.
0 Indicates that all bytes of the current UDP datagram are read.
1...(max. data size)-1 Indicates that the currently read UDP datagram is not yet complete. The dis-
played value is the remaining number of bytes.
<remainUdpPacketLength> is unequal 0 until reading all parts of the cur-
rent datagram is finished.
10.5.1 Example: Socket host reads small amounts of UDP data packets
This section applies only to the Socket service using the UDP protocol. The example shows how to read UDP
packets if the buffer of the host application can handle only a few bytes. There are two datagrams available for
reading.
Buffer size: 6 bytes
Datagram A = 18 bytes (content "THIS_IS_DATAGRAM_A")
Datagram B = 3 bytes (content "NEW")
<urcCauseId>
(num)
<remainUdpPacketLength>
(num)
^SISR: 0,1
Service profile 0 is configured for Socket service and UDP. The URC
notifies host that data are available for reading.
at^sisr=0,6
The host requests to read 6 bytes.
^SISR: 0,6,12
THIS_I
The first 6 bytes of datagram A are confirmed and transmitted. Another
12 bytes are still available.
OK
at^sisr=0,6
The host requests to read the next part of 6 bytes.
^SISR: 0,6,6
S_DATA
The next 6 bytes of datagram A are confirmed and transmitted. Another
6 bytes are still available.
OK
at^sisr=0,6
The host requests to read the next part of 6 bytes.
^SISR: 0,6,0
GRAM_A
Last part of datagram A was received, no remainder is left.
OK
at^sisr=0,6
Again, the host requests to read 6 bytes. This time, the URC refers to
datagram B which has only 3 bytes. As the read datagram is smaller
than the size requested by the host, the URC does not include the
<remainUdpPacketLength>.