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

Committer:
Jeej
Date:
Thu Jul 01 15:23:36 2021 +0000
Revision:
73:cf4195c72d4e
Parent:
72:15bf99fcfed9
Child:
75:dad2f09cb870
Sanity commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 68:b2dd7309da44 1 #ifndef __MODEM_D7A_H__
Jeej 68:b2dd7309da44 2 #define __MODEM_D7A_H__
Jeej 68:b2dd7309da44 3
Jeej 68:b2dd7309da44 4 #include "mbed.h"
Jeej 68:b2dd7309da44 5 #include "rtos.h"
Jeej 68:b2dd7309da44 6 #include "WizziDebug.h"
Jeej 68:b2dd7309da44 7 #include "WizziCom.h"
Jeej 68:b2dd7309da44 8
Jeej 68:b2dd7309da44 9 #include "hwcfg.h"
Jeej 68:b2dd7309da44 10 #include "ram_fs.h"
Jeej 68:b2dd7309da44 11
Jeej 68:b2dd7309da44 12 #include "alp.h"
Jeej 68:b2dd7309da44 13 #include "alp_helpers.h"
Jeej 68:b2dd7309da44 14 #include "alp_lwan.h"
Jeej 68:b2dd7309da44 15 #include "alp_spec.h"
Jeej 68:b2dd7309da44 16 #include "d7a_1x.h"
Jeej 68:b2dd7309da44 17 #include "d7a_1x_fs.h"
Jeej 68:b2dd7309da44 18 #include "kal_fs.h"
Jeej 68:b2dd7309da44 19 #include "kal_math.h"
Jeej 68:b2dd7309da44 20 #include "modem_ref.h"
Jeej 68:b2dd7309da44 21 #include "revision.h"
Jeej 68:b2dd7309da44 22
Jeej 68:b2dd7309da44 23 #define DEFAULT_ROOT_KEY {206, 87, 116, 11, 4, 30, 202, 254, 206, 87, 116, 11, 4, 30, 202, 254}
Jeej 68:b2dd7309da44 24
Jeej 68:b2dd7309da44 25 #define MODEM_TIMEOUT 1000
Jeej 68:b2dd7309da44 26 #define MODEM_WAIT_RESP(_s,_t) modem_wait_resp(&(_s), (_t), (char*)__FUNCTION__, __LINE__)
Jeej 68:b2dd7309da44 27
Jeej 68:b2dd7309da44 28 TYPEDEF_STRUCT_PACKED {
Jeej 68:b2dd7309da44 29 uint8_t type;
Jeej 68:b2dd7309da44 30 d7a_sp_cfg_t cfg;
Jeej 68:b2dd7309da44 31 } alp_d7a_itf_t;
Jeej 68:b2dd7309da44 32
Jeej 68:b2dd7309da44 33 int modem_wait_resp(Semaphore* s, uint32_t timeout, char* function, uint32_t line);
Jeej 68:b2dd7309da44 34 int modem_open(modem_ref_callbacks_t* callbacks);
Jeej 68:b2dd7309da44 35 int modem_close(void);
Jeej 69:8f2fe2426ef9 36 void modem_print_error(uint8_t itf, int error);
Jeej 68:b2dd7309da44 37
Jeej 69:8f2fe2426ef9 38 int modem_raw_alp(alp_payload_t* alp, alp_payload_t** alp_rsp, uint32_t timeout);
Jeej 69:8f2fe2426ef9 39 int modem_remote_raw_alp(void* itf, alp_payload_t* alp, alp_payload_t** alp_rsp, uint32_t timeout);
Jeej 68:b2dd7309da44 40 int modem_read_file(uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 41 int modem_remote_read_file(void* itf, void *istatus, uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 42 int modem_write_file(uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 71:b5c584f706ee 43 int modem_remote_write_file(void* itf, void *istatus , uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 44 int modem_flush_file(uint8_t fid);
Jeej 68:b2dd7309da44 45 int modem_declare_file(uint8_t fid, alp_file_header_t* header);
Jeej 72:15bf99fcfed9 46 int modem_notify_file(uint8_t fid, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 47 int modem_d7a_enable_itf(void);
Jeej 68:b2dd7309da44 48 int modem_d7a_disable_itf(void);
Jeej 68:b2dd7309da44 49
Jeej 69:8f2fe2426ef9 50 int modem_lwan_open(modem_lwan_callbacks_t* callbacks);
Jeej 69:8f2fe2426ef9 51 int modem_lwan_set_cfg(lwan_cfg_t* cfg);
Jeej 69:8f2fe2426ef9 52 int modem_lwan_set_nls(lwan_nls_t* nls);
Jeej 69:8f2fe2426ef9 53 int modem_lwan_send(alp_payload_t* alp);
Jeej 69:8f2fe2426ef9 54 int modem_lwan_get_status(lwan_status_t* status);
Jeej 69:8f2fe2426ef9 55
Jeej 68:b2dd7309da44 56
Jeej 68:b2dd7309da44 57
Jeej 68:b2dd7309da44 58 #define D7_ITF_SIZE(_itf) (1+my_alp_itf_d7a_cfg_size(&(_itf)->cfg))
Jeej 68:b2dd7309da44 59 int my_alp_itf_d7a_cfg_size(d7a_sp_cfg_t* cfg);
Jeej 68:b2dd7309da44 60
Jeej 68:b2dd7309da44 61 #endif