Diese Funktion der CAA_CanL2.library schreibt eine CAN Meldung über eine mittels hDriver spezifizierte CAN Schnittstelle.
Wenn die Nachricht nicht sofort gesendet werden kann, dann puffert der Treiber entweder die Nachricht oder er gibt einen Fehlerkode "CL2.SENDING_ERROR“ zurück und das Sendeverfahren muss wiederholt werden.
Meldungen mit der gleichen Priorität werden in chronologischer Reihenfolge gesendet. Meldungen mit höherer Priorität werden immer vor denjenigen mit geringerer Priorität gesendet. Die Priorität 0 hat eine besondere Bedeutung: Meldungen mit Priorität 0 werden nicht in die Warteschlange gestellt, sondern so schnell wie möglich vor allen anderen auf das Versenden wartenden Meldungen gesendet. Wird eine für den Treiber nicht gültige Prioritätsstufe vorgegeben, dann wird die Meldung nicht gesendet, sondern mit einem Fehlercode zurückgegeben.
Ist der “CANopen SYNC” Dienst mit CL2.EnableSyncServic aktiviert, dann kann der Parameter “xEnableSyncWindows” dazu verwendet werden, zu garantieren, dass die Meldungen nur innerhalb des laufenden SYNC Fensters gesendet werden. Wenn die zugrunde gelegte “coblD” für Empfang registriert ist, dann kann eine erfolgreich gesendete Meldung über CL2.READ mit aktuellem Zeitstempel empfangen werden. Die Anwendung der Funktion CL2.IsTransmitMessage auf derlei Meldungen gibt den Wert TRUE zurück.
hDriver |
CAA.HANDLE |
Handle von CAN Schnittstelle |
hMessage |
CAA.HANDLE |
Handle der zu schreibenden CAN Meldung |
usiPriority |
USINT |
Priorität für das Versenden der Meldung mit Werten von 1 (höchste Priorität) bis 9. Kann mit GetProperty abgefragt werden. usiPrioity = 0 erzwingt sofortiges Versenden! |
xEnableSyncWindow* |
BOOL |
TRUE: Nur innerhalb des aktuellen Sync Fensters versenden |
Ausgang:
eError |
CL2.ERROR |
Fehlercode (Aufzählungstyp) |