Guest User

Untitled

a guest
Jun 25th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.46 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "encoding/csv"
  5. "fmt"
  6. "io"
  7. "log"
  8. "os"
  9. "strconv"
  10. )
  11.  
  12. const STX = rune(2)
  13. const CR = rune(13)
  14. const LF = rune(10)
  15.  
  16. func text(w io.Writer, data string, y int, x int) {
  17. result, err := fmt.Fprintf(w, "1122000%04d%04d%s%s", x, y, data, string(CR))
  18. //log.Printf("1122000%04d%04d%s%s", x, y, data, string(CR))
  19. log.Print(result, err)
  20. }
  21.  
  22. func sendRaw(w io.Writer, data string) {
  23. result, err := fmt.Fprintf(w, "%s%s", data, string(CR))
  24. //log.Printf("%s%s", data, string(CR))
  25. log.Print(result, err)
  26. }
  27.  
  28. func start(w io.Writer) {
  29. sendRaw(w, string(STX)+"L")
  30. sendRaw(w, "C0015")
  31. sendRaw(w, "D11")
  32. sendRaw(w, "PE")
  33. sendRaw(w, "H11")
  34. }
  35.  
  36. func close(w io.Writer) {
  37. sendRaw(w, "Q0001")
  38. sendRaw(w, "E")
  39. }
  40.  
  41. func code(w io.Writer, cid int, y int, x int) {
  42. result, err := fmt.Fprintf(w, "1B00035%04d%04d%011d%s", x, y, cid, string(CR))
  43. //log.Printf("1B00000%04d%04d%011d%s", x, y, cid, string(CR))
  44. log.Print(result, err)
  45. }
  46.  
  47. func loadAndPrintCSV(w io.Writer) {
  48. f, err := os.OpenFile("./eventos.csv", os.O_RDONLY, os.ModeAppend)
  49. if err != nil {
  50. panic(err)
  51. }
  52. defer f.Close()
  53.  
  54. r := csv.NewReader(f)
  55. for {
  56. record, err := r.Read()
  57. if err == io.EOF {
  58. break
  59. }
  60. if err != nil {
  61. log.Fatal(err)
  62. }
  63.  
  64. c, _ := strconv.Atoi(record[1])
  65.  
  66. start(w)
  67. text(w, record[0], 20, 80)
  68. code(w, c, 20, 10)
  69. close(w)
  70. }
  71. }
  72.  
  73. func main() {
  74. f, err := os.OpenFile("/dev/usb/lp0", os.O_WRONLY, os.ModeDevice)
  75. if err != nil {
  76. panic(err)
  77. }
  78. defer f.Close()
  79. loadAndPrintCSV(f)
  80. }
Add Comment
Please, Sign In to add comment