Mode1 Optical Validation

Dependencies:   max32630fthr

Revision:
37:249b548e6488
Parent:
36:a6e7ff9c87a0
Child:
38:8ff33869be1f
diff -r a6e7ff9c87a0 -r 249b548e6488 main.cpp
--- a/main.cpp	Tue Apr 05 01:17:30 2022 +0000
+++ b/main.cpp	Tue Apr 05 02:43:39 2022 +0000
@@ -84,13 +84,13 @@
 #endif
 
 /*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*#*/
-//#define RAW  // define this if you want AFE+accel data, no algorithm
+#define RAW  // define this if you want AFE+accel data, no algorithm
 //#define ALGO_ONLY 1  // define this if you only want algo data, comment out if you want raw sensor+algo data
 
 // Comment out both of the below for Normal Algorithm Samples Format
 //#define EXTENDED_ALGO 1  // define this if you want the extended algo samples report format 
 //#define PACKED_NORMAL_ALGO 1  // define this if you want the packed normal algo samples report format, 33.13.31
-
+//#define PCK_CFG_MASK  1 // define this and the above if you want to config mask out some of the packed data, , 33.13.31
 //#define AGC 1 // define this for AGC, otherwise the default is AEC
 
 #ifdef MAXREFDES103_CFG
@@ -390,22 +390,21 @@
             ibi_offset = rsp[ptr+15];
 
             sptr += (TTL_SZ);
-
-#if 0  // hex out
+#if defined(PCK_CFG_MASK)  // hex out, for printing config masked out packed data
             // print as hex bytes
             for (j=0; j<ALGO_SZ; j++)
                 pc.printf("%02X ", rsp[ptr+j]);
             //pc.printf("\n\r" );
 #endif
 
-
-#if 1
-#if 1
+#if !defined(PCK_CFG_MASK)
+  #if 1
+    #if 1 // print all
             if (heading_printed == 0) {
                 heading_printed = 1;
-#if defined(ALGO_ONLY)
+      #if defined(ALGO_ONLY)
                 pc.printf("opmode,hr,hr_conf,ibi,ibi_conf,act,r,spo2_conf,spo2,spo2_compl,spo2_lo,spo2_mo,spo2_lopi,spo2_unrel,spo2_state,scd,ibioffset,inappro_ori,\n\r");
-#endif
+      #endif
             }
             pc.printf("%d,%d,%d,%d,", opmode, hr, hr_conf, ibi);
             pc.printf("%d,%d,%d,%d,", ibi_conf, act, r, spo2_conf);
@@ -413,19 +412,21 @@
             pc.printf("%d,%d,%d,%d,", spo2_lopi,spo2_unrel, spo2_state, scd);
             pc.printf("%d,", ibi_offset);
             pc.printf("%d,", inappro_ori);
-#endif       
-#else
+     #endif       
+  #else  // print some
             if (heading_printed == 0) {
                 heading_printed = 1;
-#if defined(ALGO_ONLY)
+     #if defined(ALGO_ONLY)
                 pc.printf("hr,hr_conf,spo2,spo2_conf,spo2_lo,spo2_unrel,scd,\n\r");
-#endif
+     #endif
             }
             pc.printf("%d,%d,", hr, hr_conf);
             pc.printf("%d,%d,", spo2, spo2_conf);
             pc.printf("%d,", spo2_lo);
             pc.printf("%d,%d,", spo2_unrel, scd);
-#endif
+  #endif
+#endif // #if defined(PCK_CFG_MASK)
+
 #else // normal algo size
 //            pc.printf("ptr %d ttlsiz %d ", ptr, TTL_SZ);
             opmode = rsp[ptr];
@@ -567,8 +568,11 @@
 
 //#if (defined(MAXM86146_CFG) || defined(MAXM86146_CFG)) && defined(PACKED_NORMAL_ALGO)
 // wr config mask for packed normal data output fifo
+#if defined(PCK_CFG_MASK)
+    cmd[0] = 0x50; cmd[1] = 0x07; cmd[2] = 0x20; cmd[3] = 0x7F; cmd[4] = 0xFF; cmd[5] = 0x00;
+#else
     cmd[0] = 0x50; cmd[1] = 0x07; cmd[2] = 0x20; cmd[3] = 0xFF; cmd[4] = 0xFF; cmd[5] = 0x00;
-    cmd[0] = 0x50; cmd[1] = 0x07; cmd[2] = 0x20; cmd[3] = 0x7F; cmd[4] = 0xFF; cmd[5] = 0x00;
+#endif
     sh_i2c.write(SH_ADDR, cmd, 6);
     mfio = 1; thread_sleep_for(2); mfio = 0; wait_us(300);
     sh_i2c.read(SH_ADDR, rsp, 1);