package communication import ( "fmt" "go.bug.st/serial" "go.bug.st/serial/enumerator" ) const ( ST_VID = `0483` ) type Phy struct { port serial.Port } func GetStSerials() ([]string, error) { retval := make([]string, 0) ports, err := enumerator.GetDetailedPortsList() if err != nil { return retval, err } for _, port := range ports { if port.IsUSB { if port.VID == ST_VID { retval = append(retval, port.Name) } } } return retval, nil } func NewPhy(device string) (Phy, error) { p := Phy{} mode := &serial.Mode{ BaudRate: 115200, } port, err := serial.Open(device, mode) if err != nil { return p, err } p.port = port return p, nil } func (phy *Phy) Cat() error { buff := make([]byte, 100) for { n, err := phy.port.Read(buff) if err != nil { return err } fmt.Printf("%s", string(buff[:n])) } }