WPILibC++  2019.1.1-beta-4-28-g80f87ff
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
CanData.h
1 /*----------------------------------------------------------------------------*/
2 /* Copyright (c) 2017-2018 FIRST. All Rights Reserved. */
3 /* Open Source Software - may be modified and shared by FRC teams. The code */
4 /* must be accompanied by the FIRST BSD license file in the root directory of */
5 /* the project. */
6 /*----------------------------------------------------------------------------*/
7 
8 #pragma once
9 
10 #ifndef __FRC_ROBORIO__
11 
12 #include "HAL_Value.h"
13 #include "NotifyListener.h"
14 #include "hal/Types.h"
15 
16 typedef void (*HAL_CAN_SendMessageCallback)(const char* name, void* param,
17  uint32_t messageID,
18  const uint8_t* data,
19  uint8_t dataSize, int32_t periodMs,
20  int32_t* status);
21 
22 typedef void (*HAL_CAN_ReceiveMessageCallback)(
23  const char* name, void* param, uint32_t* messageID, uint32_t messageIDMask,
24  uint8_t* data, uint8_t* dataSize, uint32_t* timeStamp, int32_t* status);
25 
26 typedef void (*HAL_CAN_OpenStreamSessionCallback)(
27  const char* name, void* param, uint32_t* sessionHandle, uint32_t messageID,
28  uint32_t messageIDMask, uint32_t maxMessages, int32_t* status);
29 
30 typedef void (*HAL_CAN_CloseStreamSessionCallback)(const char* name,
31  void* param,
32  uint32_t sessionHandle);
33 
34 typedef void (*HAL_CAN_ReadStreamSessionCallback)(
35  const char* name, void* param, uint32_t sessionHandle,
36  struct HAL_CANStreamMessage* messages, uint32_t messagesToRead,
37  uint32_t* messagesRead, int32_t* status);
38 
39 typedef void (*HAL_CAN_GetCANStatusCallback)(
40  const char* name, void* param, float* percentBusUtilization,
41  uint32_t* busOffCount, uint32_t* txFullCount, uint32_t* receiveErrorCount,
42  uint32_t* transmitErrorCount, int32_t* status);
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 void HALSIM_ResetCanData(void);
49 
50 int32_t HALSIM_RegisterCanSendMessageCallback(
51  HAL_CAN_SendMessageCallback callback, void* param);
52 void HALSIM_CancelCanSendMessageCallback(int32_t uid);
53 
54 int32_t HALSIM_RegisterCanReceiveMessageCallback(
55  HAL_CAN_ReceiveMessageCallback callback, void* param);
56 void HALSIM_CancelCanReceiveMessageCallback(int32_t uid);
57 
58 int32_t HALSIM_RegisterCanOpenStreamCallback(
59  HAL_CAN_OpenStreamSessionCallback callback, void* param);
60 void HALSIM_CancelCanOpenStreamCallback(int32_t uid);
61 
62 int32_t HALSIM_RegisterCanCloseStreamCallback(
63  HAL_CAN_CloseStreamSessionCallback callback, void* param);
64 void HALSIM_CancelCanCloseStreamCallback(int32_t uid);
65 
66 int32_t HALSIM_RegisterCanReadStreamCallback(
67  HAL_CAN_ReadStreamSessionCallback callback, void* param);
68 void HALSIM_CancelCanReadStreamCallback(int32_t uid);
69 
70 int32_t HALSIM_RegisterCanGetCANStatusCallback(
71  HAL_CAN_GetCANStatusCallback callback, void* param);
72 void HALSIM_CancelCanGetCANStatusCallback(int32_t uid);
73 
74 #ifdef __cplusplus
75 } // extern "C"
76 #endif
77 
78 #endif
Storage for CAN Stream Messages.
Definition: CAN.h:39