Ejemplo n.º 1
0
ServosWidget::ServosWidget(Device *device, QWidget *parent)
	: StandardWidget(device, parent),
	ui(new Ui::ServosWidget),
	m_provider(new NumpadDialog(QString()))
{
	ui->setupUi(this);
	performStandardSetup(tr("Servos"));
	
	ui->number->setInputProvider(m_provider);
	
	connect(ui->dial, SIGNAL(valueChanged(double)), SLOT(positionChanged(double)));
  connect(ui->number, SIGNAL(textEdited(QString)), SLOT(manualEntry(QString)));
	connect(ui->port_0, SIGNAL(clicked()), SLOT(activeChanged()));
	connect(ui->port_1, SIGNAL(clicked()), SLOT(activeChanged()));
	connect(ui->port_2, SIGNAL(clicked()), SLOT(activeChanged()));
	connect(ui->port_3, SIGNAL(clicked()), SLOT(activeChanged()));
	connect(ui->enable, SIGNAL(clicked()), SLOT(enable()));
	connect(ui->disable, SIGNAL(clicked()), SLOT(disable()));
	
  // Setup ui for port 0 (the default servo)
	ui->dial->setMinimumValue(0);
	ui->dial->setMaximumValue(2047);
	ui->dial->setValue(get_servo_position(0));
	ui->dial->setLabel(0);
	ui->port_0->setEnabled(false);
  
  const bool servoEnabled = get_servo_enabled(0);
	ui->enable->setVisible(!servoEnabled);
	ui->disable->setVisible(servoEnabled);
  
	publish();
}
Ejemplo n.º 2
0
void ServosWidget::activeChanged()
{
	QObject *from = sender();
		
  // Set dial label for new servo
  int newPort = -1;
	if(from == ui->port_0) newPort = 0;
	else if(from == ui->port_1) newPort = 1;
	else if(from == ui->port_2) newPort = 2;
	else if(from == ui->port_3) newPort = 3;
  else return;
  ui->dial->setLabel(newPort);
  
  // Set dial value for new servo
  ui->dial->setValue(get_servo_position(newPort));
	
  // Enable/disable appropriate port buttons
	ui->port_0->setEnabled(from != ui->port_0);
	ui->port_1->setEnabled(from != ui->port_1);
	ui->port_2->setEnabled(from != ui->port_2);
	ui->port_3->setEnabled(from != ui->port_3);
	
  // Show/hide enable and disable buttons
  const bool servoEnabled = get_servo_enabled(newPort);
	ui->enable->setVisible(!servoEnabled);
	ui->disable->setVisible(servoEnabled);
	
	publish();
}
Ejemplo n.º 3
0
int main()
{
	int delay=10;
	int i=0;
	enable_servo(2); 
	printf("%d enabled\n",get_servo_enabled(0));
	printf("%d enabled\n",get_servo_enabled(1));
	printf("%d enabled\n",get_servo_enabled(2));
	printf("%d enabled\n",get_servo_enabled(3));
	
	set_servo_position(2,100); 
	for(i=0;i<200;i++)
	{
		printf("%d position %d\n",get_servo_position(2), i); 
		msleep(delay);
	}
	msleep(1500);
	
	set_servo_position(2,1500); 
	printf("%d position\n",get_servo_position(2)); 
	msleep(1500); 
	
}