Libbarrett  1.2.4
include/barrett/products/abstract/multi_puck_product.h
Go to the documentation of this file.
00001 
00032 #ifndef MULTI_PUCK_PRODUCT_H_
00033 #define MULTI_PUCK_PRODUCT_H_
00034 
00035 
00036 #include <vector>
00037 
00038 #include <barrett/detail/ca_macro.h>
00039 #include <barrett/bus/abstract/communications_bus.h>
00040 #include <barrett/products/puck.h>
00041 #include <barrett/products/puck_group.h>
00042 #include <barrett/products/motor_puck.h>
00043 
00044 
00045 namespace barrett {
00046 
00047 
00048 class MultiPuckProduct {
00049 public:
00051         MultiPuckProduct(size_t DOF, const std::vector<Puck*>& pucks, int groupId, const enum Puck::Property props[], const size_t numProps, const char* syslogStr = NULL);
00052         ~MultiPuckProduct();
00054         const std::vector<Puck*>& getPucks() const { return pucks; }
00056         const std::vector<MotorPuck>& getMotorPucks() const { return motorPucks; }
00058         const PuckGroup& getPuckGroup() const { return group; }
00059 
00060 protected:
00061         const bus::CommunicationsBus& bus;
00062         std::vector<Puck*> pucks;
00063         std::vector<MotorPuck> motorPucks;
00064         PuckGroup group;
00065 
00066 private:
00067         DISALLOW_COPY_AND_ASSIGN(MultiPuckProduct);
00068 };
00069 
00070 
00071 }
00072 
00073 
00074 #endif /* MULTI_PUCK_PRODUCT_H_ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Defines