pcanbasic-sys 0.1.0

Rust bindings for the PCAN-Basic library
#![allow(non_camel_case_types)]
#![allow(non_snake_case)]
#![allow(non_upper_case_globals)]
// #![allow(dead_code)]
include!(concat!(env!("OUT_DIR"), "/pcanbasic_sys.rs"));

#[cfg(test)]
mod tests {
    use crate as pcan_sys;

    #[test]
    fn can_tx() {
        unsafe {
            let res =
                pcan_sys::CAN_Initialize(pcan_sys::PCAN_USBBUS1, pcan_sys::PCAN_BAUD_500K, 0, 0, 0);
            assert_eq!(res, pcan_sys::PCAN_ERROR_OK, "Could not initialize CAN.");

            let res = pcan_sys::CAN_FilterMessages(
                pcan_sys::PCAN_USBBUS1,
                0x35a,
                0x35b,
                pcan_sys::PCAN_MODE_STANDARD,
            );
            assert_eq!(
                res,
                pcan_sys::PCAN_ERROR_OK,
                "Could not install CAN ID filters."
            );

            let buf: [u8; 8] = [0xfa, 0xce, 0xca, 0xca, 0, 0, 0, 0];
            let mut msg = pcan_sys::TPCANMsg {
                ID: 0x35b,
                MSGTYPE: pcan_sys::PCAN_MESSAGE_STANDARD,
                LEN: 4,
                DATA: buf,
            };

            let res = pcan_sys::CAN_Write(pcan_sys::PCAN_USBBUS1, &mut msg);
            assert_eq!(res, pcan_sys::PCAN_ERROR_OK, "Could not send CAN message.");
        }
    }
}