mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
They can only include HAL/LV/HAL.h, HAL/cpp/*.h, and HAL/handles/*.h. Nothing else will work properly.
123 lines
4.0 KiB
C
123 lines
4.0 KiB
C
/*----------------------------------------------------------------------------*/
|
|
/* Copyright (c) FIRST 2013-2016. All Rights Reserved. */
|
|
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
|
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
|
/* the project. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#pragma once
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <cstddef>
|
|
|
|
#include "HAL/Types.h"
|
|
|
|
#define HAL_IO_CONFIG_DATA_SIZE 32
|
|
#define HAL_SYS_STATUS_DATA_SIZE 44
|
|
#define HAL_USER_STATUS_DATA_SIZE \
|
|
(984 - HAL_IO_CONFIG_DATA_SIZE - HAL_SYS_STATUS_DATA_SIZE)
|
|
|
|
#define HALFRC_NetworkCommunication_DynamicType_DSEnhancedIO_Input 17
|
|
#define HALFRC_NetworkCommunication_DynamicType_DSEnhancedIO_Output 18
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Header 19
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Extra1 20
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Vertices1 21
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Extra2 22
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Vertices2 23
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Joystick 24
|
|
#define HALFRC_NetworkCommunication_DynamicType_Kinect_Custom 25
|
|
|
|
struct HAL_ControlWord {
|
|
uint32_t enabled : 1;
|
|
uint32_t autonomous : 1;
|
|
uint32_t test : 1;
|
|
uint32_t eStop : 1;
|
|
uint32_t fmsAttached : 1;
|
|
uint32_t dsAttached : 1;
|
|
uint32_t control_reserved : 26;
|
|
};
|
|
|
|
enum HAL_AllianceStationID : int32_t {
|
|
HAL_AllianceStationID_kRed1,
|
|
HAL_AllianceStationID_kRed2,
|
|
HAL_AllianceStationID_kRed3,
|
|
HAL_AllianceStationID_kBlue1,
|
|
HAL_AllianceStationID_kBlue2,
|
|
HAL_AllianceStationID_kBlue3,
|
|
};
|
|
|
|
/* The maximum number of axes that will be stored in a single HALJoystickAxes
|
|
* struct. This is used for allocating buffers, not bounds checking, since
|
|
* there are usually less axes in practice.
|
|
*/
|
|
#define HAL_kMaxJoystickAxes 12
|
|
#define HAL_kMaxJoystickPOVs 12
|
|
|
|
struct HAL_JoystickAxes {
|
|
int16_t count;
|
|
float axes[HAL_kMaxJoystickAxes];
|
|
};
|
|
|
|
struct HAL_JoystickPOVs {
|
|
int16_t count;
|
|
int16_t povs[HAL_kMaxJoystickPOVs];
|
|
};
|
|
|
|
struct HAL_JoystickButtons {
|
|
uint32_t buttons;
|
|
uint8_t count;
|
|
};
|
|
|
|
struct HAL_JoystickDescriptor {
|
|
uint8_t isXbox;
|
|
uint8_t type;
|
|
char name[256];
|
|
uint8_t axisCount;
|
|
uint8_t axisTypes[HAL_kMaxJoystickAxes];
|
|
uint8_t buttonCount;
|
|
uint8_t povCount;
|
|
};
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
int32_t HAL_SetErrorData(const char* errors, int32_t errorsLength,
|
|
int32_t waitMs);
|
|
int32_t HAL_SendError(HAL_Bool isError, int32_t errorCode, HAL_Bool isLVCode,
|
|
const char* details, const char* location,
|
|
const char* callStack, HAL_Bool printMsg);
|
|
|
|
int32_t HAL_GetControlWord(HAL_ControlWord* controlWord);
|
|
HAL_AllianceStationID HAL_GetAllianceStation(int32_t* status);
|
|
int32_t HAL_GetJoystickAxes(int32_t joystickNum, HAL_JoystickAxes* axes);
|
|
int32_t HAL_GetJoystickPOVs(int32_t joystickNum, HAL_JoystickPOVs* povs);
|
|
int32_t HAL_GetJoystickButtons(int32_t joystickNum,
|
|
HAL_JoystickButtons* buttons);
|
|
int32_t HAL_GetJoystickDescriptor(int32_t joystickNum,
|
|
HAL_JoystickDescriptor* desc);
|
|
HAL_Bool HAL_GetJoystickIsXbox(int32_t joystickNum);
|
|
int32_t HAL_GetJoystickType(int32_t joystickNum);
|
|
char* HAL_GetJoystickName(int32_t joystickNum);
|
|
int32_t HAL_GetJoystickAxisType(int32_t joystickNum, int32_t axis);
|
|
int32_t HAL_SetJoystickOutputs(int32_t joystickNum, int64_t outputs,
|
|
int32_t leftRumble, int32_t rightRumble);
|
|
double HAL_GetMatchTime(int32_t* status);
|
|
|
|
#ifndef HAL_USE_LABVIEW
|
|
|
|
void HAL_WaitForDSData(void);
|
|
void HAL_InitializeDriverStation(void);
|
|
|
|
void HAL_ObserveUserProgramStarting(void);
|
|
void HAL_ObserveUserProgramDisabled(void);
|
|
void HAL_ObserveUserProgramAutonomous(void);
|
|
void HAL_ObserveUserProgramTeleop(void);
|
|
void HAL_ObserveUserProgramTest(void);
|
|
|
|
#endif // HAL_USE_LABVIEW
|
|
|
|
#ifdef __cplusplus
|
|
} // extern "C"
|
|
#endif
|