Broadcast read demo.

Dependencies:   modem_ref_helper DebouncedInterrupt

Revision:
1:5ddd7f4db10d
Parent:
0:cc947267028b
Child:
2:4629eacf9851
--- a/main.cpp	Tue May 09 12:56:20 2017 +0000
+++ b/main.cpp	Thu May 11 16:49:40 2017 +0000
@@ -63,7 +63,7 @@
     .cfg.addressee.ctrl.bf.nls      = D7A_NLS_AES_CCM_64,
     .cfg.addressee.ctrl.bf.idf      = D7A_ID_NBID,
     .cfg.addressee.xcl.bf           = {.s = 0x2, .m = 0x1},// XXX D7A_XCL_GW,
-    .cfg.addressee.id[0]            = D7A_CTF_VAL(4,0),
+    .cfg.addressee.id[0]            = D7A_CTF_VAL(8,0),
 };
 
 #define MY_D7_ITF_SIZE(_itf) (1+my_alp_itf_d7a_cfg_size(&(_itf)->cfg))
@@ -113,7 +113,7 @@
     
     if (terminal)
     {    
-        print_status(err);
+        //print_status(err);
         modem_resp.put((void*)MODEM_RESP_TERMINAL);
     }
     else
@@ -138,14 +138,13 @@
     uint32_t resp;
     d7a_sp_res_t istat;
     fw_version_t fw_ver;
-    uint8_t gw_nb = 0;
+    uint8_t nb = 0;
 
     uint8_t my_user_id = modem_get_id(my_read_response_callback);
     
     FPRINT("(id:0x%08x)\r\n", osThreadGetId());
     
-    //uint8_t scan_xcl[] = { 0x0F, 0x2F, 0x8F, 0x9F };
-    uint8_t scan_xcl[] = { 0x2F };
+    uint8_t scan_xcl[] = { 0x0F, 0x2F };
     
     // Set custom retry policy
     //modem_write_file(WM_FID_ALP_CFG, &my_policy, MY_POLICY_IDX * sizeof(alp_retry_policy_t), sizeof(alp_retry_policy_t), g_main_id);
@@ -158,9 +157,11 @@
         
         for (uint8_t i = 0; i < sizeof(scan_xcl); i++)
         {
-            gw_nb = 0;
+            nb = 0;
             my_itf.cfg.addressee.xcl.byte = scan_xcl[i];
             
+            PRINT("Scanning XCL 0x%02X...\n", my_itf.cfg.addressee.xcl.byte);
+            
             modem_remote_read_file((uint8_t*)&my_itf, MY_D7_ITF_SIZE(&my_itf), (void*)&istat, 2, (void*)&fw_ver, 12, sizeof(fw_version_t), my_user_id);
             
             do
@@ -170,17 +171,17 @@
                 
                 if (MODEM_RESP_DONE == resp)
                 {
-                    gw_nb++;
-                    PRINT("%d: XCL:%02X ", gw_nb, istat.addressee.xcl.byte);
-                    PRINT_DATA("UID: ", "%02X", istat.addressee.id, 8, " ");
-                    PRINT("v%d.%d.%d ", fw_ver.major, fw_ver.minor, fw_ver.patch);
-                    PRINT("rxlev:%d lb:%d\n", istat.rxlev, istat.lb);
+                    nb++;
+                    PRINT("%d: XCL:%02X ", nb, istat.addressee.xcl.byte);
+                    PRINT_DATA("UID:", "%02X", istat.addressee.id, 8, " ");
+                    PRINT("rxlev:%d lb:%d ", istat.rxlev, istat.lb);
+                    PRINT("v%d.%d.%d\n", fw_ver.major, fw_ver.minor, fw_ver.patch);
+
                 }
             } while (MODEM_RESP_TERMINAL != resp);
-        
         }
         
-        PRINT("DONE\n");
+        PRINT("Done.\n");
     }
 }
 
@@ -238,12 +239,19 @@
     PRINT("\r\n--- Starting new run ---\r\n");
     FPRINT("(id:0x%08x)\r\n", osThreadGetId());
     
-    alp_file_header_t hdr;
     static union {
         uint8_t      b[8];
         uint32_t     w[2];
     } uid;
     revision_t rev;
+            
+    // Hardware reset
+    DigitalOut reset_low(MODEM_PIN_RESET, 0);
+    Thread::wait(100);
+        
+    // Release reset
+    DigitalIn reset_release(MODEM_PIN_RESET);
+    Thread::wait(1000);
     
     // Open modem Com port
     g_modem_com = new WizziCom(MODEM_PIN_TX, MODEM_PIN_RX, MODEM_PIN_IRQ_OUT, MODEM_PIN_IRQ_IN);