Dropped actions with "attempt to index a nil value (field 'vooutput')" #214
Comments
|
I thought maybe the void dev_crow_send(struct dev_crow *d, const char *line) {
char s[256];
strcpy(s,line);
strcat(s,"\n\0");
fprintf(stderr,"crow_send: %s\n",line);
size_t bytesToWrite = strlen(s);
ssize_t bytesWritten = write(d->fd, s, bytesToWrite);
if (bytesWritten < 0) {
fprintf(stderr,"crow_send error: %s\n", strerror(errno));
} else if ((size_t)bytesWritten < bytesToWrite) {
fprintf(stderr,"crow_send partial write warning, wrote %d out of %d expected bytes", bytesWritten, bytesToWrite);
}
}With the above script, this eventually results in:
So it looks like the messages are being sent from norns correctly. I don't see any evidence of |
|
Ah, this may be a duplicate/variant of #131. |
|
Suspect that the USB rx buffer in crow is hitting capacity. Have a uart connector on order so I can more easily debug crow firmware. |
|
Agreed this looks like a USB rx buffer overflow happening on crow. I believe those errors are only reported to the debug port, so makes sense you're not seeing a system level error returned. One easy test is to add a comment line |
|
Fixed by #238 |
|
Ran for an hour last night with the fix, no instances of this error. Thanks! |
Calling
norns.crow.output[n].execute()on some outputs andnorns.crow.output[m].volts = xon others in a clock-triggered callback occasionally results in the output action not being executed and this message appearing in maiden:crow receive: [string "eval"]:1: attempt to index a nil value (field 'vooutput')This is reproducible when some of the
.voltsfollow the.execute(), but seems to not be reproducible if the.execute()is last.Repro script:
The text was updated successfully, but these errors were encountered: