vcan_msg_status =============== Here is the definition:: typedef enum { VCAN_OK=0, VCAN_ACCESS_ERR = 1,/* access error, see errorcode ! */ VCAN_TM_OUT = 2,/* timeout occured */ VCAN_LOST = 4,/* some data was lost */ VCAN_OLD = 8,/* the data was already read (no new data present) */ VCAN_INCONSISTENT= 16,/* indicates that (due to overload or a missing object-owner) there may be inconsistent data) */ VCAN_TX_ERR = 32,/* transmission error, the transmission was cancelled due to an error, this concerns writing and remote-transfers (see also errorcode) */ VCAN_Q_OVERFLOW = 64,/* queue overflow, (vcan_queue_read), the object data is valid but there was an internal queue overflow*/ VCAN_Q_IGNORE =128,/* the result of the function vcan_queue_readnow has to be ignored, actually there was no CAN event although the user process received a signal. */ VCAN_WAIT =256 /* vcan_writetimed: user has still to wait before data can be sent */ } vcan_msg_status; This is the status that is returned when an action is performed on a message. Only the ``vcan_message`` - structure has a field of this type. The status-flags can be combined, since they are powers of 2. Testing for a single status-flag is done as follows:: /* be 'status' a variable with several status-flags */ /* test for 'VCAN_LOST' : */ if (status & VCAN_LOST) printf("data was lost!!!\n"); /* test for 'VCAN_OLD': */ if (status & VCAN_OLD) printf("only old data was read!\n"); Explanation of the status-flags: VCAN_OK There was no error. VCAN_ACCESS_ERR There was an error, the error-code can be found in the message's error-variable. VCAN_TM_OUT A timeout occured. Note that for ordinary reads (not remote-reads) a timeout is not viewed as an error and there is no additional error-flag set or error-code returned. functions VCAN_LOST A message (data from the CAN bus) was lost. VCAN_OLD The data has already been read before, so OLD data was returned. VCAN_INCONSISTENT Inconsistent data was returned. The data consists of old and new data from the CAN bus that are mixed up. VCAN_TX_ERR A transmission error was recognized. The transmission was not performed correctly. This error can also be signalled on remote-transfers when remote-read is used (since there is a *sending* of a remote frame involved). VCAN_Q_OVERFLOW There was an overflow in the internal event-queue. Events on some event-objects were lost. VCAN_Q_IGNORE The result of the function ``vcan_queue_readnow`` has to be ignored. The user-process received a signal although there was no CAN event. This can sometimes happen in conjunction with signal-event objects. VCAN_WAIT This status can only be returned when VCAN_WRITETIMED is used. In this case the specified inhibit-time has not yet been passed, the user program has to wait.