void mtsMicronTrackerControllerQtComponent::MTCTrackQSlot(bool toggled) { MTC.Capture(mtsBool(toggled)); MTC.Track(mtsBool(toggled)); if (toggled) { Timer->start(20); } else { Timer->stop(); } }
void mtsPIDQtWidget::Init() { PID.PositionJointGetParam.Position().SetSize(NumberOfAxis); PID.PositionJointGetDesired.SetSize(NumberOfAxis); PID.VelocityJointGetParam.Velocity().SetSize(NumberOfAxis); PID.EffortJoint.SetSize(NumberOfAxis); DesiredPosition.SetSize(NumberOfAxis); DesiredPosition.SetAll(0.0); DesiredEffort.SetSize(NumberOfAxis); DesiredEffort.SetAll(0.0); UnitFactor.SetSize(NumberOfAxis); UnitFactor.SetAll(1.0); DirectControl = false; PlotIndex = 0; logsEnabled = false; logEntryIndex = 0; // Setup cisst interface mtsInterfaceRequired * interfaceRequired = AddInterfaceRequired("Controller"); if (interfaceRequired) { interfaceRequired->AddFunction("ResetController", PID.ResetController); interfaceRequired->AddFunction("Enable", PID.Enable); interfaceRequired->AddFunction("EnableIO", PID.EnableIO); interfaceRequired->AddFunction("EnableLogs", PID.EnableLogs); interfaceRequired->AddFunction("EnableTorqueMode", PID.EnableTorqueMode); interfaceRequired->AddFunction("SetPositionJoint", PID.SetPositionJoint); interfaceRequired->AddFunction("SetTorqueJoint", PID.SetEffortJoint); interfaceRequired->AddFunction("GetPositionJoint", PID.GetPositionJoint); interfaceRequired->AddFunction("GetVelocityJoint", PID.GetVelocityJoint); interfaceRequired->AddFunction("GetPositionJointDesired", PID.GetPositionJointDesired); interfaceRequired->AddFunction("GetEffortJointDesired", PID.GetEffortJointDesired); interfaceRequired->AddFunction("GetPeriodStatistics", PID.GetPeriodStatistics); interfaceRequired->AddFunction("GetJointType", PID.GetJointType); interfaceRequired->AddFunction("GetPGain", PID.GetPGain); interfaceRequired->AddFunction("GetDGain", PID.GetDGain); interfaceRequired->AddFunction("GetIGain", PID.GetIGain); interfaceRequired->AddFunction("SetPGain", PID.SetPGain); interfaceRequired->AddFunction("SetDGain", PID.SetDGain); interfaceRequired->AddFunction("SetIGain", PID.SetIGain); // Events interfaceRequired->AddEventHandlerWrite(&mtsPIDQtWidget::JointLimitEventHandler, this, "JointLimit"); interfaceRequired->AddEventHandlerWrite(&mtsPIDQtWidget::ErrorEventHandler, this, "Error"); interfaceRequired->AddEventHandlerWrite(&mtsPIDQtWidget::EnableEventHandler, this, "Enabled"); } if(usingSimulink) { mtsInterfaceRequired * simulinkQtInterfaceRequired = AddInterfaceRequired("SimulinkQtInterfacePIDCommand"); if (simulinkQtInterfaceRequired) { simulinkQtInterfaceRequired->AddFunction("EnableSimulinkWidgetFromPID", SimulinkQtWidget.EnableWidget); simulinkQtInterfaceRequired->AddFunction("EnableSimulinkFromPID", SimulinkQtWidget.Enable); simulinkQtInterfaceRequired->AddFunction("EnableSimulinkLogsFromPID", SimulinkQtWidget.EnableLogs); //the below means COMMENCED, as in, is Simulink in control? simulinkQtInterfaceRequired->AddFunction("IsSimulinkEnabled", SimulinkQtWidget.IsEnabled); } mtsInterfaceProvided * simulinkQtInterfaceProvided = AddInterfaceProvided("SimulinkQtInterfaceSimulinkCommand"); if (simulinkQtInterfaceProvided) { simulinkQtInterfaceProvided->AddCommandWrite(&mtsPIDQtWidget::EnablePIDFromSimulinkQt , this, "EnablePIDFromSimulink", mtsBool()); simulinkQtInterfaceProvided->AddCommandWrite(&mtsPIDQtWidget::EnableLogsFromSimulinkQt , this, "EnablePIDLogsFromSimulink", mtsBool()); } } setupUi(); startTimer(TimerPeriodInMilliseconds); // ms }