| 12345678910111213141516171819202122232425262728293031 |
- package service
- import (
- "fmt"
- "github.com/tarm/serial"
- )
- type SerialPrinter struct {
- Port *serial.Port
- }
- func NewSerialPrinter(portName string, baudRate int) (*SerialPrinter, error) {
- if baudRate <= 0 {
- baudRate = 9600 // EMD807 factory default
- }
- c := &serial.Config{Name: portName, Baud: baudRate}
- port, err := serial.OpenPort(c)
- if err != nil {
- return nil, fmt.Errorf("打开串口失败 %s: %w", portName, err)
- }
- return &SerialPrinter{Port: port}, nil
- }
- func (p *SerialPrinter) Write(data []byte) error {
- _, err := p.Port.Write(data)
- return err
- }
- func (p *SerialPrinter) Close() error {
- return p.Port.Close()
- }
|