firmware for the SOLID Slow Control Module for SM1

Dependencies:   S_SCTRL_SMlib adc_ad9249 mbed sscm_comm AD5384 SWSPI T_adt7320

Revision:
9:20fc5a795ec4
Parent:
8:03f20aed4214
Child:
10:efd3f490648c
--- a/main.cpp	Sun Dec 07 22:39:10 2014 +0000
+++ b/main.cpp	Sun Dec 07 23:43:41 2014 +0000
@@ -23,10 +23,11 @@
   * v 1.66  implemented real  temperature readout 
   * v 1.70  implemented set_volt and get_volt commands
   * v 1.72  implemented setbias , get bias volt  dummy
-  * v 1.73  implemented setbias , get bias volt  via Deimos32 class
+  * v 1.73 implemented setbias , get bias volt  via Deimos32 class 
+  * v 1.74 added check for empty deimos pointer 
 */ 
 
-#define VERSION "1.73"
+#define VERSION "1.74
 
 
 #include "SWSPI_BI.h"
@@ -178,15 +179,21 @@
                          if (cmd.con ==1)  stpcnt=1;
                          if (cmd.con ==2)  strtcnt=1;  // else it is assumed to be 9
                          float retvalue=0;
-                         for ( u8 bcnt=strtcnt ; bcnt < stpcnt; bcnt++) retvalue=-deimos[bcnt]->setHV(biasvolt);
+                         for ( u8 bcnt=strtcnt ; bcnt < stpcnt; bcnt++) {
+                                if ( ! deimos[bcnt]) retvalue=200;
+                                else retvalue+=-deimos[bcnt]->setHV(biasvolt);
+                         }
                          cmd.status=u8(retvalue);goto DACENDCMD;
                     }
                     if (!strcmp( cmd.cmd, "gbia")) {
                             if ( cmd.con ==0 ) cmd.con=1;
-                            
-                            float volt=deimos[cmd.con-1]->getHv();
-                            float2_2u16( volt , cmd.dataout , cmd.datain);
-                            cmd.status=0;goto DACENDCMD;
+                            if (deimos[cmd.con-1]) {
+                                float volt=deimos[cmd.con-1]->getHv();
+                                float2_2u16( volt , cmd.dataout , cmd.datain);
+                                cmd.status=0;
+                            }
+                            else cmd.status=200;
+                            goto DACENDCMD;
                     }
                     // set CAL level values                   
                     if (!strcmp( cmd.cmd, "scll")) {