command error_t gainAdjustY(uint8_t val);
/* Pot adjustment on the X axis of the magnetometer is finished.
- * Returns: return SUCCESS.
*/
- event error_t gainAdjustXDone(bool result);
+ event void gainAdjustXDone(error_t result);
/* Pot adjustment on the Y axis of the magnetometer is finished.
- * Returns: return SUCCESS.
*/
- event error_t gainAdjustYDone(bool result);
+ event void gainAdjustYDone(error_t result);
}
implementation
{
- uint8_t gainData[2];
+ norace uint8_t gainData[2];
command error_t SplitControl.start()
{
return ;
}
+ task void signalAdjustDone()
+ {
+ if (gainData[0] == 1)
+ signal Mag.gainAdjustXDone(gainData[1]);
+ else
+ signal Mag.gainAdjustYDone(gainData[1]);
+ }
+
async event void I2CPacket.writeDone(error_t error, uint16_t addr, uint8_t length, uint8_t* data)
{
call I2CResource.release();
- if (gainData[0] ==1)
- {
- signal Mag.gainAdjustXDone(error);
- }
- if (gainData[0] ==0)
- {
- signal Mag.gainAdjustYDone(error);
- }
- return ;
+
+ gainData[1] = error;
+ post signalAdjustDone();
+
+ return;
}
async command uint8_t ConfigX.getChannel() {
return ATM128_ADC_PRESCALE;
}
- default event error_t Mag.gainAdjustXDone(bool result)
- {
- return result;
- }
- default event error_t Mag.gainAdjustYDone(bool result)
- {
- return result;
- }
+ default event void Mag.gainAdjustXDone(error_t result) { }
+ default event void Mag.gainAdjustYDone(error_t result) { }
}
\ No newline at end of file