Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- double j1=joints[0];
- double j2=joints[1];
- double j3=joints[2];
- double j4=joints[3];
- double j5=joints[4];
- double j6=joints[5];
- double w=joints[6];
- double gripper = joints[7];
- //char joint[20];
- char *joint= new char[40];
- char *jdenso;
- char *input3="q\r";
- //char inp3[]="q\r";
- //input3=inp3;
- sprintf(joint, "%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f,%.2f \r",j1,j2,j3,j4,j5,j6,w,gripper);
- serialPort.Write(joint);
- //serialPort.Read(); // MATTER HERE!!!!
- // *** START RS232 reading
- LONG lLastError = ERROR_SUCCESS;
- enum { EOF_Char = 115 };
- // Keep reading data, until an "s" or "S" has been received // EOF (CTRL-Z)
- bool fContinue = true;
- do
- {
- // Wait for an event
- lLastError = serialPort.WaitEvent(); // it waits here forever!!!!
- if (lLastError != ERROR_SUCCESS)
- ShowError(serialPort.GetLastError(), _T("Unable to wait for a COM-port event."));
- // Save event
- const CSerial::EEvent eEvent = serialPort.GetEventType();
- // Handle break event
- if (eEvent & CSerial::EEventBreak)
- {
- printf("\n### BREAK received ###\n");
- }
- // Handle CTS event
- if (eEvent & CSerial::EEventCTS)
- {
- printf("\n### Clear to send %s ###\n", serialPort.GetCTS()?"on":"off");
- }
- // Handle DSR event
- if (eEvent & CSerial::EEventDSR)
- {
- printf("\n### Data set ready %s ###\n", serialPort.GetDSR()?"on":"off");
- }
- // Handle error event
- if (eEvent & CSerial::EEventError)
- {
- printf("\n### ERROR: ");
- switch (serialPort.GetError())
- {
- case CSerial::EErrorBreak: printf("Break condition"); break;
- case CSerial::EErrorFrame: printf("Framing error"); break;
- case CSerial::EErrorIOE: printf("IO device error"); break;
- case CSerial::EErrorMode: printf("Unsupported mode"); break;
- case CSerial::EErrorOverrun: printf("Buffer overrun"); break;
- case CSerial::EErrorRxOver: printf("Input buffer overflow"); break;
- case CSerial::EErrorParity: printf("Input parity error"); break;
- case CSerial::EErrorTxFull: printf("Output buffer full"); break;
- default: printf("Unknown"); break;
- }
- printf(" ###\n");
- }
- // Handle ring event
- if (eEvent & CSerial::EEventRing)
- {
- printf("\n### RING ###\n");
- }
- // Handle RLSD/CD event
- if (eEvent & CSerial::EEventRLSD)
- {
- printf("\n### RLSD/CD %s ###\n", serialPort.GetRLSD()?"on":"off");
- }
- // Handle data receive event
- if (eEvent & CSerial::EEventRecv)
- {
- // Read data, until there is nothing left
- DWORD dwBytesRead = 0;
- char szBuffer[101];
- do
- {
- // Read data from the COM-port
- lLastError = serialPort.Read(szBuffer,sizeof(szBuffer)-1,&dwBytesRead);
- if (lLastError != ERROR_SUCCESS)
- ShowError(serialPort.GetLastError(), _T("Unable to read from COM-port."));
- if (dwBytesRead > 0)
- {
- // Finalize the data, so it is a valid string
- szBuffer[dwBytesRead] = '\0';
- // Display the data
- printf("%s", szBuffer);
- // Check if EOF (CTRL+'[') has been specified
- if (strchr(szBuffer,EOF_Char))
- fContinue = false;
- }
- }
- while (dwBytesRead == sizeof(szBuffer)-1);
- }
- }
- while (fContinue);
- // *** END RS232 reading
- serialPort.Write(input3);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement