my question is simple like in the subject. What is the difference between ADL and OpenAT?
Some functions does the same in both the environment. Some other functions cannot be used (not linked) except when in its respective environment.
Which one have I to use to build my application and, generally, to have the better control over the Fastrack M1306B?
As far as I can make out OpenAT has two differents libraries you can use - either Basic or ADL - to develop OpenAT applications.
I know nothing about the Basic option, because I read something in a Wavecom document that recomended that you use ADL (presumably because it provdies more features and control). ADL is quite powerful, but, like most of these things, is a bit quirky and the manual doesn’t always tell you what you need to know.
Thanks for your post.
I agree with you that the manual doesn’t tell what we really need.
My confusion is not (yet!) at the basic or ADL level: I’ll show you.
As you know, there are two libraries: rte_wmopenat_303.b03.lib and rte_wmadl_303.b03.lib. Now: where ADL basic (which is supposed to be advanced) fits?
Why function wm_osDebugTrace() is linked with the first library and not with the second? Why adl_atSendResponse() and adlint_osDebugTrace() doesn’t link with the first one?
Also there are a lot of “wm_xxxx()” functions that links with the first library.
The project wizard uses the first library to link when Basic has been choosen; uses the second library when ADL has been choosed; uses the first library with a third library (rte_oldtaskitf.lib) when Basic with “Use Old Task Interface” checked.
Anyway, those above are other tries that I did. I will continue to use “ADL” hoping that no other confusions will arise.
I agree with skos on the information provided. ADL library is more flexible in the sense that it allows you to give you callback functions which are called whenever any event occurs. In Open-AT Basic mode, all the events come in the wm_apmAppliParser () function. So, in this case, the modularity is less.
ADL mode provides you build large applications and moreover, the TCP/IP libraries which are shipped along with Open-AT are compatible only with ADL mode.
Of course, you have the disadvantage with ADL that your application size is a little larger but compared to the advantages that you get (like more modular application, more flexibility in choosing third party library), this trade off is insignificant.
Now, for your question that wm_osDebugTrace () is not provided in ADL library but is provided only in Basic library is that ADL library provides you a macro TRACE which works quite similar to wm_osDebugTrace (). I don’t know but internally it might call wm_osDebugTrace () function.
In case, you applicaiton is built using ADL mode, the rte_wmadl_303.b03.lib library is linked because this library has the definitions of all the functions that are used in ADL mode. Similarly rte_wmopenat_303.b03.lib is linked with an application created using basic mode because all the wm_xxxx() APIs are defined in this library.
However, you should note that some functions like (wm_strcpy, wm_strncmp() etc) work both with ADL and Basic mode.
I hope the above explanation answers some of the queries in your mind.