amiro-os / devices / DiWheelDrive / DiWheelDrive.h @ a47d64ad
History | View | Annotate | Download (1.817 KB)
1 | 58fe0e0b | Thomas Schöpping | #ifndef AMIRO_DI_WHEEL_DRIVE_H_
|
---|---|---|---|
2 | #define AMIRO_DI_WHEEL_DRIVE_H_
|
||
3 | |||
4 | #include <amiro/ControllerAreaNetworkRx.h> |
||
5 | #include <amiro/ControllerAreaNetworkTx.h> |
||
6 | #include <amiro/MotorIncrements.h> |
||
7 | #include <amiro/MotorControl.h> |
||
8 | #include <amiro/Odometry.h> |
||
9 | #include <amiro/proximity/vcnl4020.hpp> |
||
10 | #include <Types.h> // kinematic |
||
11 | #include <amiro/FileSystemInputOutput/FSIODiWheelDrive.hpp> |
||
12 | #include <amiro/power/ltc4412.hpp> |
||
13 | #include <string.h> // memcpy |
||
14 | |||
15 | namespace amiro { |
||
16 | |||
17 | class DiWheelDrive : public ControllerAreaNetworkTx, public ControllerAreaNetworkRx { |
||
18 | public:
|
||
19 | DiWheelDrive(CANDriver *can);//, MotorControl *motorcontrol, Odometry *odometry, VCNL4020 (*vcnl4020)[4], fileSystemIo::FSIODiWheelDrive *memory, BaseLTC4412wEN *ltc4412);
|
||
20 | virtual void calibrate();
|
||
21 | |||
22 | /** \brief Handle the termination of ControllerAreaNetworkTx and ControllerAreaNetworkRx threads
|
||
23 | * This includes waiting until the threads have terminated, thus this function might block a relatively long time.
|
||
24 | */
|
||
25 | msg_t terminate(void);
|
||
26 | |||
27 | /** \brief Handle the start of ControllerAreaNetworkTx and ControllerAreaNetworkRx threads */
|
||
28 | ThreadReference start(tprio_t PRIO); |
||
29 | 8c99e03a | galberding | /**
|
30 | * Set Request to disable or enable the Charging.
|
||
31 | * @param power 0 to disable, 1 to enable
|
||
32 | */
|
||
33 | void requestCharging(uint8_t power);
|
||
34 | 84b4c632 | galberding | void transmitState(int8_t state);
|
35 | 58fe0e0b | Thomas Schöpping | |
36 | protected:
|
||
37 | virtual msg_t receiveMessage(CANRxFrame *frame); |
||
38 | virtual msg_t updateSensorVal(); |
||
39 | virtual void periodicBroadcast();
|
||
40 | |||
41 | void calibrateProximityFloorValues();
|
||
42 | |||
43 | private:
|
||
44 | uint32_t bcCounter; |
||
45 | // MotorControl *motorcontrol;
|
||
46 | // Odometry *odometry;
|
||
47 | // VCNL4020 (*vcnl4020)[4];
|
||
48 | // fileSystemIo::FSIODiWheelDrive *memory;
|
||
49 | // BaseLTC4412wEN *ltc4412;
|
||
50 | int actualSpeed[2]; |
||
51 | types::position robotPosition; |
||
52 | |||
53 | }; |
||
54 | |||
55 | } |
||
56 | |||
57 | #endif /* AMIRO_DI_WHEEL_DRIVE_H_ */ |