- error_t switchOn(uint8_t level)
- {
- atomic {
- if (call HplAdc12.isBusy())
- return FAIL;
- else {
- adc12ctl0_t ctl0 = call HplAdc12.getCtl0();
- ctl0.enc = 0;
- call HplAdc12.setCtl0(ctl0);
- ctl0.refon = 1;
- if (level == REFERENCE_1_5V_PENDING)
- ctl0.r2_5v = 0;
- else
- ctl0.r2_5v = 1;
- call HplAdc12.setCtl0(ctl0);
- return SUCCESS;
- }
- }
+ REFERENCE_1_5V_ON_PENDING = 3,
+ REFERENCE_2_5V_ON_PENDING = 4,
+
+ REFERENCE_1_5V_OFF_PENDING = 5,
+ REFERENCE_2_5V_OFF_PENDING = 6,
+
+ } state_t;
+
+ state_t m_state;
+
+ /***************** Prototypes ****************/
+ error_t switchOn(uint8_t level);
+ error_t switchOff();
+ void signalStartDone(state_t state, error_t result);
+ void signalStopDone(state_t state, error_t result);
+ error_t start(state_t targetState);
+ error_t stop(state_t nextState);
+
+ /***************** SplitControl Commands ****************/
+ command error_t RefVolt_1_5V.start() {
+ return start(REFERENCE_1_5V_STABLE);