--- robotserver.c 2017-09-06 15:05:51.351620444 +0200 +++ robotserver.c.v1 2017-09-06 14:57:09.907562715 +0200 @@ -675,17 +675,21 @@ /* Set the hand (lefty or righty) for a position on a tray */ char *SetHanded(int nb, char *buf, int *args) { - int result; - float y; - - result = InterpolatePosition(nb, args); - if (result) { - y = moveCoords[1]; - if (y < 0.0) strcpy(buf, "@LEFTY\r"); - else strcpy(buf, "@RIGHTY\r"); - return(buf); - } - return(NULL); +int traynb, row, col; +float x, y, z, rot; + traynb = args[nb]; + col = args[nb+1]; + row = args[nb+2]; + if ((traynb >= TRAY_FIRST) && (traynb <= TRAY_LAST)) { + traynb--; + if ((row >= 1) && (row <= tray[traynb].rows) && (col >= 1) && (col <= tray[traynb].columns)) { + y = tray[traynb].y - tray[traynb].yoff - tray[traynb].dy*(row-1); + if (y < 0.0) strcpy(buf, "@LEFTY\r"); + else strcpy(buf, "@RIGHTY\r"); + return(buf); + } + } + return(NULL); } /* End of SetHanded */ /* Set the hand (lefty or righty) for a tester */ @@ -1741,8 +1745,8 @@ GetCtrlVal (CalPanel, CALPANEL_CORNER, &Corner); GetCtrlVal (CalPanel, CALPANEL_Z, &Z); - Xpos = tray[TrayNr-1].xFirstRowFirstCol + XOffset[Corner]; //DS: TO-BE-CHECKED - Ypos = tray[TrayNr-1].yFirstRowFirstCol + YOffset[Corner]; //DS: TO-BE-CHECKED + Xpos = tray[TrayNr-1].x + XOffset[Corner]; + Ypos = tray[TrayNr-1].y + YOffset[Corner]; if (TrayNr >= 5) ComWrt (ComPort, "@LEFTY\r", 7);