示例#1
0
文件: serial.go 项目: akofoed/modbus
func (mb *serialPort) Connect() (err error) {
	if mb.isConnected {
		return
	}
	if mb.port == nil {
		mb.port, err = serial.Open(&mb.Config)
	} else {
		err = mb.port.Open(&mb.Config)
	}
	if err == nil {
		mb.isConnected = true
	}
	return
}
示例#2
0
文件: example.go 项目: akofoed/serial
func main() {
	if len(os.Args) > 1 {
		address = os.Args[1]
	}
	port, err := serial.Open(&serial.Config{
		Address: address,
		Timeout: 30 * time.Second,
	})
	if err != nil {
		log.Fatal(err)
	}
	defer port.Close()

	if _, err = port.Write([]byte("serial")); err != nil {
		log.Fatal(err)
	}
	if _, err = io.Copy(os.Stdout, port); err != nil {
		log.Fatal(err)
	}
}
示例#3
0
func main() {
	addr, err := homedir.Expand("~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty")
	if err != nil {
		log.Fatal(err)
	}

	c := &serial.Config{
		Address:  addr,
		BaudRate: 9600,
	}
	s, err := serial.Open(c)
	if err != nil {
		log.Fatal(err)
	}
	defer s.Close()

	go read(s)
	go write(s)
	go sigh(s)
	detach()
}