Commits

Trammell Hudson committed 15f7bf9 Draft

Servo command is working

  • Participants
  • Parent commits a0bd0f9

Comments (0)

Files changed (2)

File Servo/RobotEQ.pm

+#!/usr/bin/perl
+package Servo::RobotEQ;
+use warnings;
+use strict;
+use Device::SerialPort;
+
+sub new
+{
+	my $class = shift;
+	my $file = shift;
+
+	my $dev = Device::SerialPort->new($file)
+		or return;
+
+	bless {
+		dev		=> $dev,
+		filename	=> $file,
+	}, $class;
+}
+
+
+sub counters
+{
+	my $dev = shift;
+	$dev->{dev}->write("?c\r")
+		or return;
+
+	# Wait for the return
+	while (1)
+	{
+		local $_ = $dev->{dev}->input
+			or next;
+		my ($c1,$c2) = /C=(-?\d+):(-?\d+)/
+			or next;
+		return ($c1,$c2);
+	}
+}
+
+
+sub position
+{
+	my $dev = shift;
+	my $channel = shift;
+	my $position = shift;
+
+	$dev->{dev}->write(sprintf("!g $channel $position\r"))
+		or return;
+
+	return 1;
+}
+
+
+"0, but true";
+__END__
+#!/usr/bin/perl
+use warnings;
+use strict;
+use Servo::RobotEQ;
+
+my $dev = shift;
+my $channel = shift;
+my $position = shift;
+
+my $servo = Servo::RobotEQ->new($dev);
+
+$servo->position($channel, $position);
+
+for (1..10)
+{
+	my ($c1,$c2) = $servo->counters();
+	print "$c1 $c2\n";
+	sleep 0.5;
+}