lknds
Dependencies: mbed TrapezoidControl Pulse QEI
Communication/RS485/ActuatorHub/ActuatorHub.h
- Committer:
- t_yamamoto
- Date:
- 2018-09-08
- Revision:
- 0:669ef71cba68
- Child:
- 11:028a150943b5
File content as of revision 0:669ef71cba68:
#ifndef ACTUATORHUB_H_ #define ACTUATORHUB_H_ #include "../../../CommonLibraries/RingBuffer/RingBuffer.h" extern RINGBUFFER::RingBuffer RS485SendBuffer; extern RINGBUFFER::RingBuffer BluetoothSendBuffer; namespace ACTUATORHUB { #define MOTOR_ADDR 'M' #define MOTOR2_ADDR 'N' #define MOTOR3_ADDR 'O' #define SOLENOID_ADDR 'S' #define BLUETOOTH_ADDR 'B' namespace MOTOR { #define FREE 0 #define BACK 1 #define FOR 2 #define BRAKE 3 typedef struct { uint8_t dir; uint8_t pwm; }MotorStatus; typedef union { struct { int data3 : 2; int data2 : 2; int data1 : 2; int data0 : 2; }; uint8_t all; }MotorDirectionData; typedef struct { MotorDirectionData direction0to3; MotorDirectionData direction4to7; MotorDirectionData direction8to9; uint8_t pwm0; uint8_t pwm1; uint8_t pwm2; uint8_t pwm3; uint8_t pwm4; uint8_t pwm5; uint8_t pwm6; uint8_t pwm7; uint8_t pwm8; uint8_t pwm9; uint8_t pwm10; uint8_t pwm11; uint8_t pwm12; }AllMotorData; class Motor { public: static void Initialize(); static void Update(MotorStatus *status); static void SetDefault(); }; } namespace SOLENOID { #define SOLENOID_ON 1 #define SOLENOID_OFF 0 #define ALL_SOLENOID_ON 0xffff #define ALL_SOLENOID_OFF 0 typedef union { struct { int : 4; int solenoid11 : 1; int solenoid10 : 1; int solenoid9 : 1; int solenoid8 : 1; int solenoid7 : 1; int solenoid6 : 1; int solenoid5 : 1; int solenoid4 : 1; int solenoid3 : 1; int solenoid2 : 1; int solenoid1 : 1; int solenoid0 : 1; }; uint16_t all; }SolenoidStatus; class Solenoid { public: static void Initialize(); static void Update(SolenoidStatus status); }; } class ActuatorHub { public: static void Update(); }; } #endif