send-gcode.pl 668 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env perl
  2. use strict;
  3. use warnings;
  4. BEGIN {
  5. use FindBin;
  6. use lib "$FindBin::Bin/../lib";
  7. }
  8. use Slic3r;
  9. die "Usage: send-gcode.pl SERIALPORT BAUDRATE GCODE_FILE\n"
  10. if @ARGV != 3;
  11. my $serial = Slic3r::GCode::Sender->new($ARGV[0], $ARGV[1]);
  12. 1 until $serial->is_connected;
  13. print "Connected to printer\n";
  14. {
  15. local $/ = "\n";
  16. Slic3r::open(\my $fh, '<', $ARGV[2])
  17. or die "Unable to open $ARGV[2]: $!\n";
  18. binmode $fh, ':utf8';
  19. while (<$fh>) {
  20. $serial->send($_);
  21. }
  22. close $fh;
  23. }
  24. while ((my $queue_size = $serial->queue_size) > 0) {
  25. printf "Queue size: %d\n", $queue_size;
  26. }
  27. $serial->disconnect;
  28. __END__