can stuff added by ovenpasta on Sat Mar 7 20:55:56 2015


(define (serial-can-recv dev msg . timeout)
  (let ((msg (make-can_message))
	(func	  (foreign-lambda int "serial_can_recv" serial-device can_message))
	(func2	  (foreign-lambda int "serial_can_recv_timeout" serial-device can_message int)))
    (if (> 0 (if (null? timeout) (func dev msg) (func2 dev msg (car timeout)))
	   (begin  (free-can_message msg)
		   (raise "failed"))))
    (free-can_message msg)
    #t))