SocketCAN und Message Object

Gast #4069172
Lesenswert?

Hallo zusammen,

ich arbeite gerade mit dem SocketCAN auf einem Linux PC. An sich läuft 
der CAN auch, ich kann Daten senden und empfangen.
Von Steuergeräten kenne ich es so, dass es mehrere Message Objects gibt. 
Man kann dort bestimmte ID Bereich einem Object zuordnen.
Beispiel: ID 0 - 9F fällt in das Message Object 1, ID 100 - 12F in das 
Message Object 2 usw.

Kann ich das mit SocketCAN auch realisieren? Kann ich mehrere Sockets 
parallel erzeugen?

Danke im Voraus.

Gruß Pit
Gast #4069191
Lesenswert?

stephan schrieb:
> das macht man über filter, das geht auch mit socketCAN

Muss ich dafür dann mehrere Sockets anlegen? Also so:
1
mySkt1 = socket( PF_CAN, SOCK_RAW, CAN_RAW );
2
mySkt2 = socket( PF_CAN, SOCK_RAW, CAN_RAW );
3

4
.
5
.
6

7
setsockopt(mySkt, SOL_CAN_RAW, CAN_RAW_FILTER, &t_Filter1, sizeof(t_Filter1) );
8
setsockopt(mySkt, SOL_CAN_RAW, CAN_RAW_FILTER, &t_Filter2, sizeof(t_Filter2) );
9

10
.
11
.
12
bind( mySkt1, (struct sockaddr*)&addr, sizeof(addr) );
13
bind( mySkt2, (struct sockaddr*)&addr, sizeof(addr) );

und empfangen dann über
1
read( mySkt1, &frame, sizeof(frame) );

bzw.
1
read( mySkt2, &frame, sizeof(frame) );

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren