You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

46 lines
1.3 KiB

1 year ago
  1. #include <stddef.h>
  2. #include <stdio.h>
  3. #include "base/config_service.hpp"
  4. #include "base/device_info.hpp"
  5. #include "spi.h"
  6. #include "usart.h"
  7. #include "zsdk/modbus/modbus_block_host.hpp"
  8. #include "zsdk/pxx_pressure_sensor_driver/pxx_pressure_sensor_bus.hpp"
  9. #include "zsdk/tmc/ztmc5130.hpp"
  10. #include "zsdk/zsdk.hpp"
  11. void hardware_init();
  12. namespace iflytop {
  13. class Hardware {
  14. ZSPI m_motor_spi; //
  15. ModbusBlockHost m_modbusBlockHost; //
  16. TMC5130 m_motor[2]; // 蠕动泵控制
  17. ZGPIO m_sl_mini_ac_ctrl; // 喷液空压机(MINI)
  18. ZGPIO m_atta_mini_air_compressor_ctrl; // 气密性测试空压机(MINI)
  19. PXXPressureSensorBus m_pressureSensorBus; // PXX压力传感器总线
  20. public:
  21. static Hardware& ins() {
  22. static Hardware ins;
  23. return ins;
  24. }
  25. void init();
  26. int32_t motorNum() { return ZARRAY_SIZE(m_motor); }
  27. TMC5130* motor(int32_t index) {
  28. if (index < ZARRAY_SIZE(m_motor)) {
  29. return &m_motor[index];
  30. }
  31. return nullptr;
  32. }
  33. ZGPIO* sl_mini_ac_ctrl() { return &m_sl_mini_ac_ctrl; }
  34. ZGPIO* atta_mini_air_compressor_ctrl() { return &m_atta_mini_air_compressor_ctrl; }
  35. PXXPressureSensorBus* pressureSensorBus() { return &m_pressureSensorBus; }
  36. };
  37. } // namespace iflytop