\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
{\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
\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
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