From d8e38f756b4b54c007718e9f289d3b4d609d5c33 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 23 Apr 2015 20:10:00 +0200 Subject: Add CR (TT), rewrite resonse reader --- cutter.go | 45 ++++++++++++++++++++++++++------------------- main.go | 42 ++++++++++++++++-------------------------- 2 files changed, 42 insertions(+), 45 deletions(-) diff --git a/cutter.go b/cutter.go index 6f57ab4..3b781df 100644 --- a/cutter.go +++ b/cutter.go @@ -3,7 +3,6 @@ package main import ( "bufio" "fmt" - "log" ) type Point struct { @@ -88,6 +87,13 @@ func (c Cutter) Step(dir StepDirection) { c.step(stepEnd) } +// CR returns carret to home on same line +func (c Cutter) CR() { + defer c.EOT() + c.WriteString("TT") +} + +// Home retuns carret to home position func (c Cutter) Home() { defer c.EOT() c.WriteString("H") @@ -142,24 +148,25 @@ func (c Cutter) WriteUpperRight(p Point) { fmt.Fprint(c, "Z", p) } -func (c Cutter) Version() { - c.WriteString("FG") - c.Flush() +func (c Cutter) readResponse() (string, error) { ans, err := c.ReadString(0x03) if err != nil { - log.Println(err) + return "", err } - log.Println(ans) + return ans[:len(ans)-1], nil } -func (c Cutter) ReadUpperRight() { +// Version requests hardware version +func (c Cutter) Version() (string, error) { + c.WriteString("FG") + c.Flush() + return c.readResponse() +} + +func (c Cutter) ReadUpperRight() (string, error) { c.WriteString("U") c.Flush() - ans, err := c.ReadString(0x03) - if err != nil { - log.Println(err) - } - log.Println(ans) + return c.readResponse() } func (c Cutter) Speed(n int) { @@ -177,20 +184,20 @@ func (c Cutter) Initialize() { c.Flush() } -func (c Cutter) Status() { +func (c Cutter) Status() (string, error) { c.WriteString("\x1b\x05") // Status ??? c.Flush() - ans, err := c.ReadString(0x03) + ans, err := c.readResponse() if err != nil { - log.Println(err) + return "", err } - switch ans[:1] { + switch ans { case "0": - log.Println("Ready") + return "Ready", nil case "1": - log.Println("Moving") + return "Moving", nil default: - log.Println("Unknown", ans) + return "Unknown " + ans, nil } } diff --git a/main.go b/main.go index 9c93f5e..42c7494 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,7 @@ package main +import "fmt" + func main() { dev := NewDevice() defer dev.Close() @@ -7,40 +9,28 @@ func main() { cu := NewCutter(dev.Handle()) p := pens["pen"] - //cu.Version() + v, _ := cu.Version() + fmt.Println("Version:", v) + cu.Orientation(Portrait) cu.WriteUpperRight(A4) cu.Speed(p.Speed) cu.Force(p.Force) - /* - cu.TestPattern() - cu.Draw(Point{4000,0}) - cu.Draw(Point{4000,4000}) - cu.Draw(Point{0,4000}) - cu.Draw(Point{0,0}) - */ - - /* - for i := 0; i < 5; i++ { - cu.Move(Point{1000*i,0}) - cu.Draw(Point{1000*i,4000}) - - cu.Move(Point{0, 1000*i}) - cu.Draw(Point{4000, 1000*i}) - } - */ - defer cu.Home() defer cu.LineType(Solid) - /* - for i := 0; i < 9; i++ { - cu.LineType(LineStyle(i)) - cu.Move(Point{100 * i, 0}) - cu.Draw(Point{100 * i, 1000}) - } - */ + cu.Orientation(Landscape) cu.TestCut() + //cu.TestPattern() + cu.Move(Point{1000, 1000}) + cu.Home() + /* + for i := 0; i < 9; i++ { + cu.LineType(LineStyle(i)) + cu.Move(Point{100 * i, 0}) + cu.Draw(Point{100 * i, 1000}) + } + */ } -- cgit v1.2.3