![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
firmware for the SOLID Slow Control Module for SM1
Dependencies: S_SCTRL_SMlib adc_ad9249 mbed sscm_comm AD5384 SWSPI T_adt7320
Diff: main.cpp
- Revision:
- 9:20fc5a795ec4
- Parent:
- 8:03f20aed4214
- Child:
- 10:efd3f490648c
diff -r 03f20aed4214 -r 20fc5a795ec4 main.cpp --- 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")) {