mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-25 01:41:43 +00:00
Get halsim_gazebo building again (#1201)
This commit is contained in:
committed by
Peter Johnson
parent
fe5d7dd6ba
commit
74efe5aafe
@@ -0,0 +1,26 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 "HALSimGazebo.h"
|
||||
#include "simulation/gz_msgs/msgs.h"
|
||||
|
||||
class GazeboAnalogIn {
|
||||
public:
|
||||
GazeboAnalogIn(int index, HALSimGazebo* halsim);
|
||||
void SetInitialized(bool value) { m_initialized = value; }
|
||||
bool IsInitialized(void) { return m_initialized; }
|
||||
void Listen(void);
|
||||
|
||||
private:
|
||||
HALSimGazebo* m_halsim;
|
||||
int m_index;
|
||||
bool m_initialized;
|
||||
void Callback(const gazebo::msgs::ConstFloat64Ptr& msg);
|
||||
gazebo::transport::SubscriberPtr m_sub;
|
||||
};
|
||||
26
simulation/halsim_gazebo/src/main/native/include/GazeboDIO.h
Normal file
26
simulation/halsim_gazebo/src/main/native/include/GazeboDIO.h
Normal file
@@ -0,0 +1,26 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 "HALSimGazebo.h"
|
||||
#include "simulation/gz_msgs/msgs.h"
|
||||
|
||||
class GazeboDIO {
|
||||
public:
|
||||
GazeboDIO(int index, HALSimGazebo* halsim);
|
||||
void SetInitialized(bool value) { m_initialized = value; }
|
||||
bool IsInitialized(void) { return m_initialized; }
|
||||
void Listen(void);
|
||||
|
||||
private:
|
||||
HALSimGazebo* m_halsim;
|
||||
int m_index;
|
||||
bool m_initialized;
|
||||
void Callback(const gazebo::msgs::ConstBoolPtr& msg);
|
||||
gazebo::transport::SubscriberPtr m_sub;
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 "HALSimGazebo.h"
|
||||
#include "simulation/gz_msgs/msgs.h"
|
||||
|
||||
class GazeboEncoder {
|
||||
public:
|
||||
GazeboEncoder(int index, HALSimGazebo* halsim);
|
||||
void SetInitialized(bool value) { m_initialized = value; }
|
||||
bool IsInitialized(void) { return m_initialized; }
|
||||
void SetReverse(bool value) { m_reverse = value; }
|
||||
void Control(const char* command);
|
||||
void Listen(void);
|
||||
|
||||
private:
|
||||
HALSimGazebo* m_halsim;
|
||||
int m_index;
|
||||
bool m_initialized;
|
||||
bool m_reverse;
|
||||
|
||||
void Callback(const gazebo::msgs::ConstFloat64Ptr& msg);
|
||||
|
||||
gazebo::transport::PublisherPtr m_pub;
|
||||
gazebo::transport::SubscriberPtr m_sub;
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 <string>
|
||||
|
||||
#include <gazebo/gazebo_client.hh>
|
||||
#include <gazebo/transport/transport.hh>
|
||||
|
||||
class GazeboNode {
|
||||
public:
|
||||
bool Connect();
|
||||
|
||||
template <typename M>
|
||||
gazebo::transport::PublisherPtr Advertise(const std::string& topic,
|
||||
int queueLimit = 10,
|
||||
bool latch = false) {
|
||||
return main->Advertise<M>(topic, queueLimit, latch);
|
||||
}
|
||||
|
||||
template <typename M, typename T>
|
||||
gazebo::transport::SubscriberPtr Subscribe(
|
||||
const std::string& topic,
|
||||
void (T::*fp)(const boost::shared_ptr<M const>&), T* obj,
|
||||
bool latching = false) {
|
||||
return main->Subscribe(topic, fp, obj, latching);
|
||||
}
|
||||
|
||||
template <typename M>
|
||||
gazebo::transport::SubscriberPtr Subscribe(
|
||||
const std::string& topic, void (*fp)(const boost::shared_ptr<M const>&),
|
||||
bool latching = false) {
|
||||
return main->Subscribe(topic, fp, latching);
|
||||
}
|
||||
|
||||
private:
|
||||
gazebo::transport::NodePtr main;
|
||||
};
|
||||
29
simulation/halsim_gazebo/src/main/native/include/GazeboPCM.h
Normal file
29
simulation/halsim_gazebo/src/main/native/include/GazeboPCM.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 "HALSimGazebo.h"
|
||||
|
||||
class GazeboPCM {
|
||||
public:
|
||||
GazeboPCM(int index, int channel, HALSimGazebo* halsim);
|
||||
void Publish(bool value);
|
||||
void SetInitialized(bool value) { m_initialized = value; }
|
||||
bool IsInitialized(void) { return m_initialized; }
|
||||
|
||||
private:
|
||||
HALSimGazebo* m_halsim;
|
||||
int m_index;
|
||||
int m_channel;
|
||||
|
||||
bool m_initialized;
|
||||
|
||||
gazebo::transport::PublisherPtr m_pub;
|
||||
};
|
||||
|
||||
void GazeboPCM_SetPressureSwitch(int index, bool value);
|
||||
24
simulation/halsim_gazebo/src/main/native/include/GazeboPWM.h
Normal file
24
simulation/halsim_gazebo/src/main/native/include/GazeboPWM.h
Normal file
@@ -0,0 +1,24 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 "HALSimGazebo.h"
|
||||
|
||||
class GazeboPWM {
|
||||
public:
|
||||
GazeboPWM(int port, HALSimGazebo* halsim);
|
||||
void SetInitialized(bool value) { m_initialized = value; }
|
||||
bool IsInitialized(void) { return m_initialized; }
|
||||
void Publish(double value);
|
||||
|
||||
private:
|
||||
HALSimGazebo* m_halsim;
|
||||
gazebo::transport::PublisherPtr m_pub;
|
||||
bool m_initialized;
|
||||
int m_port;
|
||||
};
|
||||
@@ -0,0 +1,32 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2014-2018 FIRST. 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 <vector>
|
||||
|
||||
#include "GazeboNode.h"
|
||||
|
||||
class GazeboPWM;
|
||||
class GazeboPCM;
|
||||
class GazeboEncoder;
|
||||
class GazeboAnalogIn;
|
||||
class GazeboDIO;
|
||||
|
||||
class HALSimGazebo {
|
||||
public:
|
||||
static const int kPWMCount = 20;
|
||||
static const int kPCMCount = 8;
|
||||
static const int kEncoderCount = 8;
|
||||
|
||||
GazeboNode node;
|
||||
GazeboPWM* pwms[kPWMCount];
|
||||
GazeboPCM* pcms[kPCMCount];
|
||||
GazeboEncoder* encoders[kEncoderCount];
|
||||
std::vector<GazeboAnalogIn*> analog_inputs;
|
||||
std::vector<GazeboDIO*> dios;
|
||||
};
|
||||
Reference in New Issue
Block a user