From 3067e8af207da1c2cdd1961afa42cc7448c561ae Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Tue, 3 Mar 2020 20:21:38 +0100 Subject: Wait for rob --- cam/cam.c | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/cam/cam.c b/cam/cam.c index c4acb0c..5b9f464 100644 --- a/cam/cam.c +++ b/cam/cam.c @@ -99,6 +99,8 @@ void cv_deinit (img_s *img); static int session (int i, img_s *img); static +int wait_rob (void); +static int proc_cv (uint8_t *restrict blue11, img_s *restrict img); @@ -300,9 +302,9 @@ int session (int i, img_s *img) time_0 = clock(); status = -1; - n = recv(rob, buf, ARRAY_SIZE(cam_data) - 1, 0); - if (n < 0) + if (wait_rob()) goto err; + status--; if (proc_cv(&blue11, img)) goto err; status--; @@ -324,6 +326,26 @@ err: return status; } +static +int wait_rob (void) +{ + char buf[BUFSIZ]; + ssize_t n; + int status; + + status = -1; + n = recv(rob, buf, ARRAY_SIZE(buf) - 1, 0); + if (n < 0) + goto err; + status--; + if (!n) + goto err; + return 0; +err: + fprintf(stderr, "cam#%"PRIpid": ERROR: wait_rob(): %i\n", pid, status); + return status; +} + static int proc_cv (uint8_t *restrict blue11, img_s *restrict img) { -- cgit v1.2.3