diff --git a/src/lindbergh/lindbergh.c b/src/lindbergh/lindbergh.c index e143b1b..cc900ed 100644 --- a/src/lindbergh/lindbergh.c +++ b/src/lindbergh/lindbergh.c @@ -444,7 +444,7 @@ int main(int argc, char *argv[]) continue; } - if (strcmp(argv[i], "-z") == 0 || strcmp(argv[i], "--ziink") == 0) + if (strcmp(argv[i], "-z") == 0 || strcmp(argv[i], "--zink") == 0) { zink = 1; continue; diff --git a/src/lindbergh/passthrough.c b/src/lindbergh/passthrough.c index 60f66e4..a2d8eca 100644 --- a/src/lindbergh/passthrough.c +++ b/src/lindbergh/passthrough.c @@ -159,11 +159,8 @@ void *readJVSFrameThread(void * arg) ackSize = 0; waitForEnd = 0; - do { - while (jvsFrameBuffer.ready == 1) - { - usleep(1); - } + do + { // printf("SERIAL thread debug: trying to read byte.\n"); // Try to read a byte from serial, this call will be blocking if VMIN > 0 and VTIME = 0 bytesRead = read(fd, &localBuffer[byteCount], 1); @@ -198,7 +195,6 @@ void *readJVSFrameThread(void * arg) } } while (waitForEnd); - // Lock the buffer while we write to it pthread_mutex_lock(&jvsBuffer_lock); memcpy(jvsFrameBuffer.buffer, localBuffer, byteCount); @@ -247,7 +243,7 @@ JVSFrame readJVSFrameFromThread() { // Check if we have a valid frame if (jvsFrameBuffer.ready == 1) { - memcpy(&frame, &jvsFrameBuffer, sizeof(JVSFrame)); + frame = jvsFrameBuffer; // It has been red, we disable this frame jvsFrameBuffer.ready = 0; } else {