aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-09-28 09:09:42 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-09-28 09:09:49 +0200
commitef18e59ff6088590501d7b67d099c6c5b9a0b354 (patch)
tree51ec8ab557c082bcc4410e9b84c8020a3f2ce794
parent365c44d8d352650e47995760daeca985e8a7e064 (diff)
Add Bezierf
-rw-r--r--dev_linux.go4
-rw-r--r--dev_openbsd.go4
-rw-r--r--plot.go41
3 files changed, 28 insertions, 21 deletions
diff --git a/dev_linux.go b/dev_linux.go
index 66ab472..cad10bb 100644
--- a/dev_linux.go
+++ b/dev_linux.go
@@ -1,5 +1,7 @@
package robo
+const LPDevice = "/dev/usb/lp0"
+
func Open() (Device, error) {
- return NewLP("/dev/usb/lp0")
+ return NewLP(LPDevice)
}
diff --git a/dev_openbsd.go b/dev_openbsd.go
index 46eaa94..1fe065a 100644
--- a/dev_openbsd.go
+++ b/dev_openbsd.go
@@ -1,6 +1,8 @@
package robo
+const LPDevice = "/dev/ulpt0"
+
func Open() (Device, error) {
// note: ulpt* doesn't support read(), thus this dev is broken atm.
- return NewLP("/dev/ulpt0")
+ return NewLP(LPDevice)
}
diff --git a/plot.go b/plot.go
index 1625da4..01437ee 100644
--- a/plot.go
+++ b/plot.go
@@ -88,24 +88,27 @@ func (r Robo) Printf(f string, a ...interface{}) {
r.dev.WriteString(s)
}
-func (r Robo) GoHome() { r.Printf("TT") }
-func (r Robo) Home() { r.Printf("H") }
-func (r Robo) Origin() { r.Printf("FJ") }
-func (r Robo) Calibrate() { r.Printf("TB70") }
-func (r Robo) TestCut() { r.Printf("FH") }
-func (r Robo) TestLoop() { r.Printf("FI") }
-func (r Robo) Factor(x, y, z Unit) { r.Printf("&%v", Triple{x, y, z}) }
-func (r Robo) Offset(p Point) { r.Printf("^%v", p) }
-func (r Robo) LowerLeft(p Point) { r.Printf("\\%v", p) }
-func (r Robo) UpperRight(p Point) { r.Printf("Z%v", p) }
-func (r Robo) CuttingArea(p Point) { r.Printf("FU%v", p) }
-func (r Robo) Calibration(p Point) { r.Printf("TB72,%v", p) }
-func (r Robo) Move(p Point) { r.Printf("M%v", p) }
-func (r Robo) MoveRelative(p Point) { r.Printf("O%v", p) }
-func (r Robo) Draw(p ...Point) { r.Printf("D%v", Path(p)) }
-func (r Robo) DrawRelative(p Point) { r.Printf("E%v", p) }
-func (r Robo) Bezier(a, b, c, d Point) { r.Printf("BZ1,%v", Path{a, b, c, d}) }
+func (r Robo) GoHome() { r.Printf("TT") }
+func (r Robo) Home() { r.Printf("H") }
+func (r Robo) Origin() { r.Printf("FJ") }
+func (r Robo) Calibrate() { r.Printf("TB70") }
+func (r Robo) TestCut() { r.Printf("FH") }
+func (r Robo) TestLoop() { r.Printf("FI") }
+func (r Robo) Factor(x, y, z Unit) { r.Printf("&%v", Triple{x, y, z}) }
+func (r Robo) Offset(p Point) { r.Printf("^%v", p) }
+func (r Robo) LowerLeft(p Point) { r.Printf("\\%v", p) }
+func (r Robo) UpperRight(p Point) { r.Printf("Z%v", p) }
+func (r Robo) CuttingArea(p Point) { r.Printf("FU%v", p) }
+func (r Robo) Calibration(p Point) { r.Printf("TB72,%v", p) }
+func (r Robo) Move(p Point) { r.Printf("M%v", p) }
+func (r Robo) MoveRelative(p Point) { r.Printf("O%v", p) }
+func (r Robo) Draw(p ...Point) { r.Printf("D%v", Path(p)) }
+func (r Robo) DrawRelative(p Point) { r.Printf("E%v", p) }
+func (r Robo) Bezier(a, b, c, d Point) { r.Printf("BZ1,%v", Path{a, b, c, d}) }
+func (r Robo) Bezierf(x int, a, b, c, d Point) { r.Printf("BZ%v,%v", x, Path{a, b, c, d}) }
func (r Robo) Line(p ...Point) {
- r.Move(p[0])
- r.Draw(p[1:]...)
+ if len(p) > 1 {
+ r.Move(p[0])
+ r.Draw(p[1:]...)
+ }
}