]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - apps/tests/msp430/Adc12/TestAdcMultiC.nc
turn on safe compilation for some modules
[tinyos-2.x.git] / apps / tests / msp430 / Adc12 / TestAdcMultiC.nc
index 26737838a144d6bfc577ec7de7ef9be49147e668..2115b8bfada279d6ca1908da1710b57b9eaed50b 100644 (file)
@@ -50,7 +50,7 @@ generic module TestAdcMultiC(
 
                           uint8_t inch2,           // second input channel 
                           uint8_t sref2            // second reference voltage 
-)
+) @safe()
 {
   uses {
     interface Boot;
@@ -68,7 +68,7 @@ implementation
 #define BUFFER_SIZE 100
   const msp430adc12_channel_config_t config = {inch, sref, ref2_5v, adc12ssel, adc12div, sht, sampcon_ssel, sampcon_id};
   adc12memctl_t memCtl = {inch2, sref2};
-  uint8_t state;
+  norace uint8_t state;
   uint16_t buffer[BUFFER_SIZE];
   void task getData();
 
@@ -85,6 +85,8 @@ implementation
   bool assertData(uint16_t *data, uint16_t num)
   {
     uint16_t i;
+    if (num != BUFFER_SIZE)
+      post signalFailure();
     for (i=0; i<num; i++)
       if (!data[i] || data[i] >= 0xFFF){
         post signalFailure();
@@ -117,8 +119,10 @@ implementation
 
   async event void MultiChannel.dataReady(uint16_t *buf, uint16_t numSamples)
   {
-    if (assertData(buf, numSamples))
+    if (assertData(buf, numSamples) && state++ == 0)
       post signalSuccess();
+    else
+      post signalFailure();
     call Resource.release();
   }