* Internal component for basicsb photodiode. Arbitrates access to the photo\r
* diode and automatically turns it on or off based on user requests.\r
*\r
- * @author David Gay\r
+ * @author Alif Chen\r
*/\r
\r
#include "mts300.h"\r
\r
configuration MagConfigP {\r
provides {\r
- interface Init;\r
- interface StdControl;\r
interface Mag;\r
-\r
+ interface Resource[uint8_t client];\r
interface Atm128AdcConfig as ConfigX;\r
interface Atm128AdcConfig as ConfigY;\r
- interface ResourceConfigure as ResourceX;\r
- interface ResourceConfigure as ResourceY;\r
}\r
}\r
implementation {\r
- components MagP, MicaBusC, new Atm128I2CMasterC() as I2CPot;\r
+ components MagP, MicaBusC, new Atm128I2CMasterC() as I2CPot,\r
+ new TimerMilliC() as WarmupTimer,\r
+ new RoundRobinArbiterC(UQ_MAG_RESOURCE) as Arbiter,\r
+ new SplitControlPowerManagerC() as PowerManager;\r
\r
- Init = MagP;\r
- StdControl = MagP;\r
Mag = MagP;\r
\r
+ Resource = Arbiter;\r
ConfigX = MagP.ConfigX;\r
ConfigY = MagP.ConfigY;\r
- ResourceX = MagP.ResourceX;\r
- ResourceY = MagP.ResourceY;\r
+\r
+ PowerManager.ResourceDefaultOwner -> Arbiter;\r
+ PowerManager.ArbiterInfo -> Arbiter;\r
+ PowerManager.SplitControl -> MagP;\r
\r
MagP.I2CPacket -> I2CPot;\r
- MagP.Resource -> I2CPot;\r
+ MagP.I2CResource -> I2CPot;\r
\r
+ MagP.Timer -> WarmupTimer;\r
MagP.MagPower -> MicaBusC.PW5;\r
MagP.MagAdcX -> MicaBusC.Adc6;\r
MagP.MagAdcY -> MicaBusC.Adc5;\r