aboutsummaryrefslogtreecommitdiff
path: root/cutter.go
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 /cutter.go
parent871e430030b1beae6d2692ed8b6b1e4aae9820d4 (diff)
Add CR (TT), rewrite resonse reader
Diffstat (limited to 'cutter.go')
-rw-r--r--cutter.go45
1 files changed, 26 insertions, 19 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
}
}