For example, see:
viewtopic.php?f=29&t=3621&p=14446&hilit=startup+delay#p14446
viewtopic.php?f=30&t=3227&p=12032&hilit=delay+startup#p12032
viewtopic.php?f=30&t=3227&p=12032&hilit=delay+startup#p12032
i don’t know if i agree entirely,
the latest firmware editions try to start you application 8 times and if it still crashes the 8th time, they give up on it.
the latest firmware editions
What editions, specifically?
try to start you application 8 times and if it still crashes the 8th time, they give up on it.
Is that actually documented?
But there are still people using firmware versions without this feature: viewtopic.php?f=19&t=4486
Madouc:the latest firmware editions
What editions, specifically?
i’m fairly certain that this mechanism is functional since 7.x
try to start you application 8 times and if it still crashes the 8th time, they give up on it.
Is that actually documented?
yes, see ‘Description / Recovery Mechanism’ in the ADL user guide
But there are still people using firmware versions without this feature: viewtopic.php?f=19&t=4486
i know, and for these people it’s still helpful.
The requirement that an application has to be built for a firmware version that matches the firmware physically installed on the device.
(in general, “matches” means “the same as”).
It’s a bit like making an application for a PC: if you build the application to run on Vista, it won’t work on Win-95
The response to AT+WOPEN=2 shows both the firmware version physically installed on the device, and the version for which the currently-loaded application was built:
+WOPEN: 2,“AT v06.00”,“AT v06.31”
In general, the two numbers need to be the same.
Examples:
viewtopic.php?f=78&t=4501&p=18139#p18139
viewtopic.php?f=78&t=4390&p=17817#p17817
Although it is clearly documented that you cannot do this, people do frequently ask how to do it!
The ADL User guide clearly says,
Note:
Currently these API functions cannot be used to execute a custom AT command subscribed with adl_atCmdSubscribe to call its handler. Only standard AT commands may be used with these functions. Custom AT commands can be executed when received over an external port, such as a UART.
Some possible workarounds are suggested here: viewtopic.php?f=3&t=3936&start=0&hilit=execute+custom+at+command
Don’t use the following code construct:
while(1) { // do something }
The only time such a loop may be used is when it’s of the form:
while(1)
{
adl_eventWait(...);
// do something as a result of the Event...
}
Because, during the Event Wait, other tasks can run…
davidc:Don’t use the following code construct:
while(1) { // do something }
The only time such a loop may be used is when it’s of the form:
while(1) { adl_eventWait(...); // do something as a result of the Event... }
Because, during the Event Wait, other tasks can run…
or use adl_ctxSleep(1);
this also introduces a moment for the processor to run other tasks
or use adl_ctxSleep(1);
Yes: that’s why I said, “of the form…” - because I was too lazy to try to come up with an exhaustive term…
“I downloaded my Application and nothing’s happening - what should I do?” is quite a frequently-asked question; eg: viewtopic.php?f=34&t=4585
I think it would be helpful - especially to newbies - to have a basic fault-finding guide for such circumstances; eg,
- What is the status LED doing?
- What do AT+WOPEN=2 and AT+WOPEN=7 tell you?
- How to get the debug Traces
- etc?
And links to other common issues - such as checking versions are correct, waiting for GSM registration, etc,…
Unfortunately, there is no guaranteed way to do this - you just cannot rely upon the network:
https://forum.sierrawireless.com/t/date-time-time-zone-information/3962/2
https://forum.sierrawireless.com/t/get-current-date-time-from-network/739/10
https://forum.sierrawireless.com/t/getting-network-date-and-time/2812/4
https://forum.sierrawireless.com/t/date-and-time-in-q2686/4701/1
Note that this is a network limitation - nothing specifically to do with SiWi
Well, that’s not really a question - but it is frequently suggested that reloading firmware might fix problems.
eg, https://forum.sierrawireless.com/t/how-to-restore-levels-filter-in-ds-1-1-2/4966/5
The point is that reloading firmware restores settings to their defaults - so this will obviously fix any problems that were due to mis-configuration!
See: https://forum.sierrawireless.com/t/network-registeration/4762/13
The way that FCM gathers received bytes and delivers them to the Data Handler in “blocks” is a very common cause of questions:
https://forum.sierrawireless.com/t/whats-a-block/399/6
https://forum.sierrawireless.com/t/rs-232-performance/5077/2
https://forum.sierrawireless.com/t/q2686-uart-receive-buffer-size-is-limit-only-56/4436/10
https://forum.sierrawireless.com/t/fcm-and-wip/4407/10
https://forum.sierrawireless.com/t/q2686-uart-buffer-size/5031/2
The way that FCM gathers received bytes and delivers them to the Data Handler in “blocks” is a very common cause of questions
For an excellent example of how to cope with this - using a State Machine approach - see:
This Whitepaper (with accompanying source code) gives a very good example of applying a State Machine design: visualgps.net/WhitePapers/NM … arser.html The specific problem addressed is the decoding of GPS NMEA Sentences. In particular, note that this also illustrates how to accept data in arbitrary “chunks” that do not necessarily correspond to complete “messages” (NMEA Sentences, in this case) - which is exactly what happens when receiving data via FCM. See: viewtopic.php?f=7&t=3766&p=2339…
NB: “State Machine” is also known as “Finite State Machine” - or “FSM”, for short.
Lots of or All links seem to be broken