Test program for SPS30

Dependencies:   SPS30-sensor

Revision:
4:91fa1c5ebbe1
Parent:
3:572adaa86366
--- a/main.cpp	Tue Mar 05 03:06:13 2019 +0000
+++ b/main.cpp	Wed Mar 27 06:08:17 2019 +0000
@@ -11,7 +11,7 @@
 
 Serial pc(SERIAL_TX, SERIAL_RX);
 
-sps30 sps(SDA0, SCL0, 100000);                 //Microchip real time clock (set as 400kHz)
+//sps30 sps(SDA1, SCL1, 100000);                 //Microchip real time clock (set as 400kHz)
 DigitalOut myled(LED1);
 
 //-----------------------------------------------------------------------------
@@ -24,30 +24,36 @@
 
 //-----------------------------------------------------------------------------
 // initial the scd30
-
+/*
 void initSPS30() {
     pc.printf("Initializing SPS30...\r\n");
-    uint8_t dbg = sps.softReset();
+    uint8_t dbg = sps.SoftReset();
     if (dbg != sps30::SPSnoERROR) pc.printf("No ack \r\n");
     wait_ms(2000);
-    sps.getSerialNumber();
+    sps.GetSerialNumber();
     pc.printf(" - SPS30 s/n ascii: ");
     for(int i = 0; i < sizeof(sps.sn); i++) 
     {
         pc.printf("%c", sps.sn[i]);
     }
     pc.printf("\r\n");
-    sps.getArticleCode();
+    sps.GetArticleCode();
     pc.printf(" - SPS30 article code ascii: ");
     for(int i = 0; i < sizeof(sps.acode); i++) 
     {
-        pc.printf("%c", sps.acode[i]);
+        pc.printf("%d", sps.acode[i]);
     }
-    
+    pc.printf("\r\n");
+    sps.SetAutoCleanInterval();
+    pc.printf(" - SPS30 auto clean interval: %d", sps.clean_interval_i);
     pc.printf("\r\n");
-    sps.startMeasurement();
+
+    sps.StartMeasurement();
+   // sps.startFanClean();
+//    pc.printf(" - SPS30 start manual clean \r\n");
+    
 }
-
+*/
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 
@@ -59,11 +65,13 @@
     pc.baud(9600);
     wait_ms(200);
     initSplash();
-    
-    initSPS30();
+
+    Sps30 sps(SDA2, SCL2, 100000);
+    sps.InitSensor();
+    wait(1);
+    pc.printf("Serial Number: %s \r\n", sps.sensor_serial);
     
     int count = 0;
-//    string mass_1p0, mass_2p5, mass_4p0, mass_10p0, num_0p5, num_1p0, num_2p5, num_4p0, num_10p0, typ_pm_size;
     pc.printf("Ready...\r\n");
     pc.printf(" count |       MASS CONCENTRATION (ug/m3)       |           NUMBER CONCENTRATION (#/cm3)           | Typical Particle Size \r\n");
     pc.printf("       |  PM1.0  |  PM2.5  |  PM4.0  |  PM10.0  |  PM0.5  |  PM1.0  |  PM2.5  |  PM4.0  |  PM10.0  |         (um)          \r\n");
@@ -72,16 +80,32 @@
     {
         myled = !myled;
         wait_ms(250);
-        sps.getReadyStatus();
+        int ret = sps.PollSensor();
+        if (ret == SensorDriver::SENSOR_DATAOK)
+        {
+            pc.printf(" %5d |", count);
+            for (int i = 0; i < sps.sensor_data.size(); i++)
+            {
+                pc.printf("   %s   |", sps.sensor_data[i].second);
+            }
+            pc.printf("\r\n");
+            count++;
+        }
+        
+        /*
+        sps.GetReadyStatus();
         uint16_t redy = sps.ready;
         if(redy == sps30::SPSisReady) {
-            uint8_t crcc = sps.readMeasurement();
+            uint8_t crcc = sps.ReadMeasurement();
             count++;
             if(crcc != sps30::SPSnoERROR) pc.printf("ERROR: %d\r\n", crcc);
             else pc.printf(" %5d | %7.3f | %7.3f |  %7.3f | %7.3f | %7.3f | %7.3f | %7.3f | %7.3f |  %7.3f |       %7.3f \r\n", \
                             count, sps.mass_1p0_f, sps.mass_2p5_f, sps.mass_4p0_f, sps.mass_10p0_f, sps.num_0p5_f, \
                             sps.num_1p0_f, sps.num_2p5_f, sps.num_4p0_f, sps.num_10p0_f, sps.typ_pm_size_f);
         }
+        */
+//        pc.printf("breakpoint 2");
+//        sps.sensor_data.clear();
         wait(5);
     }
 }