1.硬件连接
2. 部分软件代码
void Tc214bGpio::updateDiagnostics()
{
int max_count = output_hz_;
diag_count_++;
if (diag_count_ >= max_count)
{
diag_count_ = 0;
diagnostic_updater_.update();
}
}
void Tc214bGpio::update(const ros::TimerEvent& e)
{
updateDiagnostics();
}
void Tc214bGpio::tc214b_callbcak(const tc214b::Tc214bCmdConstPtr& msg)
{
switch (msg->cmd) {
case tc214b::Tc214bCmd::TC214B_WAIT:
um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_LOW_LEVE);
um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_LOW_LEVE);
break;
case tc214b::Tc214bCmd::TC214B_BACK:
um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_LOW_LEVE);
um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_HIGH_LEVE);
break;
case tc214b::Tc214bCmd::TC214B_BRAKE:
um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_HIGH_LEVE);
um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_HIGH_LEVE);
break;
case tc214b::Tc214bCmd::TC214B_HEAD:
um_gpio_->UM_GPIO_SetValue(UM_GPIO_02, UM_GPIO_HIGH_LEVE);
um_gpio_->UM_GPIO_SetValue(UM_GPIO_03, UM_GPIO_LOW_LEVE);
break;
default:
ROS_WARN("cmd error");
break;
}
ROS_INFO("cmd: %d" , msg->cmd);
}
3. 操作方式
|