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:
Wed Jan 27 14:45:43 2021 +0000
Revision:
68:b2dd7309da44
Child:
69:8f2fe2426ef9
Sanity commit. Do not use.

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 68:b2dd7309da44 36 void modem_print_error(uint8_t itf, int8_t error);
Jeej 68:b2dd7309da44 37
Jeej 68:b2dd7309da44 38 int modem_raw_alp(alp_pub_payload_t* alp);
Jeej 68:b2dd7309da44 39 int modem_remote_raw_alp(void* itf, void *istatus, alp_pub_payload_t* alp);
Jeej 68:b2dd7309da44 40
Jeej 68:b2dd7309da44 41 int modem_read_file(uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 42 int modem_remote_read_file(void* itf, void *istatus, uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 43
Jeej 68:b2dd7309da44 44 int modem_write_file(uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 45 int modem_ref_remote_write_file(void* itf, void *istatus , uint8_t fid, void *data, uint32_t offset, uint32_t length);
Jeej 68:b2dd7309da44 46
Jeej 68:b2dd7309da44 47 int modem_flush_file(uint8_t fid);
Jeej 68:b2dd7309da44 48 int modem_declare_file(uint8_t fid, alp_file_header_t* header);
Jeej 68:b2dd7309da44 49
Jeej 68:b2dd7309da44 50 int modem_d7a_enable_itf(void);
Jeej 68:b2dd7309da44 51 int modem_d7a_disable_itf(void);
Jeej 68:b2dd7309da44 52
Jeej 68:b2dd7309da44 53
Jeej 68:b2dd7309da44 54
Jeej 68:b2dd7309da44 55 #define D7_ITF_SIZE(_itf) (1+my_alp_itf_d7a_cfg_size(&(_itf)->cfg))
Jeej 68:b2dd7309da44 56 int my_alp_itf_d7a_cfg_size(d7a_sp_cfg_t* cfg);
Jeej 68:b2dd7309da44 57
Jeej 68:b2dd7309da44 58 #endif