# ADL or OpenAT?

**URL:** <https://forum.sierrawireless.com/t/adl-or-openat/250>\
**Category:** Development tools\
**Created:** [January 26, 2006, 2:29pm UTC](https://forum.sierrawireless.com/t/adl-or-openat/250 "2006-01-26T14:29:15Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![GianniP](https://avatars.discourse-cdn.com/v4/letter/g/a587f6/32.png) [@GianniP](https://forum.sierrawireless.com/u/GianniP)\
**Post date:** [January 26, 2006, 2:29pm UTC](https://forum.sierrawireless.com/t/adl-or-openat/250/1 "2006-01-26T14:29:15Z")

</div>

Hi everybody,  
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? 😒

Thanks, Gianni.

---

<div class="post-metadata">

**Author:** ![charlesoram](https://avatars.discourse-cdn.com/v4/letter/c/7ea924/32.png) [@charlesoram](https://forum.sierrawireless.com/u/charlesoram)\
**Post date:** [January 26, 2006, 11:40pm UTC](https://forum.sierrawireless.com/t/adl-or-openat/250/2 "2006-01-26T23:40:38Z")

</div>

Hi,  
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.

regards,  
Charles

---

<div class="post-metadata">

**Author:** ![GianniP](https://avatars.discourse-cdn.com/v4/letter/g/a587f6/32.png) [@GianniP](https://forum.sierrawireless.com/u/GianniP)\
**Post date:** [January 29, 2006, 12:39pm UTC](https://forum.sierrawireless.com/t/adl-or-openat/250/3 "2006-01-29T12:39:58Z")

</div>

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.

Thanks again. Regards.  
Gianni. 😉

---

<div class="post-metadata">

**Author:** ![skos](https://avatars.discourse-cdn.com/v4/letter/s/bc79bd/32.png) [@skos](https://forum.sierrawireless.com/u/skos)\
**Post date:** [January 30, 2006, 8:31am UTC](https://forum.sierrawireless.com/t/adl-or-openat/250/4 "2006-01-30T08:31:02Z")

</div>

Hi GianniP,

wavecom have started their development with OpenAt Library.  
Later (since OpenAt 2.0) they also have started with ADL.

Today, you get the information from wavecom that you should take ADL when you want to develop a new application.  
Espacially if you want to use GPRS and internet functions you can only take ADL.

regards  
skos

---

<div class="post-metadata">

**Author:** ![OpenAT\_Fan](https://avatars.discourse-cdn.com/v4/letter/o/f07891/32.png) [@OpenAT\_Fan](https://forum.sierrawireless.com/u/OpenAT_Fan)\
**Post date:** [January 31, 2006, 3:52am UTC](https://forum.sierrawireless.com/t/adl-or-openat/250/5 "2006-01-31T03:52:05Z")

</div>

Hi GianniP,  
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.

Best Regards,  
Open AT Fan.
