Ik heb een stukje code waarmee ik een omvormer serieel kan uitlezen. Deze code kan ik op een X86 pc zonder problemen compileren, maar op mijn Raspberry Pi kom ik er niet verder mee :
effekta-test.c: In function âmainâ:
effekta-test.c:6:4: error: unknown type name âMbm_trameâ
effekta-test.c:15:4: error: âMb_verboseâ undeclared (first use in this function)
effekta-test.c:15:4: note: each undeclared identifier is reported only once for each function it appears in
effekta-test.c:21:9: error: request for member âdeviceâ in something not a structure or union
effekta-test.c:22:9: error: request for member âfunctionâ in something not a structure or union
effekta-test.c:23:9: error: request for member âslaveâ in something not a structure or union
effekta-test.c:24:9: error: request for member âaddressâ in something not a structure or union
effekta-test.c:25:9: error: request for member âlengthâ in something not a structure or union
effekta-test.c:26:9: error: request for member âtimeoutâ in something not a structure or union
effekta-test.c:28:44: error: âNULLâ undeclared (first use in this function)
effekta-test.c:32:23: warning: incompatible implicit declaration of built-in function âprintfâ [enabled by default]
effekta-test.c:39:7: warning: incompatible implicit declaration of built-in function âprintfâ [enabled by default]
Ook de nieuwste versie van libmodbus (dus niet via de repository) maakte geen verschil. Enig idee waar ik dit moet zoeken?
effekta-test.c: In function âmainâ:
effekta-test.c:6:4: error: unknown type name âMbm_trameâ
effekta-test.c:15:4: error: âMb_verboseâ undeclared (first use in this function)
effekta-test.c:15:4: note: each undeclared identifier is reported only once for each function it appears in
effekta-test.c:21:9: error: request for member âdeviceâ in something not a structure or union
effekta-test.c:22:9: error: request for member âfunctionâ in something not a structure or union
effekta-test.c:23:9: error: request for member âslaveâ in something not a structure or union
effekta-test.c:24:9: error: request for member âaddressâ in something not a structure or union
effekta-test.c:25:9: error: request for member âlengthâ in something not a structure or union
effekta-test.c:26:9: error: request for member âtimeoutâ in something not a structure or union
effekta-test.c:28:44: error: âNULLâ undeclared (first use in this function)
effekta-test.c:32:23: warning: incompatible implicit declaration of built-in function âprintfâ [enabled by default]
effekta-test.c:39:7: warning: incompatible implicit declaration of built-in function âprintfâ [enabled by default]
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| #include <modbus.h> int main() { int device; Mbm_trame trame; int result; int data_in[256]; int data_out[256]; char data[256]; int i; /* print debugging informations */ Mb_verbose=1; /* open device */ device=Mb_open_device("/dev/ttyUSB0",9600,0,8,1); /* setup master packet */ trame.device=device; trame.function=3; /* read data */ trame.slave=1; /* slave number*/ trame.address=0xC020; trame.length=19; trame.timeout=1000; result=Mb_master(trame,data_in,data_out,NULL,NULL); /* return 0 if ok */ if (result<0) { if (result==-1) printf("error : unknow function\n"); else if (result==-2) printf("crc error\n"); else if (result==-3) printf("timeout error\n"); else if (result==-4) printf("error : bad slave answer\n"); else printf("unknown result: %d\n",result); } else printf("ok\n"); for(i=0;i<19;i++) { printf("Register %d: %d\n",i,data_out[i]); } Mb_close_device(device); return 0; } |
Ook de nieuwste versie van libmodbus (dus niet via de repository) maakte geen verschil. Enig idee waar ik dit moet zoeken?