Send file data demo.

Dependencies:   modem_ref_helper CRC DebouncedInterrupt

Committer:
Jeej
Date:
Thu May 18 13:47:16 2017 +0000
Revision:
6:05e26c3a495a
Parent:
4:999305b576c0
Child:
8:db5679d113c2
Factorized libraries.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jeej 6:05e26c3a495a 1 #include "modem_ref_helper.h"
Jeej 0:065f2318fcb9 2
Jeej 0:065f2318fcb9 3
Jeej 0:065f2318fcb9 4 // ============================================================}}}
Jeej 0:065f2318fcb9 5
Jeej 0:065f2318fcb9 6 // Callbacks to MODEM's ALP requests
Jeej 0:065f2318fcb9 7 // ============================================================{{{
Jeej 0:065f2318fcb9 8 void my_read(u8 fid, u32 offset, u32 length, int id)
Jeej 0:065f2318fcb9 9 {
Jeej 2:992b87360140 10 u8 data[256];
Jeej 0:065f2318fcb9 11
Jeej 1:f4a7a48a5f2b 12 if (ram_fs_read(fid, offset, length, data))
Jeej 1:f4a7a48a5f2b 13 {
Jeej 2:992b87360140 14 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 1:f4a7a48a5f2b 15 }
Jeej 2:992b87360140 16 else
Jeej 2:992b87360140 17 {
Jeej 2:992b87360140 18 modem_respond_read(fid, data, offset, length, id);
Jeej 2:992b87360140 19 }
Jeej 0:065f2318fcb9 20 }
Jeej 0:065f2318fcb9 21
Jeej 0:065f2318fcb9 22 void my_write(u8 fid, void *data, u32 offset, u32 length, int id)
Jeej 0:065f2318fcb9 23 {
Jeej 2:992b87360140 24 modem_respond(0, (ram_fs_write(fid, offset, length, (uint8_t*)data))? ALP_ERR_FILE_NOT_FOUND : ALP_ERR_NONE, id);
Jeej 0:065f2318fcb9 25 }
Jeej 0:065f2318fcb9 26
Jeej 0:065f2318fcb9 27 void my_read_fprop(u8 fid, int id)
Jeej 0:065f2318fcb9 28 {
Jeej 1:f4a7a48a5f2b 29 u8* hdr = (u8*)ram_fs_get_header(fid);
Jeej 0:065f2318fcb9 30
Jeej 1:f4a7a48a5f2b 31 if (hdr != NULL)
Jeej 1:f4a7a48a5f2b 32 {
Jeej 1:f4a7a48a5f2b 33 modem_respond_fprop(fid, hdr, id);
Jeej 1:f4a7a48a5f2b 34 }
Jeej 1:f4a7a48a5f2b 35 else
Jeej 1:f4a7a48a5f2b 36 {
Jeej 1:f4a7a48a5f2b 37 modem_respond(0, ALP_ERR_FILE_NOT_FOUND, id);
Jeej 1:f4a7a48a5f2b 38 }
Jeej 0:065f2318fcb9 39 }
Jeej 0:065f2318fcb9 40
Jeej 0:065f2318fcb9 41 void my_flush(u8 fid, int id)
Jeej 0:065f2318fcb9 42 {
Jeej 0:065f2318fcb9 43 // No flush in this file system
Jeej 0:065f2318fcb9 44 modem_respond(0, ALP_ERR_NONE, id);
Jeej 0:065f2318fcb9 45 }
Jeej 0:065f2318fcb9 46
Jeej 0:065f2318fcb9 47 void my_delete(u8 fid, int id)
Jeej 0:065f2318fcb9 48 {
Jeej 2:992b87360140 49 modem_respond(0, (ram_fs_delete(fid))? ALP_ERR_FILE_NOT_FOUND : ALP_ERR_NONE, id);
Jeej 0:065f2318fcb9 50 }
Jeej 0:065f2318fcb9 51
Jeej 6:05e26c3a495a 52 void my_udata(u8 fid,void *data,u32 offset,u32 length, u8 i_type, u8 i_length, u8* i_data)
Jeej 6:05e26c3a495a 53 {
Jeej 6:05e26c3a495a 54 (void)data;
Jeej 6:05e26c3a495a 55 (void)i_length;
Jeej 6:05e26c3a495a 56 PRINT("Got UNS File[%3d]@%d %d Bytes\n",fid,offset,length);
Jeej 6:05e26c3a495a 57 if (i_type == ALP_ITF_TYPE_D7A)
Jeej 6:05e26c3a495a 58 {
Jeej 6:05e26c3a495a 59 static union {
Jeej 6:05e26c3a495a 60 u8 b[8];
Jeej 6:05e26c3a495a 61 u32 w[2];
Jeej 6:05e26c3a495a 62 } uid;
Jeej 6:05e26c3a495a 63 d7a_sp_res_t* istat = (d7a_sp_res_t*) i_data;
Jeej 6:05e26c3a495a 64 memcpy(uid.b,istat->addressee.id,8);
Jeej 6:05e26c3a495a 65 PRINT("From UID: %08X%08X (rxlev:%d lb:%d)\n",
Jeej 6:05e26c3a495a 66 HAL_U32_BYTE_SWAP(uid.w[0]), HAL_U32_BYTE_SWAP(uid.w[1]),
Jeej 6:05e26c3a495a 67 istat->rxlev, istat->lb);
Jeej 6:05e26c3a495a 68 }
Jeej 6:05e26c3a495a 69 }
Jeej 6:05e26c3a495a 70
Jeej 0:065f2318fcb9 71 void my_lqual(u8 ifid, int per)
Jeej 0:065f2318fcb9 72 {
Jeej 4:999305b576c0 73 PRINT("Interface File [%3d] LQUAL : %d%% PER\r\n", ifid, per);
Jeej 0:065f2318fcb9 74 }
Jeej 0:065f2318fcb9 75
Jeej 0:065f2318fcb9 76 void my_ldown(u8 ifid)
Jeej 0:065f2318fcb9 77 {
Jeej 4:999305b576c0 78 PRINT("Interface File [%3d] LDOWN\r\n", ifid);
Jeej 0:065f2318fcb9 79 }
Jeej 0:065f2318fcb9 80
Jeej 0:065f2318fcb9 81 void my_reset(void)
Jeej 0:065f2318fcb9 82 {
Jeej 0:065f2318fcb9 83 NVIC_SystemReset();
Jeej 0:065f2318fcb9 84 }
Jeej 0:065f2318fcb9 85
Jeej 0:065f2318fcb9 86 void my_boot(u8 cause, u16 number)
Jeej 0:065f2318fcb9 87 {
Jeej 4:999305b576c0 88 PRINT("Modem BOOT[%c] #%d\r\nRe-Init\r\n", cause, number);
Jeej 0:065f2318fcb9 89
Jeej 0:065f2318fcb9 90 // Modem re-booted, restart APP
Jeej 0:065f2318fcb9 91 my_reset();
Jeej 0:065f2318fcb9 92 }