Helper library to use modem_ref driver.

Dependencies:   WizziCom WizziDebug ram_fs modem_ref

Dependents:   D7A_Localisation D7A_1x_demo_send_file_data_and_forget D7A_1x_demo_CodeUpgradeProtocol D7A_1x_demo_LoRaWAN ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers modem_d7a.h Source File

modem_d7a.h

00001 #ifndef __MODEM_D7A_H__
00002 #define __MODEM_D7A_H__
00003 
00004 #include "mbed.h"
00005 #include "rtos.h"
00006 #include "WizziDebug.h"
00007 #include "WizziCom.h"
00008 
00009 #include "hwcfg.h"
00010 #include "ram_fs.h"
00011 
00012 #include "alp.h"
00013 #include "alp_helpers.h"
00014 #include "alp_lwan.h"
00015 #include "alp_spec.h"
00016 #include "d7a_1x.h"
00017 #include "d7a_1x_fs.h"
00018 #include "kal_fs.h"
00019 #include "kal_math.h"
00020 #include "modem_ref.h"
00021 #include "revision.h"
00022 
00023 #define DEFAULT_ROOT_KEY            {206, 87, 116, 11, 4, 30, 202, 254, 206, 87, 116, 11, 4, 30, 202, 254}
00024 
00025 #define MODEM_TIMEOUT_LOCAL         1000
00026 #define MODEM_TIMEOUT_DISTANT       60000
00027 #define MODEM_WAIT_RESP(_s,_t)      modem_wait_resp(&(_s), (_t), (char*)__FUNCTION__, __LINE__)
00028 
00029 TYPEDEF_STRUCT_PACKED {
00030     uint8_t type;
00031     d7a_sp_cfg_t cfg;
00032 } alp_d7a_itf_t;
00033 
00034 int modem_wait_resp(Semaphore* s, uint32_t timeout, char* function, uint32_t line);
00035 int modem_open(modem_ref_callbacks_t* callbacks);
00036 int modem_close(void);
00037 void modem_print_error(uint8_t itf, int error);
00038 
00039 int modem_raw_alp(alp_payload_t* alp, alp_payload_t** alp_rsp);
00040 int modem_remote_raw_alp(void* itf, alp_payload_t* alp, alp_payload_t** alp_rsp);
00041 int modem_read_file(uint8_t fid, void *data, uint32_t offset, uint32_t length);
00042 int modem_remote_read_file(void* itf, void *istatus, uint8_t fid, void *data, uint32_t offset, uint32_t length);
00043 int modem_write_file(uint8_t fid, void *data, uint32_t offset, uint32_t length);
00044 int modem_remote_write_file(void* itf, void *istatus , uint8_t fid, void *data, uint32_t offset, uint32_t length);
00045 int modem_flush_file(uint8_t fid);
00046 int modem_declare_file(uint8_t fid, alp_file_header_t* header);
00047 int modem_notify_file(uint8_t fid, uint32_t offset, uint32_t length);
00048 int modem_d7a_enable_itf(void);
00049 int modem_d7a_disable_itf(void);
00050 
00051 int modem_lwan_open(void);
00052 int modem_lwan_set_cfg(lwan_cfg_t* cfg);
00053 int modem_lwan_set_nls(lwan_nls_t* nls);
00054 int modem_lwan_send(alp_payload_t* alp);
00055 int modem_lwan_get_status(lwan_status_t* status);
00056 
00057 
00058 
00059 #define D7_ITF_SIZE(_itf) (1+my_alp_itf_d7a_cfg_size(&(_itf)->cfg))
00060 int my_alp_itf_d7a_cfg_size(d7a_sp_cfg_t* cfg);
00061 
00062 #endif