Use common timer method to get BCM timeval values.
authorRomain Forlot <romain.forlot@iot.bzh>
Tue, 16 May 2017 10:49:03 +0000 (12:49 +0200)
committerRomain Forlot <romain.forlot@iot.bzh>
Fri, 19 May 2017 09:36:43 +0000 (11:36 +0200)
Change-Id: I3c4364d6038bd60546726fba940f043f5abcb6d2
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
CAN-binder/low-can-binding/can/can-signals.cpp

index 6a68214..0b58967 100644 (file)
@@ -233,15 +233,13 @@ int can_signal_t::create_rx_filter()
        memset(&cfd, 0, sizeof(cfd));
        memset(&bcm_msg.msg_head, 0, sizeof(bcm_msg.msg_head));
        float val = (float)(1 << bit_size_)-1;
-       float freq = frequency_.frequency_to_period();
-       if(freq <= 0)
-               freq = 0.000001f;
+       struct timeval freq = frequency_.get_timeval_from_period();
 
        bcm_msg.msg_head.opcode  = RX_SETUP;
        bcm_msg.msg_head.can_id  = can_id;
        bcm_msg.msg_head.flags = SETTIMER|RX_NO_AUTOTIMER;
-       bcm_msg.msg_head.ival2.tv_sec = long(freq);
-       bcm_msg.msg_head.ival2.tv_usec = (freq - (long)freq) * 1000000;
+       bcm_msg.msg_head.ival2.tv_sec = freq.tv_sec ;
+       bcm_msg.msg_head.ival2.tv_usec = freq.tv_usec;
        bcm_msg.msg_head.nframes = 1;
        bitfield_encode_float(val,
                                                                                bit_position_,