X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/b47c0a55a3721e635d5b28f61a46161f72894394..3a2bb63f0bb8de2aafb346b53b945c59b3f87a41:/lincan/src/sja1000.c diff --git a/lincan/src/sja1000.c b/lincan/src/sja1000.c index 5b549c4..d5f7b15 100644 --- a/lincan/src/sja1000.c +++ b/lincan/src/sja1000.c @@ -387,12 +387,6 @@ void sja1000_irq_read_handler(struct chip_t *chip, struct msgobj_t *obj) id = can_read_reg(chip, SJARXID0) | (can_read_reg(chip, SJARXID1)<<8); obj->rx_msg.length = len = id & 0x0f; obj->rx_msg.flags = id&sjaID0_RTR ? MSG_RTR : 0; - #ifdef CAN_MSG_VERSION_2 - obj->rx_msg.timestamp.tv_sec = 0; - obj->rx_msg.timestamp.tv_usec = 0; - #else /* CAN_MSG_VERSION_2 */ - obj->rx_msg.timestamp = 0; - #endif /* CAN_MSG_VERSION_2 */ obj->rx_msg.cob = 0; obj->rx_msg.id = id>>5; @@ -402,6 +396,9 @@ void sja1000_irq_read_handler(struct chip_t *chip, struct msgobj_t *obj) can_write_reg(chip, sjaCMR_RRB, SJACMR); + /* fill CAN message timestamp */ + can_filltimestamp(&obj->rx_msg.timestamp); + canque_filter_msg2edges(obj->qends, &obj->rx_msg); } while(can_read_reg(chip, SJASR) & sjaSR_RBS); } @@ -413,6 +410,9 @@ void sja1000_irq_write_handler(struct chip_t *chip, struct msgobj_t *obj) if(obj->tx_slot){ /* Do local transmitted message distribution if enabled */ if (processlocal){ + /* fill CAN message timestamp */ + can_filltimestamp(&obj->tx_slot->msg.timestamp); + obj->tx_slot->msg.flags |= MSG_LOCAL; canque_filter_msg2edges(obj->qends, &obj->tx_slot->msg); }