MotorControlModuleSDFM_TMS3.../Projects/EFC_Communication/UMLibrary/application/drivers/PrimaryEncoderSetup.hh
2024-06-07 11:12:56 +03:00

73 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* PrimaryEncoderSetup.h
*
* Created on: 3 окт. 2019 г.
* Author: user
*/
#ifndef SOURCE_APPLICATION_BOARD_PRIMARYENCODERSETUP_H_
#define SOURCE_APPLICATION_BOARD_PRIMARYENCODERSETUP_H_
#include "../ISetupStep.hh"
#include "../../peripheral/ISerialPort.hh"
#include "../../peripheral/IGpio.hh"
namespace application { namespace board {
struct PrimaryEncoderSetup : public ISetupStep {
peripheral::ISerialPort * serial_port = nullptr;
peripheral::IGpio * de_pin = nullptr;
peripheral::IGpio * power_pin = nullptr;
peripheral::IGpio * cs21_pin = nullptr;
peripheral::IGpio * cs22_pin = nullptr;
bool input( Environment & env );
void build( Environment & env );
struct Links {
//Input:
Environment::Id serial_port_id;
Environment::GpioId de_pin_id;
Environment::GpioId power_pin_id;
Environment::GpioId cs21_id;
Environment::GpioId cs22_id;
//Output:
Environment::Id primary_encoder_id;
Environment::StatusId data_valid_id;
Environment::StatusId failure_id;
Environment::SignalId encoder_angle_sig_id; //!<Угол по данным энкодера.
Environment::SignalId encoder_turn_sig_id; //!<Оборот по данным энкодера.
Environment::SignalId encoder_err_sig_id; //!<Код ошибки энкодера.
};
const Links & links;
const configuration::ProcessConfig & params;
struct Setting {
uint16_t de_active_level;
uint16_t power_pin_active_level;
uint16_t cs21_active_level;
uint16_t cs22_active_level;
uint16_t shift_bit_count;
uint16_t turn_bit_len;
uint16_t max_turn_bit_len;
uint16_t angle_bit_len;
uint16_t error_bit_len;
uint16_t inverse;
};
const Setting & config;
PrimaryEncoderSetup( const Links & links,
const Setting & config,
const configuration::ProcessConfig & proc );
};
} /* namespace board */
} /* namespace application */
#endif /* SOURCE_APPLICATION_BOARD_PRIMARYENCODERSETUP_H_ */