| 25 | } |
| 26 | |
| 27 | func readFirstBytesFromPort(fn string) ([]byte, error) { |
| 28 | sp, err := sers.Open(fn) |
| 29 | if err != nil { |
| 30 | return nil, err |
| 31 | } |
| 32 | defer sp.Close() |
| 33 | |
| 34 | // 57600 baud, 8 data bits, no parity bit, 1 stop bit |
| 35 | // no handshake. non-standard baud rates are possible. |
| 36 | err = sp.SetMode(57600, 8, sers.N, 1, sers.NO_HANDSHAKE) |
| 37 | if err != nil { |
| 38 | return nil, err |
| 39 | } |
| 40 | |
| 41 | // setting: |
| 42 | // minread = 0: minimal buffering on read, return characters as early as possible |
| 43 | // timeout = 1.0: time out if after 1.0 seconds nothing is received |
| 44 | err = sp.SetReadParams(0, 1.0) |
| 45 | if err != nil { |
| 46 | return nil, err |
| 47 | } |
| 48 | |
| 49 | var rb [128]byte |
| 50 | n, err := sp.Read(rb[:]) |
| 51 | |
| 52 | return rb[:n], err |
| 53 | } |