aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-04-23 20:10:00 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-04-23 20:10:00 +0200
commitd8e38f756b4b54c007718e9f289d3b4d609d5c33 (patch)
tree2faeca0b9ae5d4782bfb589816141b3f8bdce09d
parent871e430030b1beae6d2692ed8b6b1e4aae9820d4 (diff)
Add CR (TT), rewrite resonse reader
-rw-r--r--cutter.go45
-rw-r--r--main.go42
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})
+ }
+ */
}