Exportable version of WizziLab's modem driver.

Dependents:   modem_ref_helper

Revision:
21:d5018a680915
Parent:
20:17852941b19e
Child:
23:5553f9541759
--- a/src/modem_ref.cpp	Wed Dec 13 14:29:27 2017 +0000
+++ b/src/modem_ref.cpp	Thu Dec 14 19:16:25 2017 +0000
@@ -40,6 +40,7 @@
 #define ROOT_KEY_SIZE   16
 
 #define SERIAL_SEND(_flow,_data,_size)  do { \
+    ASSERT(_size<256, "SERIAL_SEND too big for serial protocol (%d/%dmax)", _size, 255);\
     u8 wch[WC_HEADER_SIZE] = {WC_SYNC_BYTE_0,WC_SYNC_BYTE_1,_size,g_modem.tx_sequ++,_flow};\
     g_modem.send(wch,WC_HEADER_SIZE,_data,_size);\
 }while(0)
@@ -92,6 +93,8 @@
                     switch (r.type)
                     {
                         case ALP_OPCODE_F_RD_DATA:
+                            ASSERT((ALP_ACTION_RSP_TAG_SIZE + ALP_ACTION_RSP_F_DATA_SIZE_MAX(r.meta.f_data.length)) < 256,
+                                "F_RD_DATA too big for serial protocol (%d/%dmax)", r.meta.f_data.length, 255 - (ALP_ACTION_RSP_TAG_SIZE + ALP_ACTION_RSP_F_DATA_SIZE_MAX(0)));
                             g_modem.cb->read(r.meta.f_data.fid,r.meta.f_data.offset,r.meta.f_data.length,id);
                             break;
                         case ALP_OPCODE_F_WR_DATA: