1 | #include <stdio.h>
|
2 | #include <stdlib.h>
|
3 | #include <string.h>
|
4 | #include <math.h>
|
5 |
|
6 | char uart_string[]="G01 X69.204775 Y23.337389 Z-0.100000 G01 X80.964849 Y21.666507 Z-0.100000 G00 Z0.100000";
|
7 |
|
8 | float coord[10][3];
|
9 |
|
10 | int number_of_coord = -1;
|
11 |
|
12 | void readcoord(void)
|
13 | {
|
14 |
|
15 |
|
16 | while (1)
|
17 | {
|
18 | switch (uart_char) // UART direkt lesen
|
19 | {
|
20 | case 'G':
|
21 | number_of_coord++;
|
22 | break;
|
23 |
|
24 | case 'X':
|
25 | coord[number_of_coord][0]=atof(px);
|
26 | break;
|
27 |
|
28 | case 'Y':
|
29 | coord[number_of_coord][1]=atof(px);
|
30 | break;
|
31 |
|
32 | case 'Z':
|
33 | coord[number_of_coord][2]=atof(px);
|
34 | break;
|
35 |
|
36 | case 0: // Abbruchbedingung 1 NULL-CHAR
|
37 | return;
|
38 |
|
39 | case '(': // Abbruchbedingung 2
|
40 | return;
|
41 |
|
42 | default:
|
43 | break;
|
44 | }
|
45 | }
|
46 | }
|
47 |
|
48 |
|
49 | int main(void)
|
50 | {
|
51 |
|
52 | px=uart_string;
|
53 |
|
54 | memset( coord,0,sizeof( coord));
|
55 |
|
56 | readcoord();
|
57 |
|
58 | for (number_of_coord=0;number_of_coord<10;number_of_coord++)
|
59 | {
|
60 | printf("%d\tx=%f\t\ty=%f\t\tz=%f\r\n",number_of_coord, coord[number_of_coord][0], coord[number_of_coord][1], coord[number_of_coord][2]);
|
61 | }
|
62 | }
|