]> oss.titaniummirror.com Git - tinyos-2.x.git/blobdiff - tos/sensorboards/mts300/MagP.nc
Change to follow TEP 109 .
[tinyos-2.x.git] / tos / sensorboards / mts300 / MagP.nc
index a2fe23d9f83978c1188ea48f201909f4ce1debbc..0bef394778167cda7988627b7469084d31533fc5 100644 (file)
@@ -4,44 +4,42 @@
 \r
 module MagP\r
 {\r
-  provides interface Init;\r
-  provides interface StdControl;\r
+  provides interface SplitControl;\r
   provides interface Mag;\r
   provides interface Atm128AdcConfig as ConfigX;\r
   provides interface Atm128AdcConfig as ConfigY;\r
-  provides interface ResourceConfigure as ResourceX;\r
-  provides interface ResourceConfigure as ResourceY;\r
 \r
+  uses interface Timer<TMilli>;\r
        uses interface GeneralIO as MagPower;\r
        uses interface MicaBusAdc as MagAdcX;\r
        uses interface MicaBusAdc as MagAdcY;\r
   uses interface I2CPacket<TI2CBasicAddr>;\r
-  uses interface Resource;\r
+  uses interface Resource as I2CResource;\r
 }\r
 \r
 implementation\r
 {\r
   uint8_t gainData[2];\r
 \r
-  command error_t Init.init()\r
+  command error_t SplitControl.start()\r
   {\r
     call MagPower.makeOutput();\r
-               call MagPower.clr();\r
+    call MagPower.set();\r
 \r
+    call Timer.startOneShot(100); \r
     return SUCCESS;\r
-       }\r
+  }\r
 \r
-  command error_t StdControl.start()\r
-  {\r
-    call MagPower.set();\r
-    return SUCCESS;\r
+  event void Timer.fired() {\r
+    signal SplitControl.startDone(SUCCESS);\r
   }\r
 \r
-  command error_t StdControl.stop()\r
+  command error_t SplitControl.stop()\r
   {\r
     call MagPower.clr();\r
     call MagPower.makeInput();\r
 \r
+    signal SplitControl.stopDone(SUCCESS);\r
     return SUCCESS;\r
   }\r
 \r
@@ -49,19 +47,19 @@ implementation
   {\r
     gainData[0] = 1;    // pot subaddr\r
     gainData[1] = val;  // value to write\r
-    return call Resource.request();\r
+    return call I2CResource.request();\r
   }\r
   command error_t Mag.gainAdjustY(uint8_t val)\r
   {\r
     gainData[0] = 0;    // pot subaddr\r
     gainData[1] = val;  // value to write\r
-    return call Resource.request();\r
+    return call I2CResource.request();\r
   }\r
   /**\r
   * Resource request\r
   *\r
   */\r
-  event void Resource.granted()\r
+  event void I2CResource.granted()\r
   {\r
     if ( call I2CPacket.write(0x3,TOS_MAG_POT_ADDR, 2, gainData) == SUCCESS)\r
     {\r
@@ -79,7 +77,7 @@ implementation
 \r
   async event void I2CPacket.writeDone(error_t error, uint16_t addr, uint8_t length, uint8_t* data)\r
   {\r
-    call Resource.release();\r
+    call I2CResource.release();\r
     if (gainData[0] ==1)\r
     {\r
       signal Mag.gainAdjustXDone(error);\r
@@ -115,8 +113,12 @@ implementation
     return ATM128_ADC_PRESCALE;\r
   }\r
 \r
-  async command void ResourceX.configure() { }  \r
-  async command void ResourceX.unconfigure() { } \r
-  async command void ResourceY.configure() { }  \r
-  async command void ResourceY.unconfigure() {}\r
+   default event error_t Mag.gainAdjustXDone(bool result)\r
+   {\r
+     return result;\r
+   }\r
+   default event error_t Mag.gainAdjustYDone(bool result)\r
+   {\r
+     return result;\r
+   }\r
 }
\ No newline at end of file