Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "encoding/csv"
- "fmt"
- "io"
- "log"
- "os"
- "strconv"
- )
- const STX = rune(2)
- const CR = rune(13)
- const LF = rune(10)
- func text(w io.Writer, data string, y int, x int) {
- result, err := fmt.Fprintf(w, "1122000%04d%04d%s%s", x, y, data, string(CR))
- //log.Printf("1122000%04d%04d%s%s", x, y, data, string(CR))
- log.Print(result, err)
- }
- func sendRaw(w io.Writer, data string) {
- result, err := fmt.Fprintf(w, "%s%s", data, string(CR))
- //log.Printf("%s%s", data, string(CR))
- log.Print(result, err)
- }
- func start(w io.Writer) {
- sendRaw(w, string(STX)+"L")
- sendRaw(w, "C0015")
- sendRaw(w, "D11")
- sendRaw(w, "PE")
- sendRaw(w, "H11")
- }
- func close(w io.Writer) {
- sendRaw(w, "Q0001")
- sendRaw(w, "E")
- }
- func code(w io.Writer, cid int, y int, x int) {
- result, err := fmt.Fprintf(w, "1B00035%04d%04d%011d%s", x, y, cid, string(CR))
- //log.Printf("1B00000%04d%04d%011d%s", x, y, cid, string(CR))
- log.Print(result, err)
- }
- func loadAndPrintCSV(w io.Writer) {
- f, err := os.OpenFile("./eventos.csv", os.O_RDONLY, os.ModeAppend)
- if err != nil {
- panic(err)
- }
- defer f.Close()
- r := csv.NewReader(f)
- for {
- record, err := r.Read()
- if err == io.EOF {
- break
- }
- if err != nil {
- log.Fatal(err)
- }
- c, _ := strconv.Atoi(record[1])
- start(w)
- text(w, record[0], 20, 80)
- code(w, c, 20, 10)
- close(w)
- }
- }
- func main() {
- f, err := os.OpenFile("/dev/usb/lp0", os.O_WRONLY, os.ModeDevice)
- if err != nil {
- panic(err)
- }
- defer f.Close()
- loadAndPrintCSV(f)
- }
Add Comment
Please, Sign In to add comment