int count, testCount;
uint32_t len;
uint16_t offset;
- message_t reportmsg;
+ message_t reportMsg;
void report(error_t e) {
- uint8_t *msg = call AMSend.getPayload(&reportmsg);
+ uint8_t *msg = call AMSend.getPayload(&reportMsg, 1);
- msg[0] = e;
- if (call AMSend.send(AM_BROADCAST_ADDR, &reportmsg, 1) != SUCCESS)
- call Leds.led0On();
+ if (msg)
+ {
+ msg[0] = e;
+ if (call AMSend.send(AM_BROADCAST_ADDR, &reportMsg, 1) == SUCCESS)
+ return;
+ }
+ call Leds.led0On();
}
event void AMSend.sendDone(message_t* msg, error_t error) {
scheck(call LogWrite.sync());
else
{
+ error_t result;
setParameters();
- scheck(call LogWrite.append(data + offset, len));
+ result = call LogWrite.append(data + offset, len);
+ if (result == ESIZE) {
+ // We have reached the end of the log, sync it
+ scheck(call LogWrite.sync());
+ }
+ else {
+ scheck(result);
+ }
}
}