blob: 3436a0bffa586fe3838adb1fb6cb65667c832f06 [file] [log] [blame]
Austin Schuh812d0d12021-11-04 20:16:48 -07001// Copyright (c) FIRST and other WPILib contributors.
2// Open Source Software; you can modify and/or share it under the terms of
3// the WPILib BSD license file in the root directory of this project.
Brian Silverman8fce7482020-01-05 13:18:21 -08004
5#include "hal/CAN.h"
6
7#include <FRC_NetworkCommunication/CANSessionMux.h>
8
Austin Schuh812d0d12021-11-04 20:16:48 -07009namespace hal::init {
Brian Silverman8fce7482020-01-05 13:18:21 -080010void InitializeCAN() {}
Austin Schuh812d0d12021-11-04 20:16:48 -070011} // namespace hal::init
Brian Silverman8fce7482020-01-05 13:18:21 -080012
13extern "C" {
14
15void HAL_CAN_SendMessage(uint32_t messageID, const uint8_t* data,
16 uint8_t dataSize, int32_t periodMs, int32_t* status) {
17 FRC_NetworkCommunication_CANSessionMux_sendMessage(messageID, data, dataSize,
18 periodMs, status);
19}
20void HAL_CAN_ReceiveMessage(uint32_t* messageID, uint32_t messageIDMask,
21 uint8_t* data, uint8_t* dataSize,
22 uint32_t* timeStamp, int32_t* status) {
23 FRC_NetworkCommunication_CANSessionMux_receiveMessage(
24 messageID, messageIDMask, data, dataSize, timeStamp, status);
25}
26void HAL_CAN_OpenStreamSession(uint32_t* sessionHandle, uint32_t messageID,
27 uint32_t messageIDMask, uint32_t maxMessages,
28 int32_t* status) {
29 FRC_NetworkCommunication_CANSessionMux_openStreamSession(
30 sessionHandle, messageID, messageIDMask, maxMessages, status);
31}
32void HAL_CAN_CloseStreamSession(uint32_t sessionHandle) {
33 FRC_NetworkCommunication_CANSessionMux_closeStreamSession(sessionHandle);
34}
35void HAL_CAN_ReadStreamSession(uint32_t sessionHandle,
36 struct HAL_CANStreamMessage* messages,
37 uint32_t messagesToRead, uint32_t* messagesRead,
38 int32_t* status) {
39 FRC_NetworkCommunication_CANSessionMux_readStreamSession(
40 sessionHandle, reinterpret_cast<tCANStreamMessage*>(messages),
41 messagesToRead, messagesRead, status);
42}
43void HAL_CAN_GetCANStatus(float* percentBusUtilization, uint32_t* busOffCount,
44 uint32_t* txFullCount, uint32_t* receiveErrorCount,
45 uint32_t* transmitErrorCount, int32_t* status) {
46 FRC_NetworkCommunication_CANSessionMux_getCANStatus(
47 percentBusUtilization, busOffCount, txFullCount, receiveErrorCount,
48 transmitErrorCount, status);
49}
50} // extern "C"