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) {
return b;
}
+ volatile int x;
+
void setParameters() {
len = rand() >> 8;
offset = rand() >> 9;
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);
+ }
}
}
event void LogWrite.appendDone(void *buf, storage_len_t y, bool recordsLost, error_t result) {
- if (scheck(result))
+ if (result == ESIZE)
+ scheck(call LogWrite.sync());
+ else if (scheck(result))
nextWrite();
}