Send file data demo.

Dependencies:   modem_ref_helper CRC DebouncedInterrupt

Committer:
Jeej
Date:
Thu May 11 15:25:55 2017 +0000
Revision:
1:f4a7a48a5f2b
Parent:
0:065f2318fcb9
Child:
2:992b87360140
Simple notification demo.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 0:065f2318fcb9 1 #include "mbed.h"
Jeej 0:065f2318fcb9 2 #include "rtos.h"
Jeej 0:065f2318fcb9 3 #include "WizziDebug.h"
Jeej 0:065f2318fcb9 4
Jeej 0:065f2318fcb9 5 #include "alp_spec.h"
Jeej 0:065f2318fcb9 6 #include "alp_helpers.h"
Jeej 0:065f2318fcb9 7 #include "modem_ref.h"
Jeej 0:065f2318fcb9 8
Jeej 1:f4a7a48a5f2b 9 #include "ram_fs.h"
Jeej 0:065f2318fcb9 10 #include "hal_types.h"
Jeej 0:065f2318fcb9 11
Jeej 0:065f2318fcb9 12 // ============================================================}}}
Jeej 0:065f2318fcb9 13
Jeej 0:065f2318fcb9 14 // Callbacks to MODEM's ALP requests
Jeej 0:065f2318fcb9 15 // ============================================================{{{
Jeej 0:065f2318fcb9 16 void my_read(u8 fid, u32 offset, u32 length, int id)
Jeej 0:065f2318fcb9 17 {
Jeej 0:065f2318fcb9 18 u8 data[256]; // XXX VLA
Jeej 0:065f2318fcb9 19
Jeej 1:f4a7a48a5f2b 20 if (ram_fs_read(fid, offset, length, data))
Jeej 1:f4a7a48a5f2b 21 {
Jeej 1:f4a7a48a5f2b 22 // Error
Jeej 1:f4a7a48a5f2b 23 length = 0;
Jeej 1:f4a7a48a5f2b 24 }
Jeej 0:065f2318fcb9 25
Jeej 0:065f2318fcb9 26 modem_respond_read(fid, data, offset, length, id);
Jeej 0:065f2318fcb9 27 }
Jeej 0:065f2318fcb9 28
Jeej 0:065f2318fcb9 29 void my_write(u8 fid, void *data, u32 offset, u32 length, int id)
Jeej 0:065f2318fcb9 30 {
Jeej 1:f4a7a48a5f2b 31 alp_errors_t err;
Jeej 0:065f2318fcb9 32
Jeej 1:f4a7a48a5f2b 33 if (ram_fs_write(fid, offset, length, (uint8_t*)data))
Jeej 1:f4a7a48a5f2b 34 {
Jeej 1:f4a7a48a5f2b 35 err = ALP_ERR_FILE_NOT_FOUND;
Jeej 1:f4a7a48a5f2b 36 }
Jeej 1:f4a7a48a5f2b 37 else
Jeej 1:f4a7a48a5f2b 38 {
Jeej 1:f4a7a48a5f2b 39 err = ALP_ERR_NONE;
Jeej 1:f4a7a48a5f2b 40 }
Jeej 1:f4a7a48a5f2b 41
Jeej 1:f4a7a48a5f2b 42 modem_respond(0, err, id);
Jeej 0:065f2318fcb9 43 }
Jeej 0:065f2318fcb9 44
Jeej 0:065f2318fcb9 45 void my_read_fprop(u8 fid, int id)
Jeej 0:065f2318fcb9 46 {
Jeej 1:f4a7a48a5f2b 47 u8* hdr = (u8*)ram_fs_get_header(fid);
Jeej 0:065f2318fcb9 48
Jeej 1:f4a7a48a5f2b 49 if (hdr != NULL)
Jeej 1:f4a7a48a5f2b 50 {
Jeej 1:f4a7a48a5f2b 51 modem_respond_fprop(fid, hdr, id);
Jeej 1:f4a7a48a5f2b 52 }
Jeej 1:f4a7a48a5f2b 53 else
Jeej 1:f4a7a48a5f2b 54 {
Jeej 1:f4a7a48a5f2b 55 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 1:f4a7a48a5f2b 56 }
Jeej 0:065f2318fcb9 57 }
Jeej 0:065f2318fcb9 58
Jeej 0:065f2318fcb9 59 void my_flush(u8 fid, int id)
Jeej 0:065f2318fcb9 60 {
Jeej 0:065f2318fcb9 61 // No flush in this file system
Jeej 0:065f2318fcb9 62 modem_respond(0, ALP_ERR_NONE, id);
Jeej 0:065f2318fcb9 63 }
Jeej 0:065f2318fcb9 64
Jeej 0:065f2318fcb9 65 void my_delete(u8 fid, int id)
Jeej 0:065f2318fcb9 66 {
Jeej 1:f4a7a48a5f2b 67 alp_errors_t err;
Jeej 0:065f2318fcb9 68
Jeej 1:f4a7a48a5f2b 69 err = (ram_fs_delete(fid))? ALP_ERR_FILE_NOT_FOUND : ALP_ERR_NONE;
Jeej 1:f4a7a48a5f2b 70
Jeej 1:f4a7a48a5f2b 71 modem_respond(0, err, id);
Jeej 0:065f2318fcb9 72 }
Jeej 0:065f2318fcb9 73
Jeej 0:065f2318fcb9 74 void my_lqual(u8 ifid, int per)
Jeej 0:065f2318fcb9 75 {
Jeej 0:065f2318fcb9 76 DPRINT("Interface File [%3d] LQUAL : %d%% PER\r\n", ifid, per);
Jeej 0:065f2318fcb9 77 }
Jeej 0:065f2318fcb9 78
Jeej 0:065f2318fcb9 79 void my_ldown(u8 ifid)
Jeej 0:065f2318fcb9 80 {
Jeej 0:065f2318fcb9 81 DPRINT("Interface File [%3d] LDOWN\r\n", ifid);
Jeej 0:065f2318fcb9 82 }
Jeej 0:065f2318fcb9 83
Jeej 0:065f2318fcb9 84 void my_reset(void)
Jeej 0:065f2318fcb9 85 {
Jeej 0:065f2318fcb9 86 NVIC_SystemReset();
Jeej 0:065f2318fcb9 87 }
Jeej 0:065f2318fcb9 88
Jeej 0:065f2318fcb9 89 void my_boot(u8 cause, u16 number)
Jeej 0:065f2318fcb9 90 {
Jeej 0:065f2318fcb9 91 DPRINT("Modem BOOT[%c] #%d\r\nRe-Init\r\n", cause, number);
Jeej 0:065f2318fcb9 92
Jeej 0:065f2318fcb9 93 // Modem re-booted, restart APP
Jeej 0:065f2318fcb9 94 my_reset();
Jeej 0:065f2318fcb9 95 }