Installing a .dwl file from file-system

Hi All.

We are using the SL808xT module.

As per the ADL-User guide,

As this service is managed above the file system on the AirPrime SL808xT & Q2698 embedded
modules, it is highly recommended to use the file system service directly instead of the A&D storage
service. However the A&D storage service API is available for compatibility purpose with 2G

Reading the above, we would love to have the following mechanism ::

Download the dwl-file-bytes from internet, and keep storing the dwl-file-bytes on the file-system on the fly.

Once the download is complete, use an equivalent function of s32 adl_adInstall ( s32 CellHandle );

where CellHandle could somehow be mapped to the dwl-file stored on the filesystem.

Is this even possible? Am I being too hopeful? :slight_smile:

Would love to hear back from you experts !!!

Thanks and Regards,

Ping !!

Any help will be greatly appreciated :slight_smile:
Thanks in advance.

Thanks and Regards,


Hello Ajay,
You can use adl_fsinstall function to install .dwl file which you have downloaded in File system.

Thanks & Regards,

Thanks Rex for the help.

Unfortunately, I could not find any complete-working hello-world program for the same (no sample-program with OpenAT, neither any reference in the ADL-User-Guide).

Following is the code.
Upon execution, it gets stuck at Beginning installation … (even though file energy-meter_maestro-m100-2g_5.5.0_5.5.0.dwl is present on the file-system).


/*  Includes                                                                 */
#include "wm_types.h"       /* Sierra Wireless types definitions             */
#include "wm_stdio.h"       /* Sierra Wireless standard input/output         */
                            /* definitions                                   */
#include "wm_list.h"        /* Sierra Wireless List and Stack API definitions*/
#include "adl_str.h"        /* String service                                */
#include "adl_port.h"       /* Port service                                  */
#include "adl_at.h"         /* AT commands related structures definition     */
#include "adl_ad.h"         /* Application & Data storage service            */

#include "adl_traces.h"     /* Traces macros definition                      */
#include "adl_memory.h"     /* Memory management functions                   */
#include "adl_error.h"      /* Error functions and definitions               */

#include "adl_AppliInit.h"  /* Application initialization definitions        */
#include "adl_RspHandler.h" /* AT command response definitions               */
#include "adl_CmdHandler.h" /* AT command service definitions                */

#include "adl_filesystem.h"
/*  Mandatory variables                                                    */
// Application tasks prototypes
extern void main_task ( void );

// Application tasks declaration table
const adl_InitTasks_t adl_InitTasks [] =
    { main_task,  3072, "main", 1 },
    { 0, 0, 0, 0 }

static char LOG_GLOBAL_BUFFER[1024];

static void info_log(char * buf)
	TRACE((4, (char*) buf));
	memset(buf, 0, sizeof(LOG_GLOBAL_BUFFER));

void main_task ( void )
    memset(LOG_GLOBAL_BUFFER, 0, sizeof(LOG_GLOBAL_BUFFER));
    info_log("Beginning installation ...");

    	s32 ret = adl_fsInstall("energy-meter_maestro-m100-2g_5.5.0_5.5.0.dwl");

    	sprintf(LOG_GLOBAL_BUFFER, "return code is [%d]", ret);

Kindly point me to a complete working example for the adl_fsInstall API, I will be grateful.

Thanks and Regards,

Ping …
Will be grateful to listen back