Trond Enger / d7a_1x

Fork of d7a_1x by WizziLab

Revision:
58:38a366236bda
Parent:
56:da34fc11e760
Child:
59:b42eae56b51b
--- a/src/d7a.cpp	Thu Sep 08 10:44:05 2016 +0000
+++ b/src/d7a.cpp	Mon Sep 12 16:36:09 2016 +0000
@@ -174,39 +174,39 @@
 }
 
 
-d7a_errors_t d7a_read(const uint8_t file_id, const uint32_t offset, const uint32_t size, const uint8_t* buf, d7a_addressee_t* addressee, alp_rpol_t retry)
+d7a_msg_t** d7a_read(const uint8_t file_id, const uint32_t offset, const uint32_t size, d7a_addressee_t* addressee, alp_rpol_t retry)
 {
     FPRINT("\r\n");
     
-    d7a_errors_t err;
+    d7a_msg_t** ret;
     
     DPRINT("Read %d.\r\n", file_id);
     
-    err = d7a_alp_read_file(file_id, offset, size, buf, addressee, retry);
+    ret = d7a_alp_read_file(file_id, offset, size, addressee, retry);
     
-    DPRINT("Read %d Done. err %d\r\n", file_id, err);
+    DPRINT("Read %d Done.\r\n", file_id);
     
-    WARNING(err >= D7A_ERR_NONE, "%s FID %d err %d\r\n", __FUNCTION__, file_id, err);
+    //WARNING(ret[0]->err >= D7A_ERR_NONE, "%s FID %d err %d\r\n", __FUNCTION__, file_id, ret[0]->err);
     
-    return err;
+    return ret;
 }
 
 
-d7a_errors_t d7a_write(const uint8_t file_id, const uint32_t offset, const uint32_t size, const uint8_t* const buf, d7a_addressee_t* addressee, alp_rpol_t retry, bool resp)
+d7a_msg_t** d7a_write(const uint8_t file_id, const uint32_t offset, const uint32_t size, const uint8_t* const buf, d7a_addressee_t* addressee, alp_rpol_t retry, bool resp)
 {
     FPRINT("\r\n");
     
-    d7a_errors_t err;
+    d7a_msg_t** ret;
     
     DPRINT("Write %d.\r\n", file_id);
     
-    err = d7a_alp_write_file(file_id, offset, size, buf, addressee, retry, resp);
+    ret = d7a_alp_write_file(file_id, offset, size, buf, addressee, retry, resp);
     
-    DPRINT("Write %d Done. err %d\r\n", file_id, err);
+    DPRINT("Write %d Done.\r\n", file_id);
     
-    WARNING(err >= D7A_ERR_NONE, "%s FID %d err %d\r\n", __FUNCTION__, file_id, err);
+    //WARNING(ret[0]->err >= D7A_ERR_NONE, "%s FID %d err %d\r\n", __FUNCTION__, file_id, ret[0]->err);
     
-    return err;
+    return ret;
 }
 
 
@@ -234,13 +234,40 @@
 }
 
 
+void d7a_free_msg(d7a_msg_t** msg)
+{
+    int i = 0;
+    while (msg[i] != NULL)
+    {
+        if (msg[i]->data_len)
+        {
+            FREE(msg[i]->data);
+        }
+        
+        FREE(msg[i]);
+        i++;
+    }
+    
+    FREE(msg);
+}
+
+
 void d7a_modem_print_infos(void)
 {
     uint8_t uid[8];
     d7a_revision_t rev;
     
-    ASSERT(d7a_read(0, 0, 8, uid) >= D7A_ERR_NONE, "Failed to read UID file\r\n");
-    ASSERT(d7a_read(2, 0, sizeof(d7a_revision_t), (uint8_t*)&rev) >= D7A_ERR_NONE, "Failed to read REV file\r\n");
+    d7a_msg_t** msg;
+    
+    msg = d7a_read(0, 0, 8);
+    ASSERT(msg[0]->err >= D7A_ERR_NONE, "Failed to read UID file\r\n");
+    memcpy(uid, msg[0]->data, 8);
+    d7a_free_msg(msg);
+    
+    msg = d7a_read(2, 0, sizeof(d7a_revision_t));
+    ASSERT(msg[0]->err >= D7A_ERR_NONE, "Failed to read UID file\r\n");
+    memcpy(&rev, msg[0]->data, sizeof(d7a_revision_t));
+    d7a_free_msg(msg);
     
     PRINT("------------ D7A Modem infos ------------\r\n");
     PRINT_DATA("| UID:              ", "%02X", uid, 8, "    |\r\n");