EHS6 - AT^SISW=x,0,1 question | Telit Cinterion IoT Developer Community
November 1, 2017 - 11:03pm, 3255 views
In the note at the end of section 10.9 of the Cinterion EHS6 AT Command Set document, it states:
Do not send any characters after AT^SISW command line termination (ATS3) until "^SISW" URC is received. This is necessary to avoid that any characters related to the AT command can be interpreted as being part of the data stream to be transferred. Also refer to Section 1.5, AT Command Syntax.
I have several questions regarding this note, and the SISW operation in general:
1. Does this note also apply when sending an AT^SISW=x,0,1 command to signal an End of Data? In other words, if I am signaling an eod, wait 20 seconds, and then send a new AT command to the EHS6 before it receives back a ^SISW URC, will the EHS6 ignore that AT command?
2. How long will the EHS6 wait for a response after issuing an AT^SISW=x,0,1 before timing out and/or throwing an error?
3. The AT command set document indicates it may return with a +CME ERROR: <err>, what conditions would cause this to happen? (No response like in question 2, or something else?)
Thanks in advance for your help
The purpose of this statement was to make sure that any AT command or a part of it will be send as data. After sending this command forst the URC is returned and then OK reply. You can't send any AT command until this one returns with OK or ERROR result. So there's no need and you should not do that.
There might be different causes of error answer like no connection or service state not proper for data sending.
I think that the timeout here may depend on TCP protocol timeouts and retransmissions. Please see these parameters in the AT commands specification document:
^SCFG: "Tcp/IRT", (list of supported <tcpIrt>)
^SCFG: "Tcp/MR", (list of supported <tcpMr>)
^SCFG: "Tcp/OT", (list of supported <tcpOt>)
Thank you Bartłomiej for the quick response.
I checked the config settings you indicated, and we have the default values set for all of them - that is, 3 for TCP/IRT, 10 for TCP/MR, and 6000 for TCP/OT. So would I be correct that after 30 seconds (3 seconds ***** 10 retries) we would timeout and recieve ERROR from the EHS6?
The IRT is decribed as time to the first retransmission. Later the intervals are increased. These parameters have influence on the total delay but maybe the additional timeouts are applied on other layers before the command returns. As the exact delays are not defined in the documentation for this situation I think that the best approach would be to measure this for the particular settings.
I also have a problem with this. I use HTTP Post, as in example 10.15.17 of the AT manual. My question is:
- What is the maximum time before the EHS6 returns an URC (or an error) after the AT^SISW=x,0,1 is sent to it? What parameters should I set and how to make sure the time never exceeds e.g. 15 or 30 seconds?
You can configure the above parameters to change the module behavior regarding TCP retransmissions and closing the connection in case the packets are not acknowledged: Initial Retransmission Timeout (IRT), Maximum Number of Retransmissions (MR), Overall TCP Timer for outstanding connections (tcpOT).
But I don't think that this will give you a guarantee that the time never exceeds 30 seconds or some in case of any possible network issues. The documentation does not define any maximum timeout for network operations.
Is there any particular experience behind this question? Do you face any problem with sending POST when the command does not return the answer for a longer time?
Please try changing these parameters to check if it can make things better.