Send file data through D7A Action Protocol demo.

Dependencies:   modem_ref_helper

Committer:
Jeej
Date:
Thu May 11 14:49:14 2017 +0000
Revision:
0:3058da317f01
Child:
1:0c24fa2e675a
Updated init.

Who changed what in which revision?

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